From ceb611ede1ca3988d731adffee433a1a7bcd442b Mon Sep 17 00:00:00 2001
From: qinxianzhangyao <11053546+qinxianzhangyao@user.noreply.gitee.com>
Date: 星期四, 19 十月 2023 17:38:18 +0800
Subject: [PATCH] tjxgstf

---
 src/views/jmreport/yctj/index.vue            |   13 
 src/views/system/bill/index.vue              |    4 
 src/assets/styles/index.scss                 |    1 
 vue.config.js                                |    1 
 src/views/hosp/Summary/index.vue             |    2 
 src/views/hosp/settlement/index.vue          |    6 
 src/views/jmreport/ysgzltj/index.vue         |   13 
 src/layout/components/Sidebar/Logo.vue       |   10 
 src/views/jmreport/zjtj/index.vue            |   13 
 src/layout/components/Sidebar/index.vue      |    1 
 public/favicon.ico                           |    0 
 src/utils/devicePixelRatio.js                |   44 ++
 src/views/hosp/Sumrecord/index.vue           |    4 
 src/views/reservation/reservations/index.vue |    4 
 src/api/system/user.js                       |    2 
 public/index.html                            |   50 +-
 src/views/hosp/about/index.vue               |    4 
 src/views/system/examcharge/index.vue        |  204 ++++++---
 src/views/hosp/fuzhen/index.vue              |    2 
 src/router/index.js                          |  194 ++++++---
 src/views/system/indrefund/index.vue         |  456 ++++++++++++++++++++++
 src/views/jmreport/jmreport/charge.vue       |    1 
 src/views/system/user/index.vue              |   80 ++-
 src/views/hosp/order/index.vue               |    2 
 src/views/jmreport/kstj/index.vue            |   13 
 src/views/login.vue                          |    4 
 src/views/system/register/index.vue          |    2 
 src/views/system/invoice/index.vue           |    1 
 src/App.vue                                  |   23 
 29 files changed, 926 insertions(+), 228 deletions(-)

diff --git a/public/favicon.ico b/public/favicon.ico
index 82b43c2..bbf421f 100644
--- a/public/favicon.ico
+++ b/public/favicon.ico
Binary files differ
diff --git a/public/index.html b/public/index.html
index 4eb7b43..0499934 100644
--- a/public/index.html
+++ b/public/index.html
@@ -1,14 +1,17 @@
 <!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>
-    <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
-	  <style>
+
+<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>
+  <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
+  <style>
     html,
     body,
     #app {
@@ -16,6 +19,7 @@
       margin: 0px;
       padding: 0px;
     }
+
     .chromeframe {
       margin: 0.2em 0;
       background: #ccc;
@@ -92,6 +96,7 @@
         -ms-transform: rotate(0deg);
         transform: rotate(0deg);
       }
+
       100% {
         -webkit-transform: rotate(360deg);
         -ms-transform: rotate(360deg);
@@ -105,6 +110,7 @@
         -ms-transform: rotate(0deg);
         transform: rotate(0deg);
       }
+
       100% {
         -webkit-transform: rotate(360deg);
         -ms-transform: rotate(360deg);
@@ -194,15 +200,17 @@
       opacity: 0.5;
     }
   </style>
-  </head>
-  <body>
-    <div id="app">
-	    <div id="loader-wrapper">
-		    <div id="loader"></div>
-		    <div class="loader-section section-left"></div>
-		    <div class="loader-section section-right"></div>
-		    <div class="load_title">姝e湪鍔犺浇绯荤粺璧勬簮锛岃鑰愬績绛夊緟</div>
-        </div>
-	</div>
-  </body>
-</html>
+</head>
+
+<body>
+  <div id="app">
+    <div id="loader-wrapper">
+      <div id="loader"></div>
+      <div class="loader-section section-left"></div>
+      <div class="loader-section section-right"></div>
+      <div class="load_title">姝e湪鍔犺浇绯荤粺璧勬簮锛岃鑰愬績绛夊緟</div>
+    </div>
+  </div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
index 29de49f..3194fbc 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -8,21 +8,30 @@
 <script>
 import ThemePicker from "@/components/ThemePicker";
 
+import devPixelRatio from "@/utils/devicePixelRatio.js";
 export default {
   name: "App",
   components: { ThemePicker },
-    metaInfo() {
-        return {
-            title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
-            titleTemplate: title => {
-                return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
-            }
-        }
+  metaInfo() {
+    return {
+      title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
+      titleTemplate: title => {
+        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>
diff --git a/src/api/system/user.js b/src/api/system/user.js
index bd8060e..d7cdbcd 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -92,6 +92,8 @@
 
 // 鐢ㄦ埛瀵嗙爜閲嶇疆
 export function updateUserPwd(oldPassword, newPassword) {
+   oldPassword = encrypt(oldPassword);
+   newPassword = encrypt(newPassword);
   const data = {
     oldPassword,
     newPassword
diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss
index 96095ef..37d9dfd 100644
--- a/src/assets/styles/index.scss
+++ b/src/assets/styles/index.scss
@@ -122,6 +122,7 @@
 //main-container鍏ㄥ眬鏍峰紡
 .app-container {
   padding: 20px;
+  width: 100%;
 }
 
 .components-container {
diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue
index 23d514d..47189ca 100644
--- a/src/layout/components/Sidebar/Logo.vue
+++ b/src/layout/components/Sidebar/Logo.vue
@@ -2,12 +2,12 @@
   <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>
@@ -15,7 +15,7 @@
 </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 {
@@ -37,7 +37,7 @@
   data() {
     return {
       title: '鏅烘収鍋ュ悍浣撴绠$悊绯荤粺',
-      logo: logoImg
+      // logo: logoImg
     }
   }
 }
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index 63e39bb..9509fc5 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -3,6 +3,7 @@
         <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"
diff --git a/src/router/index.js b/src/router/index.js
index a7bb996..80443e1 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -28,6 +28,7 @@
   }
  */
 
+
 // 鍏叡璺敱
 export const constantRoutes = [
   {
@@ -56,6 +57,69 @@
         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 '},
       },
     ]
   },
@@ -199,71 +263,73 @@
     ]
   },
   // 瀵兼鍗曞拰浣撴鎶ュ憡椤甸潰鏍囩鏍�
-  {
-    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,
diff --git a/src/utils/devicePixelRatio.js b/src/utils/devicePixelRatio.js
new file mode 100644
index 0000000..73788f3
--- /dev/null
+++ b/src/utils/devicePixelRatio.js
@@ -0,0 +1,44 @@
+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淇敼鍏跺ぇ灏忥紝鏉ユ姷娑坉evicePixelRatio甯︽潵鐨勫彉鍖�
+      document.getElementsByTagName("body")[0].style.zoom =
+        1 / window.devicePixelRatio;
+    }
+    /* 鐩戝惉椤甸潰缂╂斁 */
+    watch() {
+      const that = this;
+      // 娉ㄦ剰: 杩欎釜鏂规硶鏄В鍐冲叏灞�鏈変袱涓獁indow.resize
+      that.addHandler(window, "resize", function () {
+        that.correct(); // 閲嶆柊鏍℃娴忚鍣ㄧ缉鏀炬瘮渚�
+      });
+    }
+    /* 鍒濆鍖栭〉闈㈡瘮渚� */
+    init() {
+      const that = this;
+      // 鍒ゆ柇璁惧锛屽彧鍦� win 绯荤粺涓嬫牎姝f祻瑙堝櫒缂╂斁姣斾緥
+      if (that.getSystem()) {
+        that.correct(); // 鏍℃娴忚鍣ㄧ缉鏀炬瘮渚�
+        that.watch(); // 鐩戝惉椤甸潰缂╂斁
+      }
+    }
+  }
+  export default devicePixelRatio;
\ No newline at end of file
diff --git a/src/views/hosp/Summary/index.vue b/src/views/hosp/Summary/index.vue
index cd7b064..5274a62 100644
--- a/src/views/hosp/Summary/index.vue
+++ b/src/views/hosp/Summary/index.vue
@@ -25,7 +25,7 @@
     <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">
diff --git a/src/views/hosp/Sumrecord/index.vue b/src/views/hosp/Sumrecord/index.vue
index e42649c..e1aad4e 100644
--- a/src/views/hosp/Sumrecord/index.vue
+++ b/src/views/hosp/Sumrecord/index.vue
@@ -24,11 +24,11 @@
         <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>
 
diff --git a/src/views/hosp/about/index.vue b/src/views/hosp/about/index.vue
index 8319401..046b9b0 100644
--- a/src/views/hosp/about/index.vue
+++ b/src/views/hosp/about/index.vue
@@ -19,11 +19,11 @@
 
     <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>
 
diff --git a/src/views/hosp/fuzhen/index.vue b/src/views/hosp/fuzhen/index.vue
index 8c5de24..cdc1b23 100644
--- a/src/views/hosp/fuzhen/index.vue
+++ b/src/views/hosp/fuzhen/index.vue
@@ -723,7 +723,7 @@
       }
       /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
       projectGetList().then((response) => {
-        this.Treedata = response.data;
+        this.Treedata = response.data.list;
       });
       this.Projectopen = true;
       this.title = "琛ュ綍椤圭洰";
diff --git a/src/views/hosp/order/index.vue b/src/views/hosp/order/index.vue
index 87c9df7..0792d34 100644
--- a/src/views/hosp/order/index.vue
+++ b/src/views/hosp/order/index.vue
@@ -1127,7 +1127,7 @@
       }
       /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
       projectGetList().then((response) => {
-        this.Treedata = response.data;
+        this.Treedata = response.data.list;
       });
       this.Projectopen1 = true;
       this.title = "琛ュ綍椤圭洰";
diff --git a/src/views/hosp/settlement/index.vue b/src/views/hosp/settlement/index.vue
index 342fdd4..92eda33 100644
--- a/src/views/hosp/settlement/index.vue
+++ b/src/views/hosp/settlement/index.vue
@@ -12,13 +12,13 @@
 
     <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>
 
diff --git a/src/views/jmreport/jmreport/charge.vue b/src/views/jmreport/jmreport/charge.vue
index fdd7377..9b22759 100644
--- a/src/views/jmreport/jmreport/charge.vue
+++ b/src/views/jmreport/jmreport/charge.vue
@@ -30,6 +30,7 @@
     };
   },
   created() {
+    console.log(this.$route.query)
     //鎶ヨ〃妯℃澘缂栧彿
     this.viewNum = this.$route.query.viewNum;
     //浣撴鍙�
diff --git a/src/views/jmreport/kstj/index.vue b/src/views/jmreport/kstj/index.vue
index 79c8d45..4fff2db 100644
--- a/src/views/jmreport/kstj/index.vue
+++ b/src/views/jmreport/kstj/index.vue
@@ -7,7 +7,7 @@
 import {
   getToken
 } from '@/utils/auth'
-
+import { view } from "@/api/jmreport/jimu";
 export default {
   name: "Ureport",
   data() {
@@ -15,10 +15,19 @@
       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 () {
diff --git a/src/views/jmreport/yctj/index.vue b/src/views/jmreport/yctj/index.vue
index 0ebf0c0..1975920 100644
--- a/src/views/jmreport/yctj/index.vue
+++ b/src/views/jmreport/yctj/index.vue
@@ -7,7 +7,7 @@
 import {
   getToken
 } from '@/utils/auth'
-
+import { view } from "@/api/jmreport/jimu";
 export default {
   name: "Ureport",
   data() {
@@ -15,10 +15,19 @@
       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 () {
diff --git a/src/views/jmreport/ysgzltj/index.vue b/src/views/jmreport/ysgzltj/index.vue
index 391cc54..e0638d4 100644
--- a/src/views/jmreport/ysgzltj/index.vue
+++ b/src/views/jmreport/ysgzltj/index.vue
@@ -7,7 +7,7 @@
 import {
   getToken
 } from '@/utils/auth'
-
+import { view } from "@/api/jmreport/jimu";
 export default {
   name: "Ureport",
   data() {
@@ -15,10 +15,19 @@
       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 () {
diff --git a/src/views/jmreport/zjtj/index.vue b/src/views/jmreport/zjtj/index.vue
index c6c87c8..6091597 100644
--- a/src/views/jmreport/zjtj/index.vue
+++ b/src/views/jmreport/zjtj/index.vue
@@ -7,7 +7,7 @@
 import {
   getToken
 } from '@/utils/auth'
-
+import { view } from "@/api/jmreport/jimu";
 export default {
   name: "Ureport",
   data() {
@@ -15,10 +15,19 @@
       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 () {
diff --git a/src/views/login.vue b/src/views/login.vue
index 1699487..8ada90f 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -151,8 +151,8 @@
     },
 
     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'
diff --git a/src/views/reservation/reservations/index.vue b/src/views/reservation/reservations/index.vue
index a4eebcb..01742b9 100644
--- a/src/views/reservation/reservations/index.vue
+++ b/src/views/reservation/reservations/index.vue
@@ -1173,7 +1173,7 @@
 
         /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
         projectGetList().then((response) => {
-          this.data = response.data;
+          this.data = response.data.list;
           this.dXData = response.data;
           return;
         });
@@ -1272,7 +1272,7 @@
 
       /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
       projectGetList().then((response) => {
-        this.data = response.data;
+        this.data = response.data.list;
         this.dXData = response.data;
         return;
       });
diff --git a/src/views/system/bill/index.vue b/src/views/system/bill/index.vue
index d16bcbc..e9ea86d 100644
--- a/src/views/system/bill/index.vue
+++ b/src/views/system/bill/index.vue
@@ -772,7 +772,7 @@
 
     /** 鐐瑰嚮鏄剧ず瀵兼鍗曟姤琛�*/ //lige    寮�濮�
     handleReport() {
-      const tjNumber = this.report;
+      const tjNumber = this.report[0];
       const viewNum = "792931586196398080";
       const params = { viewNum, tjNumber };
       hasReport(tjNumber).then((res) => {
@@ -929,7 +929,7 @@
       }
       /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
       projectGetList().then((response) => {
-        this.Treedata = response.data;
+        this.Treedata = response.data.list;
       });
       this.Projectopen = true;
     },
diff --git a/src/views/system/examcharge/index.vue b/src/views/system/examcharge/index.vue
index 587de32..65316f4 100644
--- a/src/views/system/examcharge/index.vue
+++ b/src/views/system/examcharge/index.vue
@@ -90,21 +90,22 @@
                     <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">
@@ -125,8 +126,7 @@
             <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>
@@ -136,14 +136,13 @@
                         </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>
 
@@ -155,31 +154,45 @@
                     <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;
@@ -221,6 +234,7 @@
 <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"],
@@ -228,19 +242,36 @@
 
     data() {
         return {
-            tjNumbers:"",
+            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: "",
@@ -249,7 +280,7 @@
             },
             formIn: {
                 name: "",
-                tjPro: "浣撴璐�",
+                tjPro: "",
                 phone: "",
                 number: 1,
                 ys: "0",
@@ -264,11 +295,12 @@
             // 琛ㄥ崟鍙傛暟
             form: {
                 name: "",
-                tjPro: "浣撴璐�",
+                tjPro: "",
+                tjProName: "浣撴璐�",
                 phone: "",
                 number: 1,
-                ys: "0",
-                ss: "0",
+                ys: 0,
+                ss: 0,
                 type: "0",
                 zk: 10,
 
@@ -374,11 +406,12 @@
         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,
             };
@@ -392,48 +425,85 @@
         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]*$/; //姝f暣鏁帮紙鍙互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]*$/; //姝f暣鏁帮紙鍙互浠ユ墦澶达級
-            //const r=/^\+?[1-9][0-9]*$/;//姝f暣鏁�
-            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) {
-            this.formIn = {
-                name: row.customer.cusName,
-                tjPro: "浣撴璐�",
-                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, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥
-                    style,
-                });
-            });
+            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, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥
+                            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()
+            })
+
         },
 
         // 鏀惰垂
@@ -475,7 +545,7 @@
                     }
                 })
             } else {
-                this.$modal.msgError("璇峰~鍐欏甫鏄熷彿淇℃伅");
+                this.$modal.msgError("璇峰~鍐欏鍚�");
             }
 
         },
diff --git a/src/views/system/indrefund/index.vue b/src/views/system/indrefund/index.vue
new file mode 100644
index 0000000..35423e5
--- /dev/null
+++ b/src/views/system/indrefund/index.vue
@@ -0,0 +1,456 @@
+<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]*$/; //姝f暣鏁帮紙鍙互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鐨勫氨鏄牱寮� 鍙互鏄痗olor 涔熷彲浠ユ槸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]*$/; //姝f暣鏁帮紙鍙互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, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥
+                            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, //鎵撳嵃蹇呴』鍔犱笂锛屼笉鐒堕〉闈笂鐨刢ss鏍峰紡鏃犳晥
+                                        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>
\ No newline at end of file
diff --git a/src/views/system/invoice/index.vue b/src/views/system/invoice/index.vue
index 650f7f9..c4063ae 100644
--- a/src/views/system/invoice/index.vue
+++ b/src/views/system/invoice/index.vue
@@ -663,6 +663,7 @@
       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,
diff --git a/src/views/system/register/index.vue b/src/views/system/register/index.vue
index 34ae113..a36b2b7 100644
--- a/src/views/system/register/index.vue
+++ b/src/views/system/register/index.vue
@@ -588,7 +588,7 @@
       }
       /** 鏌ヨ閮ㄩ棬涓嬫媺鏍戠粨鏋� */
       projectGetList().then((response) => {
-        this.Treedata = response.data;
+        this.Treedata = response.data.list;
       });
       this.Projectopen = true;
     },
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 1c496fd..01ec48b 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -78,7 +78,7 @@
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
         </el-row>
 
-        <el-table  :data="userList" border @selection-change="handleSelectionChange" v-loading="loading"
+        <el-table :data="userList" border @selection-change="handleSelectionChange" v-loading="loading"
           highlight-current-row>
           <el-table-column type="selection" width="50" align="center" fixed="left" />
           <el-table-column label="搴忓彿" align="center" key="newID" prop="newID" width="50px" fixed="left" />
@@ -234,7 +234,8 @@
           </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>
@@ -243,7 +244,7 @@
           <el-form-item label="褰掑睘绉戝" prop="deptId">
             <!-- <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="璇烽�夋嫨褰掑睘绉戝"
               style="width: 200px" /> -->
-              <el-select v-model="form.deptId" placeholder="璇烽�夋嫨褰掑睘绉戝" clearable style="width: 200px" filterable  >
+            <el-select v-model="form.deptId" placeholder="璇烽�夋嫨褰掑睘绉戝" clearable style="width: 200px" filterable>
               <el-option v-for="dict in DepartmentList" :key="dict.deptName" :label="dict.deptName"
                 :value="dict.deptId" />
             </el-select>
@@ -265,8 +266,8 @@
             <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" />
@@ -656,22 +657,18 @@
     </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>
+        <span>璇疯緭鍏モ�渰{ row.userName }}鈥濈殑鏂板瘑鐮�</span>
         <el-form-item prop="password">
           <el-input v-model="password" :type="type" auto-complete="off" placeholder="瀵嗙爜" ref="barcodeMsg">
             <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
             <i slot="suffix" class="icon-style" :class="elIcon" autocomplete="auto" @click="flag = !flag" /></el-input>
         </el-form-item>
       </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>
@@ -719,10 +716,10 @@
   components: { Treeselect },
   data() {
     return {
-      row:[],
+      row: [],
       flag: false,
-      password:"",
-      dialogVisible1:false,
+      password: "",
+      dialogVisible1: false,
       nums: "",
       userInfoList: [],
       hospList: [],
@@ -750,7 +747,7 @@
       dialogVisible: false,
       // 鐢ㄦ埛琛ㄦ牸鏁版嵁
       sysUserList: [],
-      DepartmentList:[],
+      DepartmentList: [],
       // 宀椾綅琛ㄦ牸鏁版嵁
       postList: [],
       // 瑙掕壊琛ㄦ牸鏁版嵁
@@ -775,7 +772,7 @@
           brithday: "",
           nationDesc: "",
           entryDate: "",
-          hospName: "",          
+          hospName: "",
         },
       },
       forms: {},
@@ -864,15 +861,15 @@
         ],
       },
       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",
+        //   },
+        // ],
       },
     };
   },
@@ -1058,9 +1055,9 @@
       // });
     },
 
-    sendhospName(){
+    sendhospName() {
       let data = {
-        id:this.form.hospId
+        id: this.form.hospId
       }
       getDeptListByDictHospId(data).then(res => {
         this.DepartmentList = res.data
@@ -1142,17 +1139,22 @@
       //   })
       //   .catch(() => { });
     },
-    tijiao(){
-      let data = {
-        password:this.password,
-        userId:this.row.userId,
-      }
-      resetUserPwd(data).then(res=>{
-        if(res.code == 200){
-          this.$modal.msgSuccess("淇敼鎴愬姛");
-          this.dialogVisible1 = false;
+    tijiao() {
+      if (this.password) {
+        let data = {
+          password: this.password,
+          userId: this.row.userId,
         }
-      })
+        resetUserPwd(data).then(res => {
+          if (res.code == 200) {
+            this.$modal.msgSuccess("淇敼鎴愬姛");
+            this.dialogVisible1 = false;
+          }
+        })
+      }else{
+        this.$modal.msgError("鐢ㄦ埛鍚嶅瘑鐮佷笉鑳戒负绌�");
+      }
+
     },
     /** 鍒嗛厤瑙掕壊鎿嶄綔 */
     handleAuthRole: function (row) {
diff --git a/vue.config.js b/vue.config.js
index d6cf885..53e4b1c 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,6 +36,7 @@
       // 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]: ''

--
Gitblit v1.8.0