后台套餐类型管理

main
yanzai 1 year ago
parent 419a02fc72
commit fc8b59ff4d

@ -13,4 +13,31 @@ class ComboTypeController extends Controller
$list=DB::table('combo_type')->get();
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("操作失败");
}
}
}

@ -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/SaveCacheInfo', 'App\Http\Controllers\API\Admin\YeWu\HospitalController@SaveCacheInfo');
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/ComboCrowdSave', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@Save');//套餐适应人群保存
Route::post('admin/ComboCrowdDel', 'App\Http\Controllers\API\Admin\YeWu\ComboCrowdController@Del');//套餐适应人群删除

@ -211,6 +211,12 @@ export const SaveCacheInfo = (data = {}) => {
export const ComboTypeGetList = (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 = {}) => {

@ -211,6 +211,13 @@ const router = createRouter({
meta: {
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>
Loading…
Cancel
Save