Browse Source

add:用户设置

ct 2 days ago
parent
commit
4ed7e5282b

+ 6 - 0
src/api/his/packageCate.js

@@ -23,6 +23,12 @@ export function getAllCateList(query) {
     params: query
   })
 }
+export function cateList() {
+  return request({
+    url: '/his/packageCate/cateList',
+    method: 'get',
+  })
+}
 // 新增套餐包分类
 export function addPackageCate(data) {
   return request({

+ 53 - 0
src/api/system/set.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+// 查询用户设置列表
+export function listSet(query) {
+  return request({
+    url: '/system/set/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询用户设置详细
+export function getSet(userId) {
+  return request({
+    url: '/system/set/' + userId,
+    method: 'get'
+  })
+}
+
+// 新增用户设置
+export function addSet(data) {
+  return request({
+    url: '/system/set',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改用户设置
+export function updateSet(data) {
+  return request({
+    url: '/system/set',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除用户设置
+export function delSet(userId) {
+  return request({
+    url: '/system/set/' + userId,
+    method: 'delete'
+  })
+}
+
+// 导出用户设置
+export function exportSet(query) {
+  return request({
+    url: '/system/set/export',
+    method: 'get',
+    params: query
+  })
+}

+ 33 - 6
src/views/his/company/index.vue

@@ -206,6 +206,16 @@
         <el-form-item label="地址" prop="companyAddress">
           <el-input v-model="form.companyAddress" placeholder="请输入地址" />
         </el-form-item>
+        <el-form-item label="套餐包分类" prop="packageCateIds">
+          <el-select v-model="form.packageCateIds" multiple filterable placeholder="请选择套餐包分类" style="width: 300px;">
+            <el-option
+              v-for="item in cateList"
+              :key="item.dictValue"
+              :label="item.dictLabel"
+              :value="item.dictValue"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="随访医生" prop="followDoctorIds">
            <el-select v-model="form.followDoctorIds" multiple filterable placeholder="请选择随访医生" style="width: 300px;">
              <el-option
@@ -334,6 +344,7 @@ import {getFollowDoctorList} from "@/api/his/doctor";
 import {docList} from "@/api/his/doctor";
 import {getVoiceApiList } from "@/api/company/companyVoiceApi";
 import {getCitysArea} from "../../../api/company/company";
+import {cateList} from "@/api/his/packageCate";
 export default {
   name: "Company",
   data() {
@@ -388,6 +399,7 @@ export default {
         money:0,
       },
       followDoctorList:[],
+      cateList:[],
       // 表单参数
       form: {
         restartTime: '13:10',
@@ -438,6 +450,9 @@ export default {
        // followDoctorIds: [
        //   { required: true, message: "不能为空", trigger: "blur" }
        // ],
+       packageCateIds: [
+          { required: true, message: "套餐包分类不能为空", trigger: "blur" }
+        ],
      },
      // 表单校验
      deductRules: {
@@ -469,6 +484,9 @@ export default {
     });
     getFollowDoctorList().then((response) => {
       this.followDoctorList = response.rows;
+    });
+    cateList().then((response) => {
+      this.cateList = response.rows;
     });
 	docList().then(response => {
 	    this.doctor=response.rows;
@@ -611,12 +629,15 @@ export default {
         if(this.form.status!=null){
           this.form.status = String(this.form.status)
         }
-		if(this.form.doctorIds!=null){
-		  this.doctorIds = ((this.form.doctorIds).split(",")).map(Number);
-		}
+        if(this.form.doctorIds!=null){
+          this.doctorIds = ((this.form.doctorIds).split(",")).map(Number);
+        }
         if(this.form.followDoctorIds!=null){
            this.form.followDoctorIds= JSON.parse(this.form.followDoctorIds)
         }
+        if(this.form.packageCateIds!=null){
+           this.form.packageCateIds= JSON.parse(this.form.packageCateIds)
+        }
         if(this.form.companyType!=null){
           this.form.companyType = String(this.form.companyType)
         }
@@ -629,9 +650,15 @@ export default {
           if(this.form.followDoctorIds!=null){
              this.form.followDoctorIds= JSON.stringify(this.form.followDoctorIds)
           }
-		  if(this.doctorIds!=null){
-		     this.form.doctorIds= (this.doctorIds).toString()
-		  }
+          if(this.form.packageCateIds!=null){
+             this.form.packageCateIds= JSON.stringify(this.form.packageCateIds)
+          }
+          if(this.doctorIds!=null){
+            this.form.doctorIds= (this.doctorIds).toString()
+          }
+          if(this.doctorIds!=null){
+            this.form.doctorIds= (this.doctorIds).toString()
+          }
           if (this.form.companyId != null) {
             updateCompany(this.form).then(response => {
               this.msgSuccess("修改成功");

+ 49 - 0
src/views/system/user/index.vue

@@ -191,6 +191,8 @@
                     v-hasPermi="['system:user:resetPwd']">重置密码</el-dropdown-item>
                   <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check"
                     v-hasPermi="['system:user:edit']">分配角色</el-dropdown-item>
+                    <el-dropdown-item command="handleSetUser" icon="el-icon-warning-outline"
+                    v-hasPermi="['system:user:edit']">用户设置</el-dropdown-item>  
                 </el-dropdown-menu>
               </el-dropdown>
             </template>
@@ -347,6 +349,7 @@
 
 <script>
 import { listUser, getUser, delUser, addUser, updateUser, exportUser, resetUserPwd, changeUserStatus, importTemplate } from "@/api/system/user";
+import {addSet,getSet } from "@/api/system/set";
 import { getToken } from "@/utils/auth";
 import { treeselect } from "@/api/system/dept";
 import Treeselect from "@riophae/vue-treeselect";
@@ -573,6 +576,9 @@ export default {
         case "handleAuthRole":
           this.handleAuthRole(row);
           break;
+        case "handleSetUser":
+          this.handleSetUser(row);
+          break  
         default:
           break;
       }
@@ -604,6 +610,49 @@ export default {
         this.title = "修改用户";
         this.form.password = "";
       });
+    },
+     /** 用户设置 */
+    handleSetUser(row) {
+      getSet(row.userId).then(response=>{
+        if(response.data){
+          this.$prompt('请输入"' + row.userName + '"的显示百分比', "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          closeOnClickModal: false,
+          inputPattern: /^[1-9]\d*$/,
+          inputErrorMessage: "请输入大于0的整数",
+          inputValue: response.data.rate
+        }).then(({ value }) => {
+            const param = {userId:row.userId,rate:value}
+            addSet(param).then(response => {
+              this.msgSuccess("设置成功,显示百分比是:" + value + "%");
+            });
+          }).catch(() => {});
+        } else {
+          // 如果 response.data 不存在,直接弹出提示框,不初始化值
+          this.$prompt('请输入"' + row.userName + '"的显示百分比', "提示", {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            closeOnClickModal: false,
+            inputPattern: /^[1-9]\d*$/,  // 匹配大于0的整数
+            inputErrorMessage: "请输入大于0的整数"
+          }).then(({ value }) => {
+            const param = { userId: row.userId, rate: value };
+            addSet(param).then(response => {
+              this.msgSuccess("设置成功,显示百分比是:" + value + "%");
+            }).catch(error => {
+              // 处理后端返回的错误
+              this.msgError("设置失败:" + error.message);
+            });
+          }).catch(() => {
+            // 用户取消操作
+            this.msgInfo("操作已取消");
+          });
+        }
+      }).catch(error => {
+        // 处理 getSet 请求失败的情况
+        this.msgError("获取当前设置失败:" + error.message);
+      });
     },
     /** 重置密码按钮操作 */
     handleResetPwd(row) {