Browse Source

页面布局

xiaochan 1 year ago
parent
commit
d27a1c359d

+ 1 - 1
src/components/inpatient/XiangMuLuRu.vue

@@ -15,7 +15,7 @@
     <div class="layout_flex_1-y">
       <el-tabs v-model="xmlrTabs"
                type="border-card"
-               class="cy-el-tabs__fill">
+               class="el-tabs__fill">
         <el-tab-pane label="已录入项目" name="ylrxm">
           <div class="layout_display_flex_y">
             <div>

+ 157 - 158
src/components/settings/permissions/PersonnelInformationEditing.vue

@@ -1,96 +1,96 @@
 <template>
-    <el-dialog v-model="dialog"
-               :title="title"
-               @closed="emit('close')">
-        <el-form :model="userInfo" :inline="true" label-width="80px" :rules="rules" ref="formRef">
-            <el-form-item prop="name" label="姓名">
-                <el-input v-model="userInfo.name"></el-input>
-            </el-form-item>
-
-            <el-form-item prop="codeRs" label="人事工号">
-                <el-input v-model="userInfo.codeRs"></el-input>
-            </el-form-item>
-
-            <el-form-item prop="deptCode" label="科室">
-                <xc-select :data="peopleAddData.deptData" v-model="userInfo"
-                           :name="['deptCode','deptName']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="empPoCode" label="职务">
-                <xc-select :data="peopleAddData.empPosition" v-model="userInfo"
-                           :name="['empPoCode','position']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="empTitCode" label="职称">
-                <xc-select :data="peopleAddData.zdEmpTitle" v-model="userInfo"
-                           :name="['empTitCode','title']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="mark" label="在院标志">
-                <xc-select :data="peopleAddData.empInmark" v-model="userInfo" :name="['mark','markName']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="ifcader" label="干工标志">
-                <xc-select :data="peopleAddData.zdIfcadre" v-model="userInfo"
-                           :name="['ifcadre','ifcadreName']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="orderYn" label="处方权">
-                <xc-select :data="doctorSPrescription" v-model="userInfo" :name="['orderYn','orderYnName']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="ysjb" label="病历级别">
-                <xc-select :data="peopleAddData.ysjbData" v-model="userInfo" :name="['ysjb','ysjbName']"></xc-select>
-            </el-form-item>
-
-            <el-form-item prop="ghChargeType" label="挂号号别">
-                <xc-select :data="peopleAddData.mzyZdChargeType" v-model="userInfo"
-                           :name="['ghChargeType','ghChargeTypeName']"/>
-            </el-form-item>
-            <el-form-item prop="doctorXzYp" label="限制级别">
-                <xc-select :data="peopleAddData.restrictedDrugLevels" v-model="userInfo"
-                           :name="['doctorXzYp','doctorXzYpName']"/>
-            </el-form-item>
-            <el-form-item prop="loginFlag" label="病区就诊">
-                <el-switch v-model="userInfo.loginFlag" active-color="#ff4949" active-text="不允许" active-value="2"
-                           inactive-color="#13ce66" inactive-text="允许" inactive-value="1">
-                </el-switch>
-            </el-form-item>
-            <el-form-item prop="delFlag" label="停用">
-                <el-switch v-model="userInfo.delFlag" active-color="#ff4949" active-text="停用" active-value="1"
-                           inactive-color="#13ce66" inactive-text="开启" inactive-value="0">
-                </el-switch>
-            </el-form-item>
-            <el-form-item prop="socialNo" label="身份证">
-                <el-input v-model="userInfo.socialNo" clearable></el-input>
-            </el-form-item>
-            <el-form-item prop="phoneNo" label="手机号">
-                <el-input v-model="userInfo.phoneNo" clearable></el-input>
-            </el-form-item>
-            <el-form-item prop="ybCode" label="医保">
-                <el-input v-model="userInfo.ybCode" clearable></el-input>
-            </el-form-item>
-            <el-form-item label="兼诊科室">
-                <el-select v-model="userInfo.partTimeDept"
-                           multiple
-                           filterable
-                           placeholder="兼诊科室"
-                           style="width: 240px">
-                    <el-option
-                            v-for="item in peopleAddData.deptData"
-                            :key="item.code"
-                            :label="item.name"
-                            :value="item.code"/>
-                </el-select>
-            </el-form-item>
-        </el-form>
-        <template #footer>
-            <div>
-                <el-button type="primary" @click="confirm(formRef)">确认</el-button>
-                <el-button @click="emit('close')">取消</el-button>
-            </div>
-        </template>
-    </el-dialog>
+  <el-dialog v-model="dialog"
+             :title="title"
+             @closed="emit('close')">
+    <el-form :model="userInfo" :inline="true" label-width="80px" :rules="rules" ref="formRef">
+      <el-form-item prop="name" label="姓名">
+        <el-input v-model="userInfo.name"></el-input>
+      </el-form-item>
+
+      <el-form-item prop="codeRs" label="人事工号">
+        <el-input v-model="userInfo.codeRs"></el-input>
+      </el-form-item>
+
+      <el-form-item prop="deptCode" label="科室">
+        <xc-select :data="peopleAddData.deptData" v-model="userInfo"
+                   :name="['deptCode','deptName']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="empPoCode" label="职务">
+        <xc-select :data="peopleAddData.empPosition" v-model="userInfo"
+                   :name="['empPoCode','position']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="empTitCode" label="职称">
+        <xc-select :data="peopleAddData.zdEmpTitle" v-model="userInfo"
+                   :name="['empTitCode','title']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="mark" label="在院标志">
+        <xc-select :data="peopleAddData.empInmark" v-model="userInfo" :name="['mark','markName']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="ifcader" label="干工标志">
+        <xc-select :data="peopleAddData.zdIfcadre" v-model="userInfo"
+                   :name="['ifcadre','ifcadreName']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="orderYn" label="处方权">
+        <xc-select :data="doctorSPrescription" v-model="userInfo" :name="['orderYn','orderYnName']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="ysjb" label="病历级别">
+        <xc-select :data="peopleAddData.ysjbData" v-model="userInfo" :name="['ysjb','ysjbName']"></xc-select>
+      </el-form-item>
+
+      <el-form-item prop="ghChargeType" label="挂号号别">
+        <xc-select :data="peopleAddData.mzyZdChargeType" v-model="userInfo"
+                   :name="['ghChargeType','ghChargeTypeName']"/>
+      </el-form-item>
+      <el-form-item prop="doctorXzYp" label="限制级别">
+        <xc-select :data="peopleAddData.restrictedDrugLevels" v-model="userInfo"
+                   :name="['doctorXzYp','doctorXzYpName']"/>
+      </el-form-item>
+      <el-form-item prop="loginFlag" label="病区就诊">
+        <el-switch v-model="userInfo.loginFlag" active-color="#ff4949" active-text="不允许" active-value="2"
+                   inactive-color="#13ce66" inactive-text="允许" inactive-value="1">
+        </el-switch>
+      </el-form-item>
+      <el-form-item prop="delFlag" label="停用">
+        <el-switch v-model="userInfo.delFlag" active-color="#ff4949" active-text="停用" active-value="1"
+                   inactive-color="#13ce66" inactive-text="开启" inactive-value="0">
+        </el-switch>
+      </el-form-item>
+      <el-form-item prop="socialNo" label="身份证">
+        <el-input v-model="userInfo.socialNo" clearable></el-input>
+      </el-form-item>
+      <el-form-item prop="phoneNo" label="手机号">
+        <el-input v-model="userInfo.phoneNo" clearable></el-input>
+      </el-form-item>
+      <el-form-item prop="ybCode" label="医保">
+        <el-input v-model="userInfo.ybCode" clearable></el-input>
+      </el-form-item>
+      <el-form-item label="兼诊科室">
+        <el-select v-model="userInfo.partTimeDept"
+                   multiple
+                   filterable
+                   placeholder="兼诊科室"
+                   style="width: 240px">
+          <el-option
+              v-for="item in peopleAddData.deptData"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"/>
+        </el-select>
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <div>
+        <el-button type="primary" @click="confirm(formRef)">确认</el-button>
+        <el-button @click="emit('close')">取消</el-button>
+      </div>
+    </template>
+  </el-dialog>
 </template>
 
 <script setup name="PersonnelInformationEditing">
@@ -105,16 +105,16 @@ import {modifyEmployeeInfo, saveEmployeeInfo} from "@/api/settings/permission-se
 import {stringIsBlank} from "@/utils/blank-utils";
 
 const props = defineProps({
-    userInfo: {
-        type: Object,
-        default: {
-            name: '添加员工'
-        }
-    },
-    index: {
-        type: Number,
-        default: -1
-    },
+  userInfo: {
+    type: Object,
+    default: {
+      name: '添加员工'
+    }
+  },
+  index: {
+    type: Number,
+    default: -1
+  },
 })
 const emit = defineEmits(['close', 'changeTheData'])
 const dialog = ref(true)
@@ -122,88 +122,87 @@ const title = stringIsBlank(props.userInfo.name) ? '添加员工' : '正在编
 const userInfo = ref({})
 
 const doctorSPrescription = [
-    {code: '1', name: '普通处方权'},
-    {code: '2', name: '毒麻药处方权'},
+  {code: '1', name: '普通处方权'},
+  {code: '2', name: '毒麻药处方权'},
 ]
 
 const wardVisit = [
-    {code: '1', name: '允许'},
-    {code: '2', name: '不允许'}
+  {code: '1', name: '允许'},
+  {code: '2', name: '不允许'}
 ]
 
 const formRef = ref(null)
 
 const idVerification = async (rule, value, callback) => {
-    if (value) {
-        const check = await idVerificationApi(value)
-        if (check) {
-            callback()
-        } else {
-            callback(new Error("请填写正确的身份证号码"))
-        }
+  if (value) {
+    const check = await idVerificationApi(value)
+    if (check) {
+      callback()
     } else {
-        callback(new Error("请填写身份证"))
+      callback(new Error("请填写正确的身份证号码"))
     }
+  } else {
+    callback(new Error("请填写身份证"))
+  }
 }
 
 const phoneNumber = (rule, value, callback) => {
-    if (value) {
-        if (isValidPhone(value)) {
-            callback()
-        } else {
-            callback(new Error("请填写正确的手机号"))
-        }
+  if (value) {
+    if (isValidPhone(value)) {
+      callback()
     } else {
-        callback(new Error("该项不能为空"))
+      callback(new Error("请填写正确的手机号"))
     }
+  } else {
+    callback(new Error("该项不能为空"))
+  }
 }
 
 const rules = reactive({
-    name: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-    codeRs: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-    deptCode: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-    empInmark: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-    doctorXzYp: [{required: true, message: '该项不能为空', trigger: 'blur'}],
-    socialNo: [
-        {required: true, message: '该项不能为空', trigger: 'blur'},
-        {validator: idVerification, trigger: 'blur'}
-    ],
-    phoneNo: [
-        {required: true, message: '该项不能为空', trigger: 'change'},
-        {validator: phoneNumber, trigger: 'blur'}
-    ],
+  name: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  codeRs: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  deptCode: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  empInmark: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  doctorXzYp: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  socialNo: [
+    {required: true, message: '该项不能为空', trigger: 'blur'},
+    {validator: idVerification, trigger: 'blur'}
+  ],
+  phoneNo: [
+    {required: true, message: '该项不能为空', trigger: 'change'},
+    {validator: phoneNumber, trigger: 'blur'}
+  ],
 })
 
 const confirm = (formRef) => {
-    if (!formRef) return
-    formRef.validate(async (valid) => {
-        if (valid) {
-            if (props.index !== -1) {
-                await modifyEmployeeInfo(userInfo.value);
-                emit('changeTheData', props.index, userInfo.value)
-            } else {
-                await saveEmployeeInfo(userInfo.value)
-                emit('changeTheData', props.index, userInfo.value)
-            }
-
-        } else {
-            ElMessage.error("请仔细检查")
-        }
-    })
+  if (!formRef) return
+  formRef.validate(async (valid) => {
+    if (valid) {
+      if (props.index !== -1) {
+        await modifyEmployeeInfo(userInfo.value);
+        emit('changeTheData', props.index, userInfo.value)
+      } else {
+        await saveEmployeeInfo(userInfo.value)
+        emit('changeTheData', props.index, userInfo.value)
+      }
+    } else {
+      ElMessage.error("请仔细检查")
+    }
+  })
 
 }
 
 onMounted(async () => {
-    await Sleep(500)
-    if (props.userInfo) {
-        userInfo.value = clone(props.userInfo)
-        userInfo.value.oldData = true
-        if (userInfo.value.partTimeDeptCode) {
-            userInfo.value.partTimeDept = userInfo.value.partTimeDeptCode.split(',')
-        }
-    } else {
-        userInfo.value.oldData = false
+  await Sleep(500)
+  if (props.userInfo) {
+    userInfo.value = clone(props.userInfo)
+    userInfo.value.oldData = true
+    if (userInfo.value.partTimeDeptCode) {
+      userInfo.value.partTimeDept = userInfo.value.partTimeDeptCode.split(',')
     }
+  } else {
+    userInfo.value.oldData = false
+  }
 })
 
 

+ 1 - 1
src/css/element-plus-modify.scss

@@ -106,7 +106,7 @@
   }
 }
 
-.cy-el-tabs__fill {
+.el-tabs__fill {
   @include flex-y-max;
 
   .el-tabs__content {

+ 1 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr_control_rule/EmrControlRule.vue

@@ -29,7 +29,7 @@
         </div>
       </div>
       <div class="layout_flex_1-y">
-        <el-tabs v-model="tabsModel" class="cy-el-tabs__fill">
+        <el-tabs v-model="tabsModel" class="el-tabs__fill">
           <el-tab-pane label="质控数量" name="质控数量">
             <CyVxeTable :data="numberToArray">
               <vxe-column field="name" title="质控名称"/>

+ 1 - 1
src/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/query-die/QueryDie.vue

@@ -42,7 +42,7 @@ const exportExcelClick = () => {
     </div>
     <div class="layout_flex_1-y">
       <el-tabs v-model="tabs"
-               class="cy-el-tabs__fill">
+               class="el-tabs__fill">
         <el-tab-pane name="dieEmr" label="死亡病历">
           <DieEmr :res-data="resData"/>
         </el-tab-pane>

+ 1 - 1
src/views/med-tec-mod/YiJiFeiYongLuRu.vue

@@ -95,7 +95,7 @@
 
     <div class="layout_flex_1-y">
       <el-tabs v-model="tabValue"
-               class="cy-el-tabs__fill">
+               class="el-tabs__fill">
         <el-tab-pane label="已录入费用" name="ylrfy">
           <huan-zhe-fei-yong
               :init="tableDataHuanZheFeiYong"

+ 46 - 48
src/views/settings/permissions/RoleMenuSettings.vue

@@ -1,57 +1,55 @@
 <template>
-  <page-layer>
-    <template #header>
+  <div class="layout_container">
+    <header>
       <el-input style="width: 200px" v-model="searchRoleContent" placeholder="请输入角色名称"></el-input>
       <el-divider direction="vertical"></el-divider>
       <el-button type="primary" icon="Upload" @click="beforeSaveMenus">
         {{ tabsVal === 'first' ? "菜单保存" : "报表保存" }}
       </el-button>
-    </template>
-    <template #main>
-      <el-row :gutter="5">
-        <el-col :span="16">
-          <el-table :data="cptRoles" :height="tableHeight" stripe highlight-current-row @row-click="handleClickRole">
-            <el-table-column prop="id" label="角色编号"></el-table-column>
-            <el-table-column prop="name" label="角色名称"></el-table-column>
-            <el-table-column prop="createDatetime" label="创建时间"></el-table-column>
-            <el-table-column prop="createStaff" label="创建人"></el-table-column>
-          </el-table>
-        </el-col>
-        <el-col :span="5">
-          <el-tabs v-model="tabsVal">
-            <el-tab-pane label="菜单权限" name="first">
-              <el-tree
-                  ref="tree"
-                  :data="menus"
-                  :props="defaultProps"
-                  :style="{ height: tableHeight - 40 - 15 + 'px', overflowY: 'scroll' }"
-                  show-checkbox
-                  node-key="id"
-                  default-expand-all
-              ></el-tree>
-            </el-tab-pane>
-            <el-tab-pane label="报表权限" name="second">
-              <el-tree :data="reportForms"
-                       show-checkbox
-                       node-key="id"
-                       ref="reportFormsTree"
-                       :style="{ height: tableHeight - 40 - 15 + 'px', overflowY: 'scroll' }">
-                <template #default="{node,data}">
-                  <div :id="'report_forms-' + data.id">
-                    <el-icon>
-                      <Document v-if="data.type === 0"/>
-                      <Folder v-else/>
-                    </el-icon>
-                    {{ data.name }}
-                  </div>
-                </template>
-              </el-tree>
-            </el-tab-pane>
-          </el-tabs>
-        </el-col>
-      </el-row>
-    </template>
-  </page-layer>
+    </header>
+    <div class="layout_main layout_container layout-horizontal">
+      <div class="layout_main layout_el-table" style="padding-right:10px ">
+        <el-table :data="cptRoles" stripe highlight-current-row @row-click="handleClickRole">
+          <el-table-column prop="id" label="角色编号"></el-table-column>
+          <el-table-column prop="name" label="角色名称"></el-table-column>
+          <el-table-column prop="createDatetime" label="创建时间"></el-table-column>
+          <el-table-column prop="createStaff" label="创建人"></el-table-column>
+        </el-table>
+      </div>
+      <div style="width: 500px">
+        <el-tabs v-model="tabsVal" class="el-tabs__fill">
+          <el-tab-pane label="菜单权限" name="first">
+            <el-tree
+                ref="tree"
+                :data="menus"
+                :props="defaultProps"
+                :style="{ height: tableHeight - 40 - 15 + 'px', overflowY: 'scroll' }"
+                show-checkbox
+                node-key="id"
+                default-expand-all
+            ></el-tree>
+          </el-tab-pane>
+          <el-tab-pane label="报表权限" name="second">
+            <el-tree :data="reportForms"
+                     show-checkbox
+                     node-key="id"
+                     ref="reportFormsTree"
+                     :style="{ height: tableHeight - 40 - 15 + 'px', overflowY: 'scroll' }">
+              <template #default="{node,data}">
+                <div :id="'report_forms-' + data.id">
+                  <el-icon>
+                    <Document v-if="data.type === 0"/>
+                    <Folder v-else/>
+                  </el-icon>
+                  {{ data.name }}
+                </div>
+              </template>
+            </el-tree>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script setup lang="ts">

+ 119 - 119
src/views/settings/permissions/UserRoleSettings.vue

@@ -1,6 +1,6 @@
 <template>
-  <page-layer>
-    <template #header>
+  <div class="layout_container">
+    <header>
       <el-input v-model="queryConditions.name" style="width: 300px" placeholder="请输入人员姓名或工号" clearable
                 prefix-icon="Search"
                 @keydown.enter="clickToQuery"/>
@@ -18,114 +18,116 @@
       <el-input v-model="queryConditions.ybCode" style="width: 120px" clearable></el-input>
       <el-button icon="Search" type="primary" @click="clickToQuery"> 查询</el-button>
       <el-button icon="Plus" type="success" @click="addEmployees"> 添加</el-button>
-    </template>
-    <template #aside>
-      <el-input v-model="searchDeptContent"
-                placeholder="请输入科室名称"
-                clearable
-                @clear="queryConditions.deptCode = ''"
-                style="width: 180px"
-                prefix-icon="Search"/>
-      <div style="height: 5px"/>
-      <el-tree
-          :data="depts"
-          :props="defaultProps"
-          default-expand-all
-          :filter-node-method="filterNode"
-          :style="{ height: tableHeight - 20 + 'px', overflowY: 'scroll' }"
-          ref="tree"
-          @node-click="handleClickDeptTreeNode"/>
-    </template>
-    <template #main>
-      <el-table :data="users" border :height="tableHeight - 40" stripe highlight-current-row>
-        <el-table-column prop="delFlag" label="停用" width="35">
-          <template #default="scope">
-            <span v-if="scope.row.delFlag === '1'">√</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="name" label="姓名"></el-table-column>
-        <el-table-column prop="code" label="编号"></el-table-column>
-        <el-table-column prop="codeRs" label="工号"></el-table-column>
-        <el-table-column prop="deptName" label="科室"></el-table-column>
-        <el-table-column prop="partTimeDeptName" label="兼诊科室"/>
-        <el-table-column prop="title" label="职称"></el-table-column>
-        <el-table-column prop="position" label="职务"></el-table-column>
-        <el-table-column prop="markName" label="在院标志"></el-table-column>
-        <el-table-column prop="ifcadreName" label="干工标志"></el-table-column>
-        <el-table-column prop="orderYn" label="医生处方权">
-          <template #default="scope">
-            <span v-if="scope.row.orderYn === '1'"> 普通处方权</span>
-            <span v-else-if="scope.row.orderYn === '2'">毒麻药处方权</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="ysjbName" label="病历级别"></el-table-column>
-        <el-table-column prop="ghChargeTypeName" label="挂号号别"></el-table-column>
-        <el-table-column prop="doctorXzYpName" label="限制药品级别" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="loginFlag" label="病区允许就诊">
-          <template #default="scope">
-            <span>{{ scope.row.loginFlag === '1' ? '允许' : '不允许' }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="socialNo" label="身份证"></el-table-column>
-        <el-table-column prop="phoneNo" label="手机号码"></el-table-column>
-        <el-table-column prop="ybCode" label="医保编码"></el-table-column>
-        <el-table-column label="操作" fixed="right" width="250">
-          <template v-slot="scope">
-            <el-button-group>
-              <el-button type="primary" text @click="clickToEdit(scope.$index, scope.row)">编辑</el-button>
-              <el-button text size="small" v-if="competence" @click="viewUserRoles(scope.row)">角色</el-button>
-              <el-button size="small"
-                         v-if="competence"
-                         @click="resetPasswordClick(scope.row)">
-                重置密码
-              </el-button>
-              <el-button text size="small" @click="uploadSignature(scope.row)">上传签名</el-button>
-            </el-button-group>
-          </template>
-        </el-table-column>
-      </el-table>
-      <el-pagination
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-          :current-page="queryConditions.currentPage"
-          :page-sizes="[30, 50, 75]"
-          :page-size="queryConditions.pageSize"
-          layout="total, sizes, prev, pager, next, jumper"
-          :total="queryConditions.total"
-          style="margin-top: 5px"
-      ></el-pagination>
-      <el-dialog title="人员角色" v-model="roleDialog">
-        <div style="padding: 10px 0">
-          <el-tag type="info" size="small">编号:{{ currentUser.code }}</el-tag>
-          <el-tag size="small">姓名:{{ currentUser.name }}</el-tag>
-          <el-tag type="warning" size="small">科室:{{ currentUser.deptName }}</el-tag>
-          <el-tag type="danger" size="small">职称:{{ currentUser.title }}</el-tag>
+    </header>
+    <div class="layout_main layout_container layout-horizontal">
+      <aside class="layout_container" style="width: 220px">
+        <header>
+          <el-input v-model="searchDeptContent"
+                    placeholder="请输入科室名称"
+                    clearable
+                    @clear="queryConditions.deptCode = ''"
+                    style="width: 180px"
+                    prefix-icon="Search"/>
+        </header>
+        <div class="layout_main">
+          <el-tree
+              :data="depts"
+              :props="defaultProps"
+              default-expand-all
+              :filter-node-method="filterNode"
+              :style="{ height: tableHeight - 20 + 'px', overflowY: 'scroll' }"
+              ref="tree"
+              @node-click="handleClickDeptTreeNode"/>
         </div>
-        <el-table ref="roleTable" :data="roles" :height="tableHeight / 2" stripe @selection-change="handleSelectRoles">
-          <el-table-column type="selection"></el-table-column>
-          <el-table-column prop="id" label="序号" width="60"></el-table-column>
-          <el-table-column prop="name" label="角色名称"></el-table-column>
-          <el-table-column prop="createDatetime" label="创建时间"></el-table-column>
-          <el-table-column prop="createStaff" label="创建人"></el-table-column>
+      </aside>
+      <div class="layout_main layout_el-table">
+        <el-table :data="users" border stripe highlight-current-row>
+          <el-table-column prop="delFlag" label="停用" width="35">
+            <template #default="scope">
+              <span v-if="scope.row.delFlag === '1'">√</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="name" label="姓名"></el-table-column>
+          <el-table-column prop="code" label="编号"></el-table-column>
+          <el-table-column prop="codeRs" label="工号"></el-table-column>
+          <el-table-column prop="deptName" label="科室"></el-table-column>
+          <el-table-column prop="partTimeDeptName" label="兼诊科室"/>
+          <el-table-column prop="title" label="职称"></el-table-column>
+          <el-table-column prop="position" label="职务"></el-table-column>
+          <el-table-column prop="markName" label="在院标志"></el-table-column>
+          <el-table-column prop="ifcadreName" label="干工标志"></el-table-column>
+          <el-table-column prop="orderYn" label="医生处方权">
+            <template #default="scope">
+              <span v-if="scope.row.orderYn === '1'"> 普通处方权</span>
+              <span v-else-if="scope.row.orderYn === '2'">毒麻药处方权</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="ysjbName" label="病历级别"></el-table-column>
+          <el-table-column prop="ghChargeTypeName" label="挂号号别"></el-table-column>
+          <el-table-column prop="doctorXzYpName" label="限制药品级别" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="loginFlag" label="病区允许就诊">
+            <template #default="scope">
+              <span>{{ scope.row.loginFlag === '1' ? '允许' : '不允许' }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="socialNo" label="身份证"></el-table-column>
+          <el-table-column prop="phoneNo" label="手机号码"></el-table-column>
+          <el-table-column prop="ybCode" label="医保编码"></el-table-column>
+          <el-table-column label="操作" fixed="right" width="180">
+            <template v-slot="scope">
+              <el-button-group>
+                <el-button text bg type="primary" @click="clickToEdit(scope.$index, scope.row)">编辑</el-button>
+                <el-button text bg size="small" @click="viewUserRoles(scope.row)" v-if="competence">角色</el-button>
+                <el-button text bg type="warning" size="small" @click="uploadSignature(scope.row)">上传签名</el-button>
+              </el-button-group>
+            </template>
+          </el-table-column>
         </el-table>
-        <el-footer>
-          <div style="width: 100%; text-align: right; padding-top: 25px">
-            <el-button type="primary" icon="Edit" @click="beforeAddRole">添加角色</el-button>
-            <el-button type="primary" icon="Upload" @click="saveRoles">保存更改</el-button>
-          </div>
-        </el-footer>
-      </el-dialog>
-      <PersonnelInformationEditing :userInfo="userInfo"
-                                   v-if="editDialog"
-                                   @close="editDialog = false"
-                                   :index="roleIndex"
-                                   @changeTheData="changeTheData"/>
-      <el-dialog title="上传签名" v-model="signatureDialog" :close-on-click-modal="false" :close-on-press-escape="false" destroy-on-close>
-          <!-- LUpload组件 -->
-          <LUpload :signatureData="signatureData" />
-      </el-dialog>
-    </template>
-  </page-layer>
+        <el-pagination
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :current-page="queryConditions.currentPage"
+            :page-sizes="[30, 50, 75]"
+            :page-size="queryConditions.pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="queryConditions.total"
+            style="margin-top: 5px"
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+
+  <el-dialog title="人员角色" v-model="roleDialog">
+    <div style="padding: 10px 0">
+      <el-tag type="info" size="small">编号:{{ currentUser.code }}</el-tag>
+      <el-tag size="small">姓名:{{ currentUser.name }}</el-tag>
+      <el-tag type="warning" size="small">科室:{{ currentUser.deptName }}</el-tag>
+      <el-tag type="danger" size="small">职称:{{ currentUser.title }}</el-tag>
+    </div>
+    <el-table ref="roleTable" :data="roles" :height="tableHeight / 2" stripe @selection-change="handleSelectRoles">
+      <el-table-column type="selection"></el-table-column>
+      <el-table-column prop="id" label="序号" width="60"></el-table-column>
+      <el-table-column prop="name" label="角色名称"></el-table-column>
+      <el-table-column prop="createDatetime" label="创建时间"></el-table-column>
+      <el-table-column prop="createStaff" label="创建人"></el-table-column>
+    </el-table>
+    <el-footer>
+      <div style="width: 100%; text-align: right; padding-top: 25px">
+        <el-button type="primary" icon="Edit" @click="beforeAddRole">添加角色</el-button>
+        <el-button type="primary" icon="Upload" @click="saveRoles">保存更改</el-button>
+      </div>
+    </el-footer>
+  </el-dialog>
+  <PersonnelInformationEditing :userInfo="userInfo"
+                               v-if="editDialog"
+                               @close="editDialog = false"
+                               :index="roleIndex"
+                               @changeTheData="changeTheData"/>
+  <el-dialog title="上传签名" v-model="signatureDialog" :close-on-click-modal="false" :close-on-press-escape="false"
+             destroy-on-close>
+    <!-- LUpload组件 -->
+    <LUpload :signatureData="signatureData"/>
+  </el-dialog>
 </template>
 
 <script setup>
@@ -141,10 +143,8 @@ import {
 import {ElMessage, ElMessageBox} from 'element-plus'
 import PersonnelInformationEditing from '@/components/settings/permissions/PersonnelInformationEditing.vue'
 import {needRule} from '@/utils/public'
-import PageLayer from "@/layout/PageLayer";
 import {CyMessageBox} from "@/components/cy/message-box";
 import LUpload from "@/views/settings/permissions/LUpload.vue"
-// import {onMounted, reactive, ref, watchEffect} from "vue";
 
 const tableHeight = window.innerHeight - 10
 const competence = needRule(1, 62)
@@ -351,19 +351,19 @@ const dropDownSelection = [
 // 上传签名图片
 const baseurl = import.meta.env.VITE_BASE_URL
 const signatureData = ref({
-    uploadUrl: baseurl+'/settings/setAutographImage',
-    coversList: [],
-    fileList: [],
-    param: {code:''},
-    limitCountImg: 1,
-    pSize: 2,
-    showBtnDealImg: true,
-    noneBtnImg: false,
+  uploadUrl: baseurl + '/settings/setAutographImage',
+  coversList: [],
+  fileList: [],
+  param: {code: ''},
+  limitCountImg: 1,
+  pSize: 2,
+  showBtnDealImg: true,
+  noneBtnImg: false,
 })
 const signatureDialog = ref(false)
 const uploadSignature = (val) => {
   signatureData.value.param.code = val.code
-  if(val.autographImag){
+  if (val.autographImag) {
     signatureData.value.coversList.push(val.autographImag)
   }
   signatureDialog.value = true

+ 1 - 0
src/views/system/login.vue

@@ -92,6 +92,7 @@ const submit = () => {
 
   loginApi(params).then((res) => {
     userStore.setUserInfo(res)
+    localStorage.removeItem('tabs')
 
     if (!checkPasswordStrength(params.password) && !isDev) {
       changePassword(false).then(newPassword => {