Merge branch 'main' of https://git.cjy.net.cn/zhangyan/hainan_2024
commit
1d8483168f
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\API\Admin\YeWu;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AnalysisTypeController extends Controller
|
||||
{
|
||||
public function GetList(){
|
||||
$list = DB::table('analysis_types')->get();
|
||||
return \Yz::Return(true,"查询完成",['list'=>$list]);
|
||||
}
|
||||
public function GetDetail()
|
||||
{
|
||||
$id = request('id');
|
||||
$detail = DB::table('analysis_types')->where('id',$id)->first();
|
||||
if(!!$detail){
|
||||
$detail->range=json_decode($detail->range,true);
|
||||
if(isset($detail->range['l'])){
|
||||
$detail->range['l']=implode(',',$detail->range['l']);
|
||||
}
|
||||
if(isset($detail->range['r'])){
|
||||
$detail->range['r']=implode(',',$detail->range['r']);
|
||||
}
|
||||
}
|
||||
return \Yz::Return(true,"查询完成",['info'=>$detail]);
|
||||
}
|
||||
public function Save(){
|
||||
$info = request('Info');
|
||||
$range=[
|
||||
"s"=>isset($info['range']['s'])?$info['range']['s']:0,
|
||||
"r"=>isset($info['range']['r'])?explode(',', $info['range']['r']):[],
|
||||
"l"=>isset($info['range']['l'])?explode(',', $info['range']['l']):[],
|
||||
];
|
||||
$data=[
|
||||
'name'=>isset($info['name'])?$info['name']:'',
|
||||
'range'=>json_encode($range,JSON_UNESCAPED_UNICODE),
|
||||
'desc'=>isset($info['desc'])?$info['desc']:'',
|
||||
'color'=>isset($info['color'])?$info['color']:'#78A155',
|
||||
'mark'=>isset($info['mark'])?$info['mark']:'',
|
||||
'content'=>isset($info['content'])?$info['content']:'',
|
||||
'type'=>isset($info['type'])?$info['type']:0,
|
||||
'status'=>isset($info['status'])?$info['status']:0,
|
||||
];
|
||||
|
||||
if(isset($info['id']) and $info['id']>0){
|
||||
$u= DB::table('analysis_types')->where('id',$info['id'])->update($data);
|
||||
}else{
|
||||
$u= DB::table('analysis_types')->insert($data);
|
||||
}
|
||||
if($u){
|
||||
return \Yz::Return(true,"操作完成",[]);
|
||||
}else{
|
||||
return \Yz::echoError1("操作失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,203 @@
|
||||
<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="desc" label="说明" />
|
||||
<el-table-column prop="type" label="分类">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.type==1">临床生化</span>
|
||||
<span v-if="scope.row.type==2">临床免疫</span>
|
||||
<span v-if="scope.row.type==3">常规</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="status" label="状态">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.status==1" class="ml-2" type="success">正常</el-tag>
|
||||
<el-tag v-if="scope.row.status==0" class="ml-2" type="danger">关闭</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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="150" style="max-width: 600px">
|
||||
<el-form-item label="名称">
|
||||
<el-input v-model="Info.name" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="Info.range" label="折线图步长">
|
||||
<el-input v-model="Info.range.s" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="Info.range" label="取值范围">
|
||||
<el-input v-model="Info.range.r" />
|
||||
取值范围 正常值用 min,max 代替。数值用英文逗号隔开
|
||||
</el-form-item>
|
||||
<el-form-item v-if="Info.range" label="仪表盘标签">
|
||||
<el-input v-model="Info.range.l" />
|
||||
仪表盘标签用英文逗号隔开
|
||||
</el-form-item>
|
||||
<el-form-item label="颜色">
|
||||
<el-input v-model="Info.color" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目标识">
|
||||
<el-input v-model="Info.mark" />
|
||||
</el-form-item>
|
||||
<el-form-item label="临床意义">
|
||||
<el-input type="textarea" v-model="Info.content" />
|
||||
</el-form-item>
|
||||
<el-form-item label="说明">
|
||||
<el-input v-model="Info.desc" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分类">
|
||||
<el-radio-group v-model="Info.type">
|
||||
<el-radio :label="1">临床生化</el-radio>
|
||||
<el-radio :label="2">临床免疫</el-radio>
|
||||
<el-radio :label="3">常规</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态">
|
||||
<el-switch v-model="Info.status" size="large" active-text="启用" inactive-text="停用"
|
||||
:active-value="1" :inactive-value="0" />
|
||||
</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 {
|
||||
AnalysisTypeGetList,
|
||||
AnalysisTypeSave,
|
||||
AnalysisTypeGetDetail
|
||||
} 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
|
||||
AnalysisTypeGetList({
|
||||
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.range = {}
|
||||
Info.value.status = 1
|
||||
dialogVisible.value = true
|
||||
|
||||
}
|
||||
const Save = () => {
|
||||
loading.value = true
|
||||
AnalysisTypeSave({
|
||||
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
|
||||
GetDetailFunc(row.id)
|
||||
|
||||
}
|
||||
//获取详情
|
||||
const GetDetailFunc = (id) => {
|
||||
loading.value = true
|
||||
AnalysisTypeGetDetail({
|
||||
id: id
|
||||
}).then(res => {
|
||||
loading.value = false
|
||||
if (res.status) {
|
||||
Info.value = res.data.info
|
||||
} else {
|
||||
ElMessage.error(res.msg)
|
||||
}
|
||||
})
|
||||
}
|
||||
const Del = (id) => {
|
||||
loading.value = true
|
||||
ComboCrowdDel({
|
||||
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…
Reference in New Issue