鹿和sa0ChunLuyu 1 year ago
commit 318a89aeea

@ -13,4 +13,31 @@ class ComboTypeController extends Controller
$list=DB::table('combo_type')->get(); $list=DB::table('combo_type')->get();
return \Yz::Return(true,'查询成功',['list'=>$list]); return \Yz::Return(true,'查询成功',['list'=>$list]);
} }
public function Save()
{
$Info=request('Info');
$data=['name'=>$Info['name']];
$u=false;
if(isset($Info['id']) and $Info['id']<>0){
//更新
$u=DB::table('combo_type')->where('id',$Info['id'])->update($data);
}else{
//添加
$u=DB::table('combo_type')->insert($data);
}
if($u){
return \Yz::Return(true,"操作完成",[]);
}else{
return \Yz::echoError1("操作失败");
}
}
public function Del(){
$id=request('id');
$d=DB::table('combo_type')->where('id',$id)->delete();
if($d){
return \Yz::Return(true,"操作完成",[]);
}else{
return \Yz::echoError1("操作失败");
}
}
} }

@ -48,6 +48,16 @@ class AspNetZhuanController extends Controller
return $res['data']; return $res['data'];
} }
//发送短信
public static function SendMsg($yyid,$tel,$name,$time){
if($yyid==1){
$yyid=6;
}
$content="时间:".$time.";科室:健康管理中心1区。温馨提醒:您的预约已成功,请在预约时间前 30 分钟达到科室凭身份证原件开单。建议您体检前3天清淡饮食、禁烟酒";
$url=self::$BaseUrl."/tuisong.aspx?yyid=".$yyid."&type=8&mobile=".$tel."&msg1=".urlencode($name)."&msg2=".urlencode($content);
self::get($url,"短信发送");
}
public static function Get($url,$mark) public static function Get($url,$mark)
@ -56,14 +66,14 @@ class AspNetZhuanController extends Controller
$response = Http::get($url); $response = Http::get($url);
if ($response->successful()) { if ($response->successful()) {
$res = $response->json(); $res = $response->json();
Log::info($res);
self::$request->response_data = json_encode($res, JSON_UNESCAPED_UNICODE); self::$request->response_data = json_encode($res, JSON_UNESCAPED_UNICODE);
self::$request->save(); self::$request->save();
if ($res['code'] == "200") { if ($res['code'] == "200") {
return $res; return $res;
} else { } else {
throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败:" . $res['msg'])); throw new HttpResponseException(\Yz::echoError1("调用".$mark."接口失败:" . $res['msg']));
} }
} else { } else {
$status = $response->status(); $status = $response->status();
@ -73,7 +83,7 @@ class AspNetZhuanController extends Controller
self::$request->response_data = $body; self::$request->response_data = $body;
self::$request->save(); self::$request->save();
throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败,status:" . $status . "body:" . $body)); throw new HttpResponseException(\Yz::echoError1("调用".$mark."接口失败:" . $status . "body:" . $body));
} }
} }
public static function Post($url,$data,$mark) public static function Post($url,$data,$mark)
@ -93,7 +103,7 @@ class AspNetZhuanController extends Controller
if ($res['code'] == "200") { if ($res['code'] == "200") {
return $res; return $res;
} else { } else {
throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败:" . $res['msg'])); throw new HttpResponseException(\Yz::echoError1("调用".$mark."接口失败:" . $res['msg']));
} }
} else { } else {
$status = $response->status(); $status = $response->status();
@ -103,7 +113,7 @@ class AspNetZhuanController extends Controller
self::$request->response_data = $body; self::$request->response_data = $body;
self::$request->save(); self::$request->save();
throw new HttpResponseException(\Yz::echoError1("查询用户积分预存款失败,status:" . $status . "body:" . $body)); throw new HttpResponseException(\Yz::echoError1("调用".$mark."接口失败:" . $status . "body:" . $body));
} }
} }

@ -39,6 +39,7 @@ class ComboController extends Controller
$doctor = $request->post('doctor'); $doctor = $request->post('doctor');
$openid = $request->post('openid'); $openid = $request->post('openid');
$search = $request->post('search');
$combo_sort = $request->post('combo_sort'); $combo_sort = $request->post('combo_sort');
$combo_type = $request->post('combo_type'); $combo_type = $request->post('combo_type');
$combo_crowd = $request->post('combo_crowd'); $combo_crowd = $request->post('combo_crowd');
@ -82,6 +83,12 @@ class ComboController extends Controller
$sql = $sql . " and a.crowd_id=? "; $sql = $sql . " and a.crowd_id=? ";
$canshu[] = $combo_crowd; $canshu[] = $combo_crowd;
} }
if(isset($search) and !empty($search)){
$sql = $sql . " and a.name like ? ";
$canshu[] = '%'.$search.'%';
}
if (isset($combo_sort)) { if (isset($combo_sort)) {
if ($combo_sort == 1) { if ($combo_sort == 1) {
$sql = $sql . " "; $sql = $sql . " ";
@ -97,6 +104,7 @@ class ComboController extends Controller
} }
} }
if(isset($combo_item)){ if(isset($combo_item)){
$combo_ids=DB::table('combo_items')->whereIn('item_id',$combo_item)->where(['status'=>1]) $combo_ids=DB::table('combo_items')->whereIn('item_id',$combo_item)->where(['status'=>1])
->groupBy('combo_id') ->groupBy('combo_id')

@ -593,6 +593,7 @@ class OrderController extends Controller
]); ]);
$is_sendMsg=DB::table('configs')->where(['label' => '预约完成短信通知'])->first(); $is_sendMsg=DB::table('configs')->where(['label' => '预约完成短信通知'])->first();
if(!!$is_sendMsg and $is_sendMsg->value==1){ if(!!$is_sendMsg and $is_sendMsg->value==1){
$asp=new AspNetZhuanController();
Tools::SendMsg($cha->hospital_id,$cha->phone,$cha->name,$cha->appointment_date.' '.substr($cha->appointment_time, 0, 5)); Tools::SendMsg($cha->hospital_id,$cha->phone,$cha->name,$cha->appointment_date.' '.substr($cha->appointment_time, 0, 5));
} }
return ['status' => true, 'msg' => "完成"]; return ['status' => true, 'msg' => "完成"];

@ -101,6 +101,8 @@ Route::group(['middleware' => ['checktoken', 'log'], 'prefix' => 'v1'], function
Route::post('admin/GetBaseInfoDetail', 'App\Http\Controllers\API\Admin\YeWu\HospitalController@GetBaseInfoDetail'); Route::post('admin/GetBaseInfoDetail', 'App\Http\Controllers\API\Admin\YeWu\HospitalController@GetBaseInfoDetail');
Route::post('admin/SaveCacheInfo', 'App\Http\Controllers\API\Admin\YeWu\HospitalController@SaveCacheInfo'); Route::post('admin/SaveCacheInfo', 'App\Http\Controllers\API\Admin\YeWu\HospitalController@SaveCacheInfo');
Route::post('admin/ComboTypeGetList', 'App\Http\Controllers\API\Admin\YeWu\ComboTypeController@GetList');//套餐类型列表 Route::post('admin/ComboTypeGetList', 'App\Http\Controllers\API\Admin\YeWu\ComboTypeController@GetList');//套餐类型列表
Route::post('admin/ComboTypeSave', 'App\Http\Controllers\API\Admin\YeWu\ComboTypeController@Save');//套餐类型列表
Route::post('admin/ComboTypeDel', 'App\Http\Controllers\API\Admin\YeWu\ComboTypeController@Del');//套餐类型列表
Route::post('admin/ComboCrowdGetList', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@GetList');//套餐适应人群 Route::post('admin/ComboCrowdGetList', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@GetList');//套餐适应人群
Route::post('admin/ComboCrowdSave', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@Save');//套餐适应人群保存 Route::post('admin/ComboCrowdSave', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@Save');//套餐适应人群保存
Route::post('admin/ComboCrowdDel', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@Del');//套餐适应人群删除 Route::post('admin/ComboCrowdDel', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@Del');//套餐适应人群删除

@ -211,6 +211,12 @@ export const SaveCacheInfo = (data = {}) => {
export const ComboTypeGetList = (data = {}) => { export const ComboTypeGetList = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboTypeGetList', data: data }) return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboTypeGetList', data: data })
} }
export const ComboTypeSave = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboTypeSave', data: data })
}
export const ComboTypeDel = (data = {}) => {
return axios({ url: import.meta.env.VITE_APP_API + 'v1/admin/ComboTypeDel', data: data })
}
//获取套餐适用人群 //获取套餐适用人群
export const ComboCrowdGetList = (data = {}) => { export const ComboCrowdGetList = (data = {}) => {

@ -211,6 +211,13 @@ const router = createRouter({
meta: { meta: {
title: '趋势分析项目' title: '趋势分析项目'
} }
},{
path: '/combomngr/type',
name: 'ComboMngrType',
component: () => import('../views/ComboMngr/Type.vue'),
meta: {
title: '套餐类型'
}
}] }]
}, },

@ -0,0 +1,155 @@
<template>
<div>
<div class="head">
<div class="head">
<el-row>
<!-- <el-form-item>
<el-input v-model="searchInfo.name" placeholder="请输入类型名称" style="margin-left: 10px;" />
</el-form-item>
<el-button type="primary" @click="GetList()" style="margin-left: 10px;">查询</el-button> -->
<el-button type="success" @click="Add()" style="margin-left: 10px;">添加</el-button>
</el-row>
</div>
</div>
<el-table :data="tableData" style="width: 100%;" row-key="id" v-loading="loading">
<el-table-column prop="id" label="Id" width="100" v-if="false" />
<el-table-column prop="name" label="名称" />
<el-table-column prop="" label="操作" width="150">
<template #default="scope">
<el-button type="primary" @click="Edit(scope.row)" size="small">修改</el-button>
<el-button type="danger" @click="Del(scope.row.id)" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog v-model="dialogVisible" title="适应人群设置">
<div class="chuansuokuang" v-loading="loading">
<el-form :model="Info" label-width="80" style="max-width: 600px">
<el-form-item label="名称">
<el-input v-model="Info.name" />
</el-form-item>
</el-form>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="Save()">
确定
</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script setup>
import {
ref,
onMounted
} from 'vue';
import {
ElMessage,
ElMessageBox
} from 'element-plus'
import {
ComboTypeGetList,
ComboTypeSave,
ComboTypeDel
} from '@/api/api.js'
let loading = ref(false)
let searchInfo = ref({})
let tableData = ref([])
let currentPage = ref(1) //
let pageSize = ref(15) //
let total = 0 //
const PageSizeChange = (e) => { //
pageSize.value = e
GetList()
}
const PageCurrentChange = (e) => { //
currentPage.value = e
GetList()
}
const GetList = () => {
loading.value = true
ComboTypeGetList({
searchInfo: searchInfo.value,
page: currentPage.value,
pageSize: pageSize.value
}).then(res => {
loading.value = false
if (res.status) {
tableData.value = res.data.list
total = res.data.count
} else {
ElMessage.error(res.msg)
}
})
}
let Info = ref({});
let dialogVisible = ref(false);
const Add = () => {
Info.value = {}
Info.value.id = 0
Info.value.status = 1
dialogVisible.value = true
}
const Save = () => {
loading.value = true
ComboTypeSave({
Info: Info.value
}).then(res => {
loading.value = false
if (res.status) {
dialogVisible.value = false
GetList()
} else {
ElMessage.error(res.msg)
}
})
}
const Edit=(row)=>{
dialogVisible.value = true
Info.value.name =row.name
Info.value.id = row.id
}
//
const GetDetailFunc=(id)=>{
loading.value = true
PlanTypeGetDetail({
id: id
}).then(res => {
loading.value = false
if (res.status) {
Info.value=res.data
} else {
ElMessage.error(res.msg)
}
})
}
const Del=(id)=>{
loading.value = true
ComboTypeDel({
id: id
}).then(res => {
loading.value = false
if (res.status) {
GetList()
} else {
ElMessage.error(res.msg)
}
})
}
onMounted(() => {
GetList()
})
</script>
<style scoped>
.head{
margin: 10px auto;
}
</style>

@ -112,7 +112,7 @@ const deleteClick = (id) => {
} }
const comboNameShow = (combo_id) => { const comboNameShow = (combo_id) => {
if (Number(combo_id) === 0) return '无关联套餐' if (Number(combo_id) === 0) return '无关联套餐'
return combo_list.value.find((i) => i.combo_id == combo_id).name return combo_list.value.find((i) => i.combo_id == combo_id)?.name
} }
onMounted(() => { onMounted(() => {

@ -281,7 +281,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="botm_blank_wrapper" style="font-size: 18rpx;color: #ccc;">10221910</view> <view class="botm_blank_wrapper" style="font-size: 18rpx;color: #ccc;">10231704</view>
</view> </view>
</view> </view>
</template> </template>

Loading…
Cancel
Save