查看附件,删除附件

main
yanzai 1 year ago
parent 0bd7ef2349
commit feeaaf6005

@ -6,6 +6,8 @@ use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Services\Admin\YeWu\AppointmentService;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
class AppointmentController extends Controller
{
//获取预约记录
@ -100,6 +102,17 @@ class AppointmentController extends Controller
$d=DB::table('appointment_record')->where('id',$id)->update([
'is_del'=>1
]);
$list=DB::table('appointment_img')->where(['appointment_record_id'=>$id])->get();
if(count($list)>0){
foreach ($list as $item){
// dd(Storage::disk('public')->exists('H5Upload/20240111/At00DqGsf0qkTXBeV9uhpEgPzhlC0BxI6eAnRudq.png'));
$relativePath = ltrim($item->imgurl, '/storage/');
if (Storage::disk('public')->exists($relativePath)) {
Storage::disk('public')->delete($relativePath);
}
}
}
if($d){
return \Yz::Return(true,'操作成功',[]);
}else{
@ -172,4 +185,11 @@ class AppointmentController extends Controller
->get();
return \Yz::Return(true,'查询成功',['list'=>$list,'dateRange'=>[$searchInfo['start'],$searchInfo['end']]]);
}
//查看预约时候的图片列表
public function GetPicList()
{
$yuyue_id=request('yuyue_id');
$list=DB::table('appointment_img')->where(['appointment_record_id'=>$yuyue_id])->get();
return \Yz::Return(true,'查询完成',['list'=>$list]);
}
}

@ -59,6 +59,8 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () {
Route::post('admin/InstitutionGetSetingDetail','App\Http\Controllers\API\Admin\YeWu\InstitutionController@GetSetingDetail');//获取机构设置详情
Route::post('admin/GetConfigs','App\Http\Controllers\API\Admin\YeWu\ConfigsController@GetConfigs');//获取设置
Route::post('admin/SaveConfig','App\Http\Controllers\API\Admin\YeWu\ConfigsController@SaveConfig');//保存设置
Route::post('admin/AppointmentGetPicList','App\Http\Controllers\API\Admin\YeWu\AppointmentController@GetPicList'); //获取预约记录图片
Route::post('admin/CheckUpCount','App\Http\Controllers\API\Admin\YeWu\HealthCheckupController@CheckUpCount');//体检统计
});

@ -167,4 +167,9 @@ export const SaveConfig = (data={}) => {
//体检数量统计
export const CheckUpCount = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/CheckUpCount',data:data})
}
//获取预约记录图片
export const AppointmentGetPicList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/AppointmentGetPicList',data:data})
}

@ -5,11 +5,12 @@
<el-form-item>
<el-tag class="ml-2" type="success" style="margin-right: 20px;">机构名称</el-tag>
<el-select filterable v-model="searchInfo.orgId" placeholder="请选择体检机构" clearable>
<el-option v-for="(item, index) in org_list" :key="index" :label="item.org_name" :value="item.id" />
<el-option v-for="(item, index) in org_list" :key="index" :label="item.org_name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item>
<el-input v-model="searchInfo.userinfo" placeholder="姓名/身份证"/>
<el-input v-model="searchInfo.userinfo" placeholder="姓名/身份证" />
</el-form-item>
<el-form-item>
<el-tag class="ml-2" type="success" style=" margin-left: 20px;margin-right: 20px;">时间段</el-tag>
@ -18,7 +19,7 @@
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" />
</div>
</el-form-item>
<!-- <el-form-item>
<el-tag class="ml-2" type="success" style=" margin-right: 20px;">体检状态</el-tag>
<el-radio-group v-model="searchInfo.status">
@ -27,28 +28,28 @@
</el-radio-group>
</el-form-item> -->
<el-form-item>
<el-button type="primary" style="margin-left: 20px;" @click="GetList"></el-button>
</el-form-item>
</el-row>
</div>
<el-table :data="tableData" style="width: 100%;" row-key="id" v-loading="loading">
<el-table-column prop="id" label="Id" width="100" />
<el-table-column prop="org_name" label="体检机构名称" >
<el-table :data="tableData" style="width: 100%;" row-key="id" v-loading="loading">
<el-table-column prop="id" label="Id" width="80" />
<el-table-column prop="org_name" label="体检机构名称">
<template #default="scope">
<span v-if="scope.row.org_name">{{scope.row.org_name}}</span>
<span v-else style="color: #ccc;">暂无</span>
<span v-if="scope.row.org_name">{{scope.row.org_name}}</span>
<span v-else style="color: #ccc;">暂无</span>
</template>
</el-table-column>
<el-table-column prop="name" label="体检人姓名" />
<el-table-column prop="name" label="体检人姓名" width="100"/>
<el-table-column prop="id_card_num" label="证件号" />
<el-table-column prop="type" label="体检类型">
<template #default="scope">
<el-tag v-if="scope.row.type==1" class="ml-2" type="success"></el-tag>
<el-tag v-if="scope.row.type==2" class="ml-2" type="warning"></el-tag>
</template>
<el-table-column prop="type" label="体检类型" width="100">
<template #default="scope">
<el-tag v-if="scope.row.type==1" class="ml-2" type="success"></el-tag>
<el-tag v-if="scope.row.type==2" class="ml-2" type="warning"></el-tag>
</template>
</el-table-column>
<!-- <el-table-column prop="status" label="预约状态" width="100">
<template #default="scope">
@ -58,15 +59,19 @@
</template>
</el-table-column> -->
<el-table-column prop="fee_type" label="收费状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.fee_type==0" class="ml-2" type="success"></el-tag>
<el-tag v-if="scope.row.fee_type==1" class="ml-2" type="info"></el-tag>
</template>
<template #default="scope">
<el-tag v-if="scope.row.fee_type==0" class="ml-2" type="success"></el-tag>
<el-tag v-if="scope.row.fee_type==1" class="ml-2" type="info"></el-tag>
</template>
</el-table-column>
<el-table-column prop="created_at" label="创建时间" />
<el-table-column label="操作" width="100" v-if="userinfo.group==1">
<template #default="scope" >
<el-button type="primary" @click="del(scope.row.id)"></el-button>
<el-table-column label="操作" >
<template #default="scope">
<div style="display: flex;">
<el-button @click="ShowPic(scope.row)"></el-button>
<el-button type="primary" @click="del(scope.row.id)"></el-button>
</div>
</template>
</el-table-column>
</el-table>
@ -75,6 +80,23 @@
:page-sizes="[15, 50, 100, 200]" layout="total,sizes, prev, pager, next" :total="total"
@size-change="PageSizeChange" @current-change="PageCurrentChange" />
</div>
<el-dialog v-model="dialogVisible" title="查看附件" width="60%">
<div v-loading="loading">
<div v-if="pic_list.length>0" style="display: flex; justify-content: space-around; flex-wrap: wrap;">
<div v-for="(item,index) in pic_list" :key="index" >
<el-image style="width: 200px; height: 200px" :preview-src-list="picSrcList" :src="BaseFileUrl+item.imgurl" />
</div>
</div>
<div v-else style="text-align: center;color: #999;">
暂无附件
</div>
</div>
</el-dialog>
</div>
</template>
@ -84,16 +106,21 @@
onMounted
} from 'vue'
import {
ElMessage,ElMessageBox
ElMessage,
ElMessageBox
} from 'element-plus'
import {
GetHealthOrganizationEnableList,
GetAppointmentList,DelAppointment
GetAppointmentList,
DelAppointment,
AppointmentGetPicList
} from '@/api/api.js'
import { useRoute } from 'vue-router'
import {
useRoute
} from 'vue-router'
const route = useRoute()
const calendarId = route.query.calendarId //id
const calendarId = route.query.calendarId //id
let BaseFileUrl = import.meta.env.VITE_APP_FILE
let loading = ref(false)
let tableData = ref([])
let currentPage = ref(1) //
@ -102,9 +129,9 @@
let searchInfo = ref({
dateRange: [],
orgId: '',
status:'',
userinfo:'',
calendarId:calendarId?calendarId:''
status: '',
userinfo: '',
calendarId: calendarId ? calendarId : ''
})
const PageSizeChange = (e) => { //
pageSize.value = e
@ -114,23 +141,23 @@
currentPage.value = e
GetList()
}
//
const GetList=()=>{
const GetList = () => {
loading.value = true
GetAppointmentList({
page: currentPage.value,
pageSize: pageSize.value,
searchInfo: searchInfo.value,
}).then(res => {
loading.value = false
page: currentPage.value,
pageSize: pageSize.value,
searchInfo: searchInfo.value,
}).then(res => {
loading.value = false
if (res.status) {
tableData.value = res.data.list
total = res.data.count
tableData.value = res.data.list
total = res.data.count
} else {
ElMessage.error(res.msg)
}
})
}
let org_list = ref([]) //
@ -144,10 +171,10 @@
} else {
ElMessage.error(res.msg)
}
})
}
const del=(id)=>{
const del = (id) => {
ElMessageBox.confirm('确认删除此记录吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@ -155,23 +182,47 @@
})
.then(() => {
loading.value = true
DelAppointment({id:id}).then(res => {
DelAppointment({
id: id
}).then(res => {
loading.value = false
if (res.status) {
GetList()
GetList()
} else {
ElMessage.error(res.msg)
}
})
})
}
let dialogVisible = ref(false);
let pic_list = ref([]);
let picSrcList=ref([]);
const ShowPic = (row) => {
dialogVisible.value = true
loading.value = true
AppointmentGetPicList({
yuyue_id: row.id
}).then(res => {
loading.value = false
if (res.status) {
pic_list.value = res.data.list
pic_list.value.forEach((v,i)=>{
picSrcList.value.push(BaseFileUrl+v.imgurl)
})
} else {
ElMessage.error(res.msg)
}
})
}
let userinfo=ref('');
let userinfo = ref('');
onMounted(() => {
getHealthOrganizationEnableList()
GetList()
userinfo.value=JSON.parse(sessionStorage.getItem('userinfo'))
userinfo.value = JSON.parse(sessionStorage.getItem('userinfo'))
console.log(userinfo.value);
})
</script>

Loading…
Cancel
Save