套餐适用人群,参数设置

wenjuan
yanzai 1 year ago
parent 537751d71c
commit a2e580b276

@ -10,14 +10,23 @@ class ConfigController extends Controller
{ {
//获取站点配置信息 //获取站点配置信息
public function GetConfigInfo(){ public function GetConfigInfo(Request $request){
$userid = $request->get('userid');//中间件产生的参数
$group=$request->get('role');
$is_admin=false;
if(in_array($group,[1])){
$is_admin=true;
}
$configs = new ConfigService(); $configs = new ConfigService();
return $configs->GetConfigInfo(['站点名称','站点图片']); return $configs->GetConfigInfo(['站点名称','站点图片'],$is_admin);
} }
public function SaveConfig(){ public function SaveConfig(){
$name = request('name');
$logo = request('logo'); $data = request('data');
if(count($data)>0){
$configs = new ConfigService(); $configs = new ConfigService();
return $configs->SaveConfig($name,$logo); return $configs->SaveConfig($data);
}
} }
} }

@ -106,9 +106,10 @@ class ComboController extends Controller
$pageSize = request('pageSize'); $pageSize = request('pageSize');
$searchInfo = request('searchInfo'); $searchInfo = request('searchInfo');
$list=DB::table('combos') $list=DB::table('combos')
->select('combos.*','hospitals.name as hospital_name','combo_type.name as combo_type_name') ->select('combos.*','hospitals.name as hospital_name','combo_type.name as combo_type_name','combo_crowd.name as combo_crowd_name')
->leftJoin('hospitals','hospitals.id','=','combos.hospital_id') ->leftJoin('hospitals','hospitals.id','=','combos.hospital_id')
->leftJoin('combo_type','combos.type_id','=','combo_type.id'); ->leftJoin('combo_type','combos.type_id','=','combo_type.id')
->leftJoin('combo_crowd','combos.crowd_id','=','combo_crowd.id');
if(isset($searchInfo['name'])){ if(isset($searchInfo['name'])){
$list = $list->where('combos.name', 'like', '%' . $searchInfo['name'] . '%'); $list = $list->where('combos.name', 'like', '%' . $searchInfo['name'] . '%');
@ -137,6 +138,7 @@ class ComboController extends Controller
$Info = request('Info'); $Info = request('Info');
$u=DB::table('combos')->where(['id'=>$Info['id']])->update([ $u=DB::table('combos')->where(['id'=>$Info['id']])->update([
'type_id'=>$Info['type_id'], 'type_id'=>$Info['type_id'],
'crowd_id'=>$Info['crowd_id'],
'tags'=>isset($Info['tags'])?json_encode($Info['tags'],JSON_UNESCAPED_UNICODE):[], 'tags'=>isset($Info['tags'])?json_encode($Info['tags'],JSON_UNESCAPED_UNICODE):[],
'cover'=>$Info['cover'], 'cover'=>$Info['cover'],
'intro'=>$Info['intro'], 'intro'=>$Info['intro'],

@ -0,0 +1,17 @@
<?php
namespace App\Http\Controllers\API\Admin\YeWu;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ComboCrowdController extends Controller
{
//获取适用人群列表
public function GetList()
{
$list=DB::table('combo_crowd')->get();
return \Yz::Return(true,'查询成功',['list'=>$list]);
}
}

@ -7,8 +7,14 @@ class ConfigService
{ {
//获取配置信息 //获取配置信息
public function GetConfigInfo($arr){ public function GetConfigInfo($arr,$is_admin=false){
$q=DB::table('configs')->select(['label','value'])->whereIn('label',$arr)->get(); $q=DB::table('configs')->select(['label','value']);
if($is_admin){
}else{
$q=$q->whereIn('label',$arr);
}
$q=$q->get();
if(count($q)>0) { if(count($q)>0) {
$result = []; $result = [];
foreach ($q as $k => $v) { foreach ($q as $k => $v) {
@ -19,19 +25,19 @@ class ConfigService
return \Yz::Return(false, '查询失败'); return \Yz::Return(false, '查询失败');
} }
} }
public function SaveConfig($name,$logo){ public function SaveConfig($data){
$result=array(); foreach ($data as $key=>$item){
DB::beginTransaction(); $u=DB::table('configs')->where('label', '=', $key)->update(['value'=>$item]);
try { }
$d= DB::table('configs')->where('label', '=', '站点名称')->update(['value'=>$name]); if($u){
$d= DB::table('configs')->where('label', '=', '站点图片')->update(['value'=>$logo]);
DB::commit(); // 手动提交事务
return \Yz::Return(true, '操作成功'); return \Yz::Return(true, '操作成功');
} catch (\Exception $e) { }else{
DB::rollback(); // 发生异常时手动回滚事务
return \Yz::Return(false, '操作失败'); return \Yz::Return(false, '操作失败');
} }
} }
} }

@ -74,6 +74,7 @@ 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/ComboCrowdGetList', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@GetList');//套餐适应人群
}); });

@ -204,3 +204,8 @@ 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 ComboCrowdGetList = (data={}) => {
return axios({url:import.meta.env.VITE_APP_API+'v1/admin/ComboCrowdGetList',data:data})
}

@ -13,6 +13,7 @@
<el-table-column prop="hospital_name" label="医院" /> <el-table-column prop="hospital_name" label="医院" />
<el-table-column prop="name" label="套餐名称" /> <el-table-column prop="name" label="套餐名称" />
<el-table-column prop="combo_type_name" label="套餐类型" /> <el-table-column prop="combo_type_name" label="套餐类型" />
<el-table-column prop="combo_crowd_name" label="适用人群" />
<el-table-column prop="price" label="价格" /> <el-table-column prop="price" label="价格" />
<el-table-column prop="sex" label="性别"> <el-table-column prop="sex" label="性别">
<template #default="scope"> <template #default="scope">
@ -54,6 +55,12 @@
<el-option v-for="(item,index) in ComboTypeList" :key="index" :label="item.name" :value="item.id" /> <el-option v-for="(item,index) in ComboTypeList" :key="index" :label="item.name" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="适应人群">
<el-select :filterable="true" clearable v-model="Info.crowd_id" placeholder="选择适应人群"
>
<el-option v-for="(item,index) in ComboCrowdList" :key="index" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="标签"> <el-form-item label="标签">
<el-input v-model="Info.tags" type="textarea" /> <el-input v-model="Info.tags" type="textarea" />
</el-form-item> </el-form-item>
@ -104,7 +111,7 @@
UpFileUrl, UpFileUrl,
ComboGetList, ComboGetList,
ComboGetDetail, ComboGetDetail,
ComboSave,ComboTypeGetList ComboSave,ComboTypeGetList,ComboCrowdGetList
} from '@/api/api.js' } from '@/api/api.js'
import { import {
Edit Edit
@ -165,6 +172,7 @@
loading.value = false loading.value = false
if (res.status) { if (res.status) {
dialogVisible.value = false dialogVisible.value = false
GetList()
} else { } else {
ElMessage.error(res.msg) ElMessage.error(res.msg)
} }
@ -174,6 +182,7 @@
dialogVisible.value = true dialogVisible.value = true
loading.value = true loading.value = true
GetComboType() GetComboType()
GetComboCrowd()
ComboGetDetail({ ComboGetDetail({
id: row.id id: row.id
}).then(res => { }).then(res => {
@ -245,6 +254,19 @@
} }
}) })
} }
//
let ComboCrowdList=ref([]);
const GetComboCrowd = () => {
loading.value = true
ComboCrowdGetList({}).then(res => {
loading.value = false
if (res.status) {
ComboCrowdList.value=res.data.list
} else {
ElMessage.error(res.msg)
}
})
}
onMounted(() => { onMounted(() => {
GetList() GetList()
}) })

@ -14,15 +14,19 @@
inactive-action-icon="Sunny" @change="toggleDark" /> inactive-action-icon="Sunny" @change="toggleDark" />
</div> </div>
</div> </div>
<div style="margin-top: -100px;">
<div style="font-size: 36px; margin-left: -100px;margin-bottom: 50px;">海南现代妇女儿童医院体检预约平台</div>
<el-form style="width: 400px;" ref="ruleFormRef" status-icon class="demo-ruleForm"> <el-form style="width: 400px;" ref="ruleFormRef" status-icon class="demo-ruleForm">
<el-form-item> <el-form-item>
<span style="font-size: 22px;">登录您的账户</span> <span style="font-size: 22px;">登录您的账户</span>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model.number="username" ref="usernameRef" @keyup.enter="focusNextTo()" :prefix-icon="User" placeholder="用户名" size="large" /> <el-input v-model.number="username" ref="usernameRef" @keyup.enter="focusNextTo()"
:prefix-icon="User" placeholder="用户名" size="large" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model="pwd" type="password" ref="passwordRef" @keyup.enter="login()" autocomplete="off" placeholder="密码" size="large"/> <el-input v-model="pwd" type="password" ref="passwordRef" @keyup.enter="login()"
autocomplete="off" placeholder="密码" size="large" :prefix-icon="Lock" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button style="width: 100%;" type="primary" @click="login(ruleFormRef)" <el-button style="width: 100%;" type="primary" @click="login(ruleFormRef)"
@ -30,6 +34,7 @@
</el-form-item> </el-form-item>
<div style="height: 160px;"></div> <div style="height: 160px;"></div>
</el-form> </el-form>
</div>
<div class="right_bottom"></div> <div class="right_bottom"></div>
</el-col> </el-col>
</el-row> </el-row>

@ -6,8 +6,8 @@
站点信息 站点信息
</el-col> </el-col>
</el-row> </el-row>
<el-row style="padding: 20px;margin:10px ;"> <el-row style="padding:auto 20px;margin:auto 10px ;">
<el-col :span="16"> <el-col :span="8">
<el-form-item label="Logo"> <el-form-item label="Logo">
<el-upload style="margin-left: 20px;" class="avatar-uploader" :action="upfileurl" <el-upload style="margin-left: 20px;" class="avatar-uploader" :action="upfileurl"
:headers="headerObj" :show-file-list="false" :on-success="upLoadSuccess"> :headers="headerObj" :show-file-list="false" :on-success="upLoadSuccess">
@ -17,16 +17,50 @@
</el-icon> </el-icon>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="站点名称"> <!-- <el-form-item label="站点名称">
<el-input size="large" v-model="configInfo.name" placeholder="名称" <el-input size="large" v-model="configInfo.name" placeholder="名称"
style=" margin: auto 20px;" /> style=" margin: auto 20px;" />
</el-form-item> </el-form-item> -->
</el-col> </el-col>
<el-col :span="8" style="display:flex;align-items:center;"><el-button type="primary" size="large" <el-col :span="8" style="display:flex;align-items:center;"><el-button type="primary" size="large"
@click="saveInfo"> </el-button></el-col> @click="saveInfo('站点图片')"> </el-button></el-col>
</el-row>
<el-row style="padding:auto 20px;margin: auto 10px ;">
<el-col :span="8">
<el-form-item label="站点名称">
<el-input size="large" v-model="configInfo." placeholder="名称"
style=" margin: auto 20px;" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="primary" size="large"
@click="saveInfo('站点名称')"> </el-button>
</el-col>
</el-row>
<el-row style="padding:auto 20px;margin: auto 10px ;">
<el-col :span="8">
<el-form-item label="客服电话">
<el-input size="large" v-model="configInfo." placeholder="客服电话"
style=" margin: auto 20px;" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="primary" size="large"
@click="saveInfo('客服电话')"> </el-button>
</el-col>
</el-row>
<el-row style="padding:auto 20px;margin: auto 10px ;">
<el-col :span="8">
<el-form-item label="积分抵扣比例">
<el-input size="large" v-model="configInfo." placeholder="积分抵扣比例"
style=" margin: auto 20px;" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-button type="primary" size="large"
@click="saveInfo('积分抵扣比例')"> </el-button>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
</div> </div>
</template> </template>
@ -54,7 +88,7 @@
// //
const upLoadSuccess = (res) => { const upLoadSuccess = (res) => {
logo.value = import.meta.env.VITE_APP_FILE + res.data logo.value = import.meta.env.VITE_APP_FILE + res.data
configInfo.value.logo = res.data configInfo.value.站点图片 = res.data
} }
// //
const GetConfig=()=>{ const GetConfig=()=>{
@ -62,23 +96,20 @@
GetConfigInfo().then(res => { GetConfigInfo().then(res => {
loading.value=false loading.value=false
if(res.status){ if(res.status){
configInfo.value.name=res.data.站点名称 configInfo.value=res.data
configInfo.value.logo=res.data.站点图片
logo.value=import.meta.env.VITE_APP_FILE+configInfo.value.logo logo.value=import.meta.env.VITE_APP_FILE+configInfo.value.站点图片
} }
}) })
} }
// //
let configInfo=ref({ let configInfo=ref({
name:'',
logo:''
}); });
const saveInfo = () => { const saveInfo = (name) => {
let data={[name]:configInfo.value[name]}
loading.value=true loading.value=true
SaveConfigInfo({ SaveConfigInfo({data:data}).then(res => {
'name': configInfo.value.name,
'logo': configInfo.value.logo
}).then(res => {
loading.value=false loading.value=false
if (res.status) { if (res.status) {
ElMessage({ ElMessage({
@ -86,7 +117,7 @@
type: 'success', type: 'success',
}) })
setTimeout(()=>{ setTimeout(()=>{
location.reload(); //location.reload();
},500) },500)
} else { } else {
ElMessage.error(res.msg) ElMessage.error(res.msg)

Loading…
Cancel
Save