1
0
lsw 10 mesiacov pred
rodič
commit
251b5de24f

BIN
admin-ui/src/assets/images/login-background.jpg


+ 6 - 2
admin-ui/src/assets/styles/extend.scss

@@ -247,6 +247,7 @@
   }
 
   .js {
+    margin-top: 5px;
     .head {
       text-align: center;
       img {
@@ -262,6 +263,9 @@
       font-size: 16px;
       margin-top: 10px;
     }
+    .introduce {
+      font-size: 14px;
+    }
   }
 }
 .mbg {
@@ -430,7 +434,7 @@
       font-size: 17px;
     }
     .desc {
-      font-size: 15px;
+      font-size: 17px;
       padding-top: 5px;
     }
     .ntc {
@@ -438,7 +442,7 @@
       padding-top: 10px;
       color: #7b7b7b;
     }
-    .xx {
+    .edit {
       margin-top: 15px;
       a {
         color: white !important;

+ 28 - 29
admin-ui/src/views/index.vue

@@ -15,17 +15,15 @@
                 <div class="tit">个人形象</div>
               </div>
               <div class="cards">
-                <div class="ctop">
-                  <img :src="avatar" class="avatar" />
-                  <div class="con">
-                    <div class="title">姓名:{{ nickName }}</div>
-                    <div class="desc">角色:{{ user.roleName ? user.roleName : '无角色' }}</div>
-                    <div class="desc">科室:{{ user.deptNameStr ? user.deptNameStr : '无科室' }}</div>
-                    <el-button icon="el-icon-edit" type="primary" class="xx">
-                      <router-link to="/user/profile">编辑我的形象</router-link>
-                    </el-button>
-                    <div class="ntc">只有医生才会在小程序上面展示个人形象</div>
-                  </div>
+                <img :src="user.avatar" class="avatar" />
+                <div class="con">
+                  <div class="title">姓名:{{ user.nickName }}</div>
+                  <div class="desc">角色:{{ user.roleName ? user.roleName : '无角色' }}</div>
+                  <div class="desc">科室:{{ user.deptNameStr ? user.deptNameStr : '无科室' }}</div>
+                  <el-button icon="el-icon-edit" type="primary" class="edit">
+                    <router-link to="/user/profile">编辑我的形象</router-link>
+                  </el-button>
+                  <div class="ntc">只有医生才会在小程序上面展示个人形象</div>
                 </div>
               </div>
             </div>
@@ -44,7 +42,7 @@
                   <div class="rint" style="background-color: rgb(242 232 255)">
                     <div class="icon" style="color: #8642df">&#xe6b6;</div>
                     <div class="rcon">
-                      <div class="rtt omit">所有患者</div>
+                      <div class="rtt">患者数据</div>
                       <div class="rdesc">{{ data.count.visit || 0 }}</div>
                     </div>
                   </div>
@@ -55,7 +53,7 @@
                   <div class="rint" style="background-color: rgb(255 245 229)">
                     <div class="icon" style="color: #fab22e">&#xe716;</div>
                     <div class="rcon">
-                      <div class="rtt omit">复诊提醒</div>
+                      <div class="rtt">复诊提醒</div>
                       <div class="rdesc">{{ data.count.up || 0 }}</div>
                     </div>
                   </div>
@@ -66,7 +64,7 @@
                   <div class="rint" style="background-color: rgb(237 246 254)">
                     <div class="icon" style="color: #489afd">&#xe62f;</div>
                     <div class="rcon">
-                      <div class="rtt omit">回访记录</div>
+                      <div class="rtt">回访记录</div>
                       <div class="rdesc">{{ data.count.record || 0 }}</div>
                     </div>
                   </div>
@@ -77,7 +75,7 @@
                   <div class="rint" style="background-color: rgb(255 242 245)">
                     <div class="icon" style="color: #fa5376">&#xe69a;</div>
                     <div class="rcon">
-                      <div class="rtt omit">知识库</div>
+                      <div class="rtt">知识库</div>
                       <div class="rdesc">{{ data.count.knowledge || 0 }}</div>
                     </div>
                   </div>
@@ -86,6 +84,7 @@
             </div>
           </div>
         </div>
+        <!--快捷菜单-->
         <div class="out">
           <div class="int">
             <div class="bos">
@@ -109,19 +108,17 @@
       </div>
       <!--手机预览-->
       <div class="pop" style="width: 35%">
-        <div class="out mar0">
+        <div class="out">
           <div class="int">
             <div class="bos">
               <div class="div-mc">
                 <div class="guise-mobile">
                   <div class="guise-mobile-show" ref="scrollbar">
                     <div class="js">
-                      <div class="head">
-                        <img :src="avatar" />
-                      </div>
-                      <div class="name">{{ nickName }}</div>
-                      <div class="introduce" v-html="introduce" v-if="introduce"></div>
-                      <el-empty v-else description="暂无个人介绍" :image-size="100" v-else></el-empty>
+                      <div class="head"><img :src="user.avatar" /></div>
+                      <div class="name">{{ user.nickName }}</div>
+                      <div class="introduce" v-html="user.introduce" v-if="user.introduce"></div>
+                      <el-empty v-else description="暂无个人介绍" :image-size="80" v-else></el-empty>
                     </div>
                   </div>
                 </div>
@@ -135,7 +132,6 @@
 </template>
 
 <script>
-import { mapGetters } from 'vuex';
 import Vue from 'vue';
 export default {
   name: 'Index',
@@ -184,7 +180,9 @@ export default {
     };
   },
   computed: {
-    ...mapGetters(['avatar', 'nickName', 'introduce'])
+    user() {
+      return this.$store.state.user;
+    }
   },
   created() {
     this.getData();
@@ -207,7 +205,7 @@ export default {
     margin-top: -15px;
   }
   .chart-wrapper {
-    margin-top: 8px;
+    margin-top: -15px;
     .pop {
       float: left;
       width: 33.33%;
@@ -215,11 +213,12 @@ export default {
       .out {
         margin: 16px 10px 10px 10px;
         box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+        border-radius: 10px;
         .int {
           padding: 15px;
           background: #fff;
           overflow: hidden;
-          border-radius: 7px;
+          border-radius: 10px;
         }
       }
     }
@@ -261,9 +260,9 @@ export default {
             }
           }
           .ctt {
-            color: #585858;
-            font-size: 14px;
-            padding-top: 18px;
+            color: #393939;
+            font-size: 15px;
+            padding-top: 19px;
           }
         }
       }

+ 1 - 1
admin-ui/src/views/login.vue

@@ -156,7 +156,7 @@ export default {
 	padding: 0px 30px 78px 30px;
 	background-color: #fff;
 	box-shadow: 0 6px 12px 0 rgba(0, 0, 0, 0.1);
-	border-radius: 4px;
+	border-radius: 10px;
 	position: absolute;
 	top: 20%;
 	left: 40%;

+ 1 - 1
admin-ui/src/views/system/user/profile/userInfo.vue

@@ -34,7 +34,6 @@ export default {
       rules: {
         nickName: [{ required: true, message: '用户昵称不能为空', trigger: 'blur' }],
         email: [
-          { required: true, message: '邮箱地址不能为空', trigger: 'blur' },
           {
             type: 'email',
             message: '请输入正确的邮箱地址',
@@ -59,6 +58,7 @@ export default {
             this.$modal.msgSuccess('修改成功');
             store.commit('SET_nickName', this.user.nickName);
             store.commit('introduce', this.user.introduce);
+            this.$tab.closePage();
           });
         }
       });

+ 5 - 5
admin-ui/src/views/work/follow/record/index.vue

@@ -13,8 +13,8 @@
       </el-form-item>
     </el-form>
     <el-row :gutter="10" class="mb8">
-      <el-button type="primary" icon="el-icon-plus" :disabled="ids.length > 0" @click="op('add')" v-hasPermi="['work:record:add']">{{ queryParams.type == 0 ? '新增提醒' : '新增回访' }}</el-button>
-      <el-button type="danger" icon="el-icon-delete" :disabled="ids.length == 0" @click="del" v-hasPermi="['work:record:remove']">删除{{ ids.length > 0 ? '(' + ids.length + ')' : '' }}</el-button>
+      <el-button type="primary" icon="el-icon-plus" :disabled="ids.length > 0" @click="op('add')" v-hasPermi="['work:record:add', 'work:up:add']">{{ queryParams.type == 0 ? '新增提醒' : '新增回访' }}</el-button>
+      <el-button type="danger" icon="el-icon-delete" :disabled="ids.length == 0" @click="del" v-hasPermi="['work:record:remove', 'work:up:remove']">删除{{ ids.length > 0 ? '(' + ids.length + ')' : '' }}</el-button>
     </el-row>
 
     <el-table :data="response.rows" border @selection-change="selects" height="calc(100vh - 270px)">
@@ -37,9 +37,9 @@
       <el-table-column label="所属科室" align="center" prop="deptName" width="160" />
       <el-table-column label="操作" align="center" width="180">
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)" v-hasPermi="['work:record:list']">查看</el-button>
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="op('edit', scope.row)" v-hasPermi="['work:knowledge:edit']">编辑</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="del(scope.row)" v-hasPermi="['work:record:remove']">删除</el-button>
+          <el-button size="mini" type="text" icon="el-icon-view" @click="op('detail', scope.row)" v-hasPermi="['work:record:list', 'work:up:list']">查看</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="op('edit', scope.row)" v-hasPermi="['work:record:edit', 'work:up:edit']">编辑</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="del(scope.row)" v-hasPermi="['work:record:remove', 'work:up:remove']">删除</el-button>
         </template>
       </el-table-column>
       <template slot="empty">

+ 56 - 0
admin-ui/src/views/work/introduction/agreement.vue

@@ -0,0 +1,56 @@
+<template>
+  <div class="app-container" style="overflow-y: auto">
+    <div class="cmain">
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+        <div class="bos">
+          <div class="lab">
+            <div class="bsg"></div>
+            <div class="tit">协议(小程序上架需要)</div>
+          </div>
+          <el-form-item label="用户协议" prop="privacy">
+            <editor v-model="form.agreement" placeholder="请输入"></editor>
+          </el-form-item>
+          <el-form-item label="隐私政策" prop="privacy">
+            <editor v-model="form.privacy" placeholder="请输入"></editor>
+          </el-form-item>
+        </div>
+      </el-form>
+      <div>
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="$layer.close(layerid)">取 消</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {},
+      rules: {
+        privacy: [{ required: true, message: '不能为空', trigger: 'blur' }],
+        agreement: [{ required: true, message: '不能为空', trigger: 'blur' }]
+      }
+    };
+  },
+  mounted() {
+    this.ajax({ url: '/work/introduction/detail' }).then((response) => {
+      this.form = response.data;
+    });
+  },
+  methods: {
+    submitForm() {
+      this.$refs['form'].validate((valid) => {
+        if (valid) {
+          if (this.form.id) {
+            this.ajax({ method: 'post', url: '/work/introduction/edit', data: this.form }).then((response) => {
+              this.$modal.msgSuccess('修改成功');
+            });
+          }
+        }
+      });
+    }
+  }
+};
+</script>

+ 33 - 31
admin-ui/src/views/work/introduction/index.vue

@@ -1,38 +1,40 @@
 <template>
   <div class="app-container" style="overflow-y: auto">
     <div class="cmain">
-      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
-        <div class="bos">
-          <div class="lab">
-            <div class="bsg"></div>
-            <div class="tit">医院基本信息</div>
+      <el-row>
+        <el-col :span="16">
+          <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+            <div class="bos">
+              <div class="lab">
+                <div class="bsg"></div>
+                <div class="tit">医院基本信息</div>
+              </div>
+              <el-form-item label="医院电话" prop="phone">
+                <el-input v-model="form.phone" placeholder="请输入" clearable />
+              </el-form-item>
+              <el-form-item label="医院邮箱" prop="email">
+                <el-input v-model="form.email" placeholder="请输入" clearable />
+              </el-form-item>
+              <el-form-item label="医院介绍" prop="brief">
+                <editor v-model="form.brief" placeholder="请输入"></editor>
+              </el-form-item>
+            </div>
+          </el-form>
+        </el-col>
+        <el-col :span="8">
+          <div class="div-mc">
+            <div class="guise-mobile">
+              <div class="guise-mobile-show" ref="scrollbar">
+                <div class="js">
+                  <div class="introduce" v-html="form.brief" v-if="form.brief"></div>
+                  <el-empty v-else description="暂无个人介绍" :image-size="80" v-else></el-empty>
+                </div>
+              </div>
+            </div>
           </div>
-          <el-form-item label="医院电话" prop="phone">
-            <el-input v-model="form.phone" placeholder="请输入" clearable />
-          </el-form-item>
-          <el-form-item label="医院地址" prop="address">
-            <el-input v-model="form.address" placeholder="请输入" clearable />
-          </el-form-item>
-          <el-form-item label="医院邮箱" prop="email">
-            <el-input v-model="form.email" placeholder="请输入" clearable />
-          </el-form-item>
-          <el-form-item label="医院介绍" prop="brief">
-            <editor v-model="form.brief" placeholder="请输入"></editor>
-          </el-form-item>
-        </div>
-        <div class="bos">
-          <div class="lab">
-            <div class="bsg"></div>
-            <div class="tit">协议(小程序上架需要)</div>
-          </div>
-          <el-form-item label="用户协议" prop="privacy">
-            <editor v-model="form.agreement" placeholder="请输入"></editor>
-          </el-form-item>
-          <el-form-item label="隐私政策" prop="privacy">
-            <editor v-model="form.privacy" placeholder="请输入"></editor>
-          </el-form-item>
-        </div>
-      </el-form>
+        </el-col>
+      </el-row>
+
       <div>
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="$layer.close(layerid)">取 消</el-button>

+ 5 - 6
ruoyi-admin/src/main/java/com/ruoyi/web/work/controller/FollowRecordController.java

@@ -33,7 +33,7 @@ public class FollowRecordController extends BaseController {
     @Autowired
     private IFollowTemplateService followTemplateService;
 
-    @PreAuthorize("@ss.hasPermi('work:record:list')")
+    @PreAuthorize("@ss.hasAnyPermi('work:record:list,work:up:list')")
     @GetMapping("/list")
     public TableDataInfo list(FollowRecord followRecord) {
         startPage();
@@ -41,7 +41,6 @@ public class FollowRecordController extends BaseController {
         return getDataTable(list);
     }
 
-    @PreAuthorize("@ss.hasPermi('work:record:query')")
     @GetMapping(value = "/detail/{id}")
     public AjaxResult detail(@PathVariable("id") Long id) {
         return AjaxResult.success(followRecordService.getById(id));
@@ -56,28 +55,28 @@ public class FollowRecordController extends BaseController {
         return getDataTable(list);
     }
 
-    @PreAuthorize("@ss.hasPermi('work:record:list')")
+    @PreAuthorize("@ss.hasAnyPermi('work:record:list,work:up:list')")
     @GetMapping("/template/list")
     public AjaxResult templateList(FollowTemplate followTemplate) {
         List<FollowTemplate> list = followTemplateService.selectList(followTemplate);
         return AjaxResult.success(list);
     }
 
-    @PreAuthorize("@ss.hasPermi('work:record:add')")
+    @PreAuthorize("@ss.hasAnyPermi('work:record:add,work:up:add')")
     @Log(title = "回访记录", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@RequestBody FollowRecord followRecord) {
         return followRecordService.add(followRecord);
     }
 
-    @PreAuthorize("@ss.hasPermi('work:record:edit')")
+    @PreAuthorize("@ss.hasAnyPermi('work:record:edit,work:up:edit')")
     @Log(title = "回访记录", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody FollowRecord followRecord) {
         return toAjax(followRecordService.updateById(followRecord));
     }
 
-    @PreAuthorize("@ss.hasPermi('work:record:remove')")
+    @PreAuthorize("@ss.hasAnyPermi('work:record:remove,work:up:remove')")
     @Log(title = "回访记录", businessType = BusinessType.DELETE)
     @GetMapping("/remove/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {