完善 维护工具

main
yanzai 2 months ago
parent 8404f592c1
commit 13eb316576

@ -7,20 +7,26 @@ use Illuminate\Support\Facades\DB;
class TiJianListController
{
public function GetList(Request $request){
public function GetList(Request $request)
{
$group = $request->get('role');//中间件产生的参数
if($group !==1){
if ($group != 1) {
return \Yz::echoError1('权限不足');
}
$info =request('info');
$sfz_encode='';
$info = request('info');
$sfz_encode = '';
// 如果输入长度 >=15认为是身份证号进行HSM加密
if (!empty($info) && strlen($info) >= 15) {
$HSM_sfz = \App\Lib\HSM::HsmEncrypt($info);
if ($HSM_sfz['status'] !== true) {
return \Yz::echoError1('调用HSM加密失败');
if (env('APP_ENV') !== 'bendi') {
$HSM_sfz = \App\Lib\HSM::HsmEncrypt($info);
if ($HSM_sfz['status'] !== true) {
return \Yz::echoError1('调用HSM加密失败');
}
$sfz_encode = $HSM_sfz['data'];
} else {
$sfz_encode = $info;
}
$sfz_encode = $HSM_sfz['data'];
}
// 构造搜索条件闭包,避免 where/orWhere 逻辑混乱
@ -39,15 +45,25 @@ class TiJianListController
->where($searchCondition)
->where('is_del', 0)
->orderBy('id', 'desc')
->get();
->get()
->map(function ($value) {
return (array)$value;
})->toArray();
foreach ($yuyue_list as $k => $v) {
$sfz =\App\Lib\HSM::HsmDecrypt($v->id_card_num);
if($sfz['status']!=true){
return \Yz::echoError1('调用HSM解密失败');
$yuyue_list[$k]['leixing']='预约';
if (env('APP_ENV') !== 'bendi') {
$sfz = \App\Lib\HSM::HsmDecrypt($v['id_card_num']);
if ($sfz['status'] != true) {
return \Yz::echoError1('调用HSM解密失败');
}
$v['id_card_num'] = $sfz['data'];
}
$v->id_card_num=$sfz['data'];
}
// 体检记录查询
$tijian_list = DB::table('examination_records as a')
->leftJoin('medical_institution as b', 'a.institution_id', '=', 'b.id')
@ -55,38 +71,51 @@ class TiJianListController
->where($searchCondition)
->where('a.is_del', 0) // 注意表别名 a
->orderBy('a.id', 'desc')
->get();
foreach ($yuyue_list as $k => $v) {
$sfz =\App\Lib\HSM::HsmDecrypt($v->id_card_num);
if($sfz['status']!=true){
return \Yz::echoError1('调用HSM解密失败');
->get()
->map(function ($value) {
return (array)$value;
})->toArray();
foreach ($tijian_list as $k => $v) {
$tijian_list[$k]['leixing']='体检';
if (env('APP_ENV') !== 'bendi') {
$sfz = \App\Lib\HSM::HsmDecrypt($v['id_card_num']);
if ($sfz['status'] != true) {
return \Yz::echoError1('调用HSM解密失败');
}
$v['id_card_num'] = $sfz['data'];
}
$v->id_card_num=$sfz['data'];
}
return \Yz::Return(true,'查询完成',[
'yuyue_list'=>$yuyue_list,
'tijian_list'=>$tijian_list,
$all_list = [];
$all_list = array_merge($yuyue_list, $tijian_list);
return \Yz::Return(true, '查询完成', [
'all_list' => $all_list,
]);
}
public function Del(Request $request){
public function Del(Request $request)
{
$group = $request->get('role');//中间件产生的参数
$userid = $request->get('userid');//中间件产生的参数
if($group !==1){
if ($group != 1) {
return \Yz::echoError1('权限不足');
}
$id =request('id');
$type =request('type');
$id = request('id');
$leixing = request('leixing');
$tablename = 'appointment_record';
if($type==1){
if ($leixing == '预约') {
$tablename = 'appointment_record';
}
if($type==2){
if ($leixing == '体检') {
$tablename = 'examination_records';
}
$update = DB::table($tablename)->where('id', $id)->update(['is_del'=>1]);
if($update){
return \Yz::Return(true,'标记删除完成',['id'=>$id,'tablename'=>$tablename,'userid'=>$userid]);
}else{
$update = DB::table($tablename)->where('id', $id)->update(['is_del' => 1]);
if ($update) {
return \Yz::Return(true, '标记删除完成', ['id' => $id, 'tablename' => $tablename, 'userid' => $userid]);
} else {
return \Yz::echoError1('操作失败');
}

@ -131,6 +131,6 @@ Route::post('UkeyLogin','App\Http\Controllers\API\UkeyController@UkeyLogin')->mi
//
Route::group(['middleware'=>['checktoken','log'],'prefix'=>'WeiHu'],function () { //维护
Route::post('TiJianGetList','App\Http\Controllers\API\mH5\TiJianListController@GetList'); //手机H5端用户注册
Route::post('TiJianDel','App\Http\Controllers\API\mH5\TiJianListController@Del'); //手机H5端用户注册
Route::post('TiJianGetList','App\Http\Controllers\API\WeiHu\TiJianListController@GetList'); //手机H5端用户注册
Route::post('TiJianDel','App\Http\Controllers\API\WeiHu\TiJianListController@Del'); //手机H5端用户注册
});

@ -16,6 +16,15 @@ import {
export const Login = (data) => {
return sendRequest({url: BaseUrl+"admin/login",method: 'POST',data:data});
}
export const TiJianGetList = (data) => {
return sendRequest({url: BaseUrl+"WeiHu/TiJianGetList",method: 'POST',data:data});
}
export const TiJianDel = (data) => {
return sendRequest({url: BaseUrl+"WeiHu/TiJianDel",method: 'POST',data:data});
}
//添加会员
export const PersonSave = (data) => {
return sendRequest({url: BaseUrl+"v1/H5/PersonSave",method: 'POST',data:data});

@ -79,6 +79,13 @@
"navigationBarTitleText" : "",
"enablePullDownRefresh" : false
}
},
{
"path" : "pages/user/SearchInput/SearchInput",
"style" :
{
"navigationBarTitleText" : ""
}
}
],

@ -63,10 +63,10 @@
localStorage.setItem("password",password.value)
localStorage.setItem("mianmi_date",day7())
}
sessionStorage.setItem("access_token", res.token)
sessionStorage.setItem("refresh_token", res.refresh_token)
uni.switchTab({
url: '/pages/index/index'
sessionStorage.setItem("access_token", res.data.token)
sessionStorage.setItem("refresh_token", res.data.refresh_token)
uni.navigateTo({
url: '/pages/user/SearchInput/SearchInput'
})
}

@ -0,0 +1,55 @@
<template>
<view style="background-color: aliceblue;padding: 20rpx;">
<input class="input" v-model="info" placeholder="请输入姓名/身份证" />
<view style="padding-left: 40rpx;padding-right: 40rpx;">
<view class="button" @click="Search()"></view>
</view>
</view>
</template>
<script setup>
import {
ref
} from "vue"
import {
} from "@/api"
import {
onLoad,
onShow
} from "@dcloudio/uni-app"
let info=ref('');
const Search=()=>{
if(info.value.length>0){
uni.navigateTo({
url: '/pages/user/list?info='+info.value
})
}else{
uni.showToast({
title:"请输入信息",
icon:"error"
})
}
}
</script>
<style scoped>
.input{
background-color: #fff;
border: 1px solid #ccc;
height: 80rpx;
}
.button {
width: 100%;
background-color: #7ea3b4;
height: 80rpx;
line-height: 80rpx;
text-align: center;
color: #fff;
font-weight: 700;
border-radius: 50rpx;
margin-top: 80rpx;
}
</style>

@ -9,26 +9,22 @@
<view class="person_item_wrapper" v-for="(i, k) in List" :key="k">
<view style="display: flex;align-items: center;" @click="PersonClick(i)">
<view class="person_avatar_wrapper">
<image v-if="i.sex === 1" src="@/static/images/userm.png"></image>
<image v-if="i.leixing == '预约'" src="@/static/images/userm.png"></image>
<image v-else src="@/static/images/userw.png"></image>
</view>
<view class="person_info_wrapper">
<view class="person_text_wrapper">
<view class="person_name_wrapper">{{ i.name }}</view>
<view class="person_sex_wrapper">{{ i.sex === 1 ? "男" : "女" }}</view>
<view class="person_sex_wrapper">{{i.leixing}}</view>
</view>
<view class="person_idnumber_wrapper">{{ i.id_number }}</view>
</view>
</view>
<view style="display: flex; width: 300rpx;" >
<view class="person_type_wrapper">本人</view>
<view class="person_type_wrapper" :style="{ backgroundColor: i.leixing === '预约' ? '#81d1ad' : '#d1987c' }">{{i.leixing}}</view>
<view style="display: flex; justify-content: end; width: 100%; padding-right: 20rpx;">
<view class="tools_row" @click="editClickFunc(i.id)">
<uni-icons type="compose" size="20"></uni-icons>
<view class="tools">编辑</view>
</view>
<view class="tools_row" @click="delClickFunc(i.id)">
<view class="tools_row" @click="delClickFunc(i.id,i.leixing)">
<uni-icons type="trash" size="20"></uni-icons>
<view class="tools">删除</view>
</view>
@ -42,11 +38,9 @@
</view>
</view>
<view v-else style="font-size: 28rpx;color: #666; width: 100%; text-align: center; padding-top: 200rpx;">
请先添加体检人
</view>
<view class="add_button_wrapper">
<view class="add_button_text_wrapper" @click="addClickFunc()"></view>
无数据
</view>
</view>
</template>
@ -55,7 +49,7 @@
ref
} from "vue"
import {
PersonGetList,PersonDel
TiJianGetList,TiJianDel
} from "@/api"
import {
onLoad,
@ -64,13 +58,16 @@
let search = ref('');
let List = ref([]);
const GetList = () => {
PersonGetList({
search: search.value
List.value=[]
TiJianGetList({
info: search.value
}).then(res => {
if (res.status) {
List.value = res.data.list
List.value=res.data.all_list
}
console.log(List.value)
})
}
const goto = (id) => {
@ -96,14 +93,15 @@
url:'/pages/user/person_edit?personid=' + id
})
}
const delClickFunc=(id)=>{
const delClickFunc=(id,leixing)=>{
uni.showModal({
title: '提示',
content: '确定删除吗?',
success: function (res) {
if (res.confirm) {
PersonDel({
id: id
TiJianDel({
id: id,
leixing:leixing
}).then(res => {
if (res.status) {
GetList()
@ -122,7 +120,14 @@
})
}
onShow(() => {
GetList()
})
onLoad((e)=>{
if(e.info.length>0){
search.value=e.info
GetList()
}
})
</script>

Loading…
Cancel
Save