cas 多科室 选择切换

main
yanzai 5 months ago
parent a9028c640b
commit eef874da05

@ -2,6 +2,7 @@
namespace App\Http\Controllers\API\CAS;
use App\Http\Controllers\API\His\HisController;
use App\Http\Controllers\Controller;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Http\Request;
@ -68,13 +69,34 @@ class CasLoginController extends Controller
$user=DB::table('users')->where(['cas_code'=>$res_user,'status'=>1])->first();
if(!!$user){
$send_his_data=[
'docCode'=>$res_user
];
$His = new HisController();
$res = $His::Get("查询医生有权限的科室", $send_his_data);
$dept_arr=[];
if ($res['code'] == 200) {
$res_data = $res['data'];
if(is_array($res_data)){
foreach ($res_data as $k=>$v){
$db_dept=DB::table('s_department')->where(['department_number'=>$v['deptCode'],'is_del'=>0])->first();
if($db_dept){
$dept_arr[]=[
'deptName'=>$v['deptName'],
'deptId'=>$db_dept->id,
];
}
}
}
}
$jwt= new JWT();
$accessTimeout = $jwt -> GetGetSecretTimeOut();
$refreshTimeout = $jwt -> GetRefreshTokenTimeOut();
$access_token = $jwt->BuildJWT('yz','access',$user->id,$user->group,$accessTimeout);
$refresh_token = $jwt->BuildJWT('yz','refresh',$user->id,'',$refreshTimeout);
DB::table('users')->where(['id'=>$user->id,'status'=>1])->update(['token'=>md5($refresh_token)]);
return redirect(env('APP_URL')."/admin/#/caslogin?access_token=".$access_token."&refresh_token=".$refresh_token);
return redirect(env('APP_URL')."/admin/#/caslogin?access_token=".$access_token."&refresh_token=".$refresh_token."&dept_arr=".urlencode(json_encode($dept_arr)));
}else{
echo "登录失败,未授权或者已注销";
}

@ -22,6 +22,7 @@ class HisController extends Controller
$api['查询人员列表'] = "/roc/curr-web/api/v1/common/employee/query";
$api['查询非药品列表'] = "/roc/order-service/api/v1/order/order-term/undrug/query";
$api['查询所有检查项目分类'] = "/roc/order-service/api/v1/order/order-term/dawn-code/query?consTypeId=EXAMSHEETTYPE";
$api['查询医生有权限的科室'] = "/roc/curr-web/api/v1/common/dept/doctdept/query";
return $api["{$url_code}"] ?? $url_code;
}

@ -1,12 +1,26 @@
<template>
<view>
cas登录
<el-dialog v-model="DeptShow" title="请选择要登录的科室" width="40%" >
<div style="word-break: break-all" v-loading="Loading">
<el-radio-group v-model="SelectDeptId">
<el-radio v-for="(item,index) in dept_json" :key="index" :label="item.deptId">{{item.deptName}}</el-radio>
</el-radio-group>
</div>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="SelectDeptFunc()">
确定
</el-button>
</div>
</template>
</el-dialog>
</view>
</template>
<script setup>
import {
Login
ChangeDefaultDept
} from "@/api/api.js";
import {
ElMessage
@ -14,19 +28,59 @@
import {
ref,nextTick,onMounted
} from 'vue'
onMounted(()=>{
let access_token=getParameterByName('access_token')
let refresh_token=getParameterByName('refresh_token')
sessionStorage.setItem('token', access_token);
sessionStorage.setItem('refreshToken', refresh_token);
// sessionStorage.setItem('tk', JSON.stringify(res.data.tk));
let dept_json=ref([])
let DeptShow=ref(false)
let Loading=ref(false)
let SelectDeptId=ref('')
let access_token=ref('')
const SelectDeptFunc=()=>{
if(SelectDeptId.value==''){
ElMessage.error("请选择科室")
return false
}
Loading.value=true
ChangeDefaultDept({
deptid:SelectDeptId.value
}).then(res => {
if (res.status) {
login()
}else{
ElMessage.error(res.msg)
}
})
}
const login=()=>{
var token = sessionStorage.getItem('token');
console.log(token)
if (token!=null && token == access_token) {
if (token!=null && token == access_token.value) {
window.location.href = "./#/yewu/mainList"
}else{
ElMessage.error("登录失败")
}
}
onMounted(()=>{
access_token.value=getParameterByName('access_token')
let refresh_token=getParameterByName('refresh_token')
let dept_arr=getParameterByName('dept_arr')
sessionStorage.setItem('token', access_token.value);
sessionStorage.setItem('refreshToken', refresh_token);
if(!!dept_arr){
try {
dept_json.value = JSON.parse(decodeURIComponent(dept_arr));
console.log(dept_json.value);
} catch (e) {
console.error('JSON 解析失败');
}
}
if(dept_json.value.length>1){
DeptShow.value=true
}else{
login()
}
})
//url
function getParameterByName(name, url) {

Loading…
Cancel
Save