人群类型修改

This commit is contained in:
shidongli 2025-01-07 17:12:22 +08:00
parent 227d3ecc91
commit 9c817fbc61
2 changed files with 228 additions and 48 deletions

View File

@ -42,3 +42,9 @@ export function delCrowdInfo(id) {
method: 'delete'
})
}
export function type(dictValue) {
return request({
url: '/system/dict/data/type/' + dictValue,
method: 'get'
})
}

View File

@ -1,18 +1,48 @@
<template>
<div class="app-container" ref="layout">
<div ref="topform" class="form">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="人群名称" prop="crowdName">
<el-input v-model="queryParams.crowdName" placeholder="请输入人群名称" clearable @keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.crowdName"
placeholder="请输入人群名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="人群类型" prop="crowdType">
<el-select v-model="queryParams.crowdType" placeholder="请选择人群类型" clearable>
<el-option v-for="dict in dict.type.crowd_type" :key="dict.value" :label="dict.label" :value="dict.value" />
<el-select
v-model="queryParams.crowdType"
placeholder="请选择人群类型"
clearable
>
<el-option
v-for="dict in dict.type.crowd_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否禁用" prop="whetherDisable">
<el-select v-model="queryParams.whetherDisable" clearable placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-select
v-model="queryParams.whetherDisable"
clearable
placeholder="请选择"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
<!-- <el-input
@ -23,24 +53,55 @@
/> -->
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div ref="mb8" class="mb8">
<el-row :gutter="10" class="">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['manage:crowdInfo:add']">新增</el-button>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['manage:crowdInfo:add']"
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['manage:crowdInfo:edit']">修改</el-button>
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['manage:crowdInfo:edit']"
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:crowdInfo:remove']">删除</el-button>
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['manage:crowdInfo:remove']"
>删除</el-button
>
</el-col>
<!-- <el-col :span="1.5">
<el-button
@ -53,16 +114,31 @@
>导出</el-button
>
</el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
</div>
<div ref="table">
<el-table v-loading="loading" :data="crowdInfoList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="crowdInfoList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="主键" align="center" prop="id" /> -->
<el-table-column label="人群名称" align="center" prop="crowdName" />
<el-table-column label="最小适合年龄" align="center" prop="minSuitableAge" />
<el-table-column label="最大适合年龄" align="center" prop="maxSuitableAge" />
<el-table-column
label="最小适合年龄"
align="center"
prop="minSuitableAge"
/>
<el-table-column
label="最大适合年龄"
align="center"
prop="maxSuitableAge"
/>
<el-table-column label="适合性别" align="center" prop="suitableGender">
<template slot-scope="scope">
{{ scope.row.suitableGender == "ALL" ? "全部" : "" }}
@ -81,7 +157,7 @@
</template>
</el-table-column>
<el-table-column label="特殊人群" align="center" prop="specialType">
<template slot-scope="scope">
<!-- <template slot-scope="scope">
{{ scope.row.specialType == "1" ? "65岁及以上老年人" : "" }}
{{ scope.row.specialType == "2" ? "60-64岁老年人" : "" }}
{{ scope.row.specialType == "3" ? "60-0-6岁儿童" : "" }}
@ -98,8 +174,7 @@
{{ scope.row.specialType == "42" ? "肿瘤病" : "" }}
{{ scope.row.specialType == "43" ? "贫困人口" : "" }}
{{ scope.row.specialType == "44" ? "计划生育特殊家庭" : "" }}
</template>
</template> -->
</el-table-column>
<el-table-column label="是否禁用" align="center" prop="whetherDisable">
<template slot-scope="scope">
@ -108,64 +183,145 @@
</template>
</el-table-column>
<el-table-column label="排序" align="center" prop="sort" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:crowdInfo:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:crowdInfo:remove']">删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['manage:crowdInfo:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['manage:crowdInfo:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
</div>
<!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" /> -->
<myPagination v-show="total > 0" :total="total" :pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum" @updateCPage="updateCPage"></myPagination>
<myPagination
v-show="total > 0"
:total="total"
:pageSize="queryParams.pageSize"
:indexFromWrap="queryParams.pageNum"
@updateCPage="updateCPage"
></myPagination>
<!-- 添加或修改人群信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="750px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px" :inline="true">
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="110px"
:inline="true"
>
<el-form-item label="人群名称" prop="crowdName">
<el-input v-model="form.crowdName" placeholder="请输入人群名称" />
</el-form-item>
<el-form-item label="最小适合年龄" prop="minSuitableAge">
<el-input oninput="value=value.replace(/[^\d.]/g,'')" v-model="form.minSuitableAge" placeholder="请输入最小适合年龄" />
<el-input
oninput="value=value.replace(/[^\d.]/g,'')"
v-model="form.minSuitableAge"
placeholder="请输入最小适合年龄"
/>
</el-form-item>
<el-form-item label="最大适合年龄" prop="maxSuitableAge">
<el-input oninput="value=value.replace(/[^\d.]/g,'')" v-model="form.maxSuitableAge" placeholder="请输入最大适合年龄" />
<el-input
oninput="value=value.replace(/[^\d.]/g,'')"
v-model="form.maxSuitableAge"
placeholder="请输入最大适合年龄"
/>
</el-form-item>
<el-form-item label="适合性别" prop="suitableGender">
<el-select style="width:206px" v-model="form.suitableGender" clearable placeholder="请选择">
<el-option v-for="item in optionssex" :key="item.value" :label="item.label" :value="item.value">
<el-select
style="width: 206px"
v-model="form.suitableGender"
clearable
placeholder="请选择"
>
<el-option
v-for="item in optionssex"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="人群类型" prop="crowdType">
<el-select v-model="form.crowdType" placeholder="请选择人群类型" style="width:206px">
<el-option v-for="dict in dict.type.crowd_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
<el-select
v-model="form.crowdType"
placeholder="请选择人群类型"
style="width: 206px"
@change="change"
>
<el-option
v-for="dict in dict.type.crowd_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="特殊人群" prop="specialType">
<el-select v-model="form.specialType" placeholder="请选择特殊人群" style="width:206px">
<el-option v-for="dict in dict.type.special_type" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
<el-select
v-model="form.specialType"
placeholder="请选择特殊人群"
style="width: 206px"
>
<el-option
v-for="dict in typedata"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否禁用" prop="whetherDisable">
<el-select style="width:206px" v-model="form.whetherDisable" clearable placeholder="请选择">
<el-option v-for="item in optionswhether" :key="item.value" :label="item.label" :value="item.value">
<el-select
style="width: 206px"
v-model="form.whetherDisable"
clearable
placeholder="请选择"
>
<el-option
v-for="item in optionswhether"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input-number v-model="form.sort" controls-position="right" :min="0" placeholder="请输入排序"
style="width: 206px" />
<el-input-number
v-model="form.sort"
controls-position="right"
:min="0"
placeholder="请输入排序"
style="width: 206px"
/>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" maxlength="100" />
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入备注"
maxlength="100"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -176,14 +332,16 @@
</template>
<script>
import { listCrowdInfo, getCrowdInfo, delCrowdInfo, addCrowdInfo, updateCrowdInfo } from "@/api/manage/crowdInfo";
import { type, listCrowdInfo, getCrowdInfo, delCrowdInfo, addCrowdInfo, updateCrowdInfo } from "@/api/manage/crowdInfo";
export default {
name: "CrowdInfo",
dicts: ['crowd_type', 'special_type'],
dicts: ['crowd_type'],
data() {
return {
maxTableHeight: undefined,
typedata: [],//
type:'',
//
loading: true,
//
@ -294,6 +452,20 @@ export default {
this.queryParams.pageSize = size
this.getList();
},
//
gettype(){
type(this.type).then(res => {
this.typedata = res.data
})
},
//
change(e) {
this.type = e.toLowerCase()
this.form.specialType=null
this.gettype()
},
//
cancel() {
this.open = false;
@ -348,6 +520,8 @@ export default {
const id = row.id || this.ids
getCrowdInfo(id).then(response => {
this.form = response.data;
this.type=response.data.crowdType.toLowerCase()
this.gettype()
if (response.data.whetherDisable == 0) {
this.form.whetherDisable = "否"
} else if (response.data.whetherDisable == 1) {
@ -428,7 +602,7 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .el-textarea__inner{
::v-deep .el-textarea__inner {
width: 533px !important;
height: 100px;
}