From 3451f5695d6fb65eeac2f4eedd9bf8cdd16a6d79 Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期五, 01 十二月 2023 17:21:12 +0800 Subject: [PATCH] 评价类型、业务范围 --- src/views/safetyReview/baseSet/evaluateType/index.vue | 70 +++++++++-- src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue | 97 +++++++++++---- src/views/safetyReview/institution/components/viewInstitution.vue | 2 src/views/safetyReview/baseSet/business/components/businessDialog.vue | 76 +++++++++++- src/views/safetyReview/baseSet/business/index.vue | 71 +++++++++-- src/api/backManage/evaluate.js | 32 ++-- 6 files changed, 262 insertions(+), 86 deletions(-) diff --git a/src/api/backManage/evaluate.js b/src/api/backManage/evaluate.js index d3140ed..0ff7148 100644 --- a/src/api/backManage/evaluate.js +++ b/src/api/backManage/evaluate.js @@ -1,37 +1,37 @@ import request from '@/utils/request' -export function getEvaluateList() { +export function getDictList(type) { return request({ url: '/system/dictData/dictDataList', - method: 'get' + method: 'get', + params: type }) } -export function addEvaluate(data) { +export function addDict(data) { return request({ - url: '/system/dictType/addDictType', + url: '/system/dictData/addDictData', method: 'post', data: data }) } - -export function editEvaluate(params) { +export function getDictDetail(params) { return request({ - url: `/system/dictType/editDictType`, + url: '/system/dictData/getDictDataById', + method: 'get', + params: params + }) +} +export function editDict(params) { + return request({ + url: `/system/dictData/editDictData`, method: 'put', data: params }) } -export function getLawDetail(params) { +export function delDict(data) { return request({ - url: '/system/law/getLawById', - method: 'get', - params: params - }) -} -export function delEvaluate(data) { - return request({ - url: `/system/dictType/remove/` + data.id, + url: `/system/dictData/remove/` + data.id, method: 'delete' }) } diff --git a/src/views/safetyReview/baseSet/business/components/businessDialog.vue b/src/views/safetyReview/baseSet/business/components/businessDialog.vue index b4e9586..c225f04 100644 --- a/src/views/safetyReview/baseSet/business/components/businessDialog.vue +++ b/src/views/safetyReview/baseSet/business/components/businessDialog.vue @@ -7,8 +7,8 @@ :before-close="handleClose" > <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="110px" > - <el-form-item label="业务范围:" prop="business"> - <el-input v-model.trim="state.form.business"></el-input> + <el-form-item label="业务范围:" prop="label"> + <el-input v-model.trim="state.form.label"></el-input> </el-form-item> </el-form> <template #footer> @@ -24,24 +24,41 @@ import {reactive, ref, toRefs} from 'vue' import Editor from "@/components/Editor/index.vue"; import {ElMessage} from "element-plus"; +import {addNotice} from "@/api/backManage/notice"; +import {addDict, editDict, getDictDetail} from "@/api/backManage/evaluate"; const dialogVisible = ref(false); const title = ref(""); const busRef = ref(); +const length = ref() +const emit = defineEmits(["getList"]); const state = reactive({ form: { - business: '' + id: '', + label: '', + value: '', + dictType: "sys_business_scope", }, formRules:{ - business: [{ required: true, message: '请输入业务范围', trigger: 'blur' }], + label: [{ required: true, message: '请输入业务范围', trigger: 'blur' }], }, }) -const openDialog = (type, value) => { +const openDialog = async (type, value) => { + length.value = value.listLength title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; if(type === 'edit') { state.form = value; + const param = { + dictId: value.id + } + const res = await getDictDetail(param); + if(res.code === 200){ + state.form = res.data + }else{ + ElMessage.warning(res.message) + } } dialogVisible.value = true; } @@ -49,10 +66,46 @@ const onSubmit = async () => { const valid = await busRef.value.validate(); if(valid){ - busRef.value.clearValidate(); - reset(); - dialogVisible.value = false; - + if(title.value === '新增'){ + const param = { + dictType: "sys_business_scope", + label: state.form.label, + value: length.value.toString() + } + const res = await addDict(param) + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '新增成功' + }); + }else{ + ElMessage.warning(res.message) + } + emit("getList") + busRef.value.clearValidate(); + reset(); + dialogVisible.value = false; + }else if(title.value === '编辑'){ + const param = { + id: state.form.id, + dictType: state.form.dictType, + label: state.form.label, + value: state.form.value + } + const res = await editDict(param) + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '新增成功' + }); + }else{ + ElMessage.warning(res.message) + } + emit("getList") + busRef.value.clearValidate(); + reset(); + dialogVisible.value = false; + } } } @@ -64,7 +117,10 @@ } const reset = () => { state.form = { - business: "" + id: '', + label: '', + value: '', + dictType: "sys_business_scope", } } defineExpose({ diff --git a/src/views/safetyReview/baseSet/business/index.vue b/src/views/safetyReview/baseSet/business/index.vue index 8a8aecb..8d872fa 100644 --- a/src/views/safetyReview/baseSet/business/index.vue +++ b/src/views/safetyReview/baseSet/business/index.vue @@ -10,33 +10,40 @@ </div> <!-- 表格数据 --> <el-table v-loading="loading" :data="dataList" :border="true"> - <el-table-column label="业务范围" prop="business" align="center" /> + <el-table-column label="业务范围" prop="label" align="center" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > <template #default="scope"> - <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['system:role:edit']">编辑</el-button> - <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['system:role:remove']">删除</el-button> + <el-button link type="primary" @click="openDialog('edit',scope.row)" >编辑</el-button> + <el-button link type="danger" @click="handleDelete(scope.row)" >删除</el-button> </template> </el-table-column> </el-table> - <pagination - v-show="total > 0" - :total="total" - v-model:page="queryParams.pageNum" - v-model:limit="queryParams.pageSize" - @pagination="getList" - /> + <div class="pag-container"> + <el-pagination + v-model:current-page="data.queryParams.pageNum" + v-model:page-size="data.queryParams.pageSize" + :page-sizes="[10,15,20,25]" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> <business-dialog ref="busRef" @getList=getList></business-dialog> </div> </template> <script setup> -import {getCurrentInstance, reactive, ref, toRefs} from "vue"; +import {getCurrentInstance, onMounted, reactive, ref, toRefs} from "vue"; import businessDialog from "./components/businessDialog.vue" -import {ElMessageBox} from "element-plus"; +import {ElMessage, ElMessageBox} from "element-plus"; +import {delDict, getDictList} from "@/api/backManage/evaluate"; +import {delNotice} from "@/api/backManage/notice"; const { proxy } = getCurrentInstance(); const loading = ref(false); const busRef = ref(); +const dictType = ref("sys_business_scope") const data = reactive({ queryParams: { pageNum: 1, @@ -51,13 +58,30 @@ const { queryParams, total, dataList } = toRefs(data); -const getList = () => { +onMounted(() => { + getList(); +}); +const getList = async () => { loading.value = true; - console.log("获取数据") + const res = await getDictList({dictType: dictType.value}); + if(res.code === 200){ + dataList.value = res.data.list + total.value = res.data.total + }else{ + ElMessage.warning(res.message) + } loading.value = false; } - +const handleSizeChange = (val) => { + data.queryParams.pageSize = val + getList() +} +const handleCurrentChange = (val) => { + data.queryParams.pageNum = val + getList() +} const openDialog = (type, value) => { + value.listLength = dataList.value.length> 0 ?dataList.value.length:0; busRef.value.openDialog(type, value); } @@ -75,8 +99,23 @@ type: 'warning', }) .then( async() => { - + const res = await delDict(val); + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '删除成功' + }); + getList(); + }else{ + ElMessage.warning(res.message) + } }) } </script> +<style> +.pag-container{ +float: right; +margin-top: 10px; +} +</style> diff --git a/src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue b/src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue index 287b8ce..d4543a5 100644 --- a/src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue +++ b/src/views/safetyReview/baseSet/evaluateType/components/typeDialog.vue @@ -6,9 +6,9 @@ width="500px" :before-close="handleClose" > - <el-form :model="state.form" size="default" ref="typeRef" :rules="state.formRules" label-width="110px" > - <el-form-item label="评价类型:" prop="type"> - <el-input v-model.trim="state.form.type"></el-input> + <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="110px" > + <el-form-item label="评价类型:" prop="label"> + <el-input v-model.trim="state.form.label"></el-input> </el-form-item> </el-form> <template #footer> @@ -24,62 +24,105 @@ import {reactive, ref, toRefs} from 'vue' import Editor from "@/components/Editor/index.vue"; import {ElMessage} from "element-plus"; +import {addNotice} from "@/api/backManage/notice"; +import {addDict, editDict, getDictDetail} from "@/api/backManage/evaluate"; const dialogVisible = ref(false); const title = ref(""); -const typeRef = ref(); -const isReview = ref(false); +const busRef = ref(); +const length = ref() +const emit = defineEmits(["getList"]); const state = reactive({ form: { - type: '' + id: '', + label: '', + value: '', + dictType: "sys_assess_type", }, formRules:{ - type: [{ required: true, message: '请输入评价类型', trigger: 'blur' }], + label: [{ required: true, message: '请输入评价类型', trigger: 'blur' }], }, }) -const openDialog = (type, value) => { - isReview.value = false; +const openDialog = async (type, value) => { + length.value = value.listLength title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; if(type === 'edit') { state.form = value; + const param = { + dictId: value.id + } + const res = await getDictDetail(param); + if(res.code === 200){ + state.form = res.data + }else{ + ElMessage.warning(res.message) + } } dialogVisible.value = true; } const onSubmit = async () => { - const valid = await typeRef.value.validate(); + const valid = await busRef.value.validate(); if(valid){ - typeRef.value.clearValidate(); - reset(); - dialogVisible.value = false; - + if(title.value === '新增'){ + const param = { + dictType: "sys_assess_type", + label: state.form.label, + value: length.value.toString() + } + const res = await addDict(param) + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '新增成功' + }); + }else{ + ElMessage.warning(res.message) + } + emit("getList") + busRef.value.clearValidate(); + reset(); + dialogVisible.value = false; + }else if(title.value === '编辑'){ + const param = { + id: state.form.id, + dictType: state.form.dictType, + label: state.form.label, + value: state.form.value + } + const res = await editDict(param) + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '新增成功' + }); + }else{ + ElMessage.warning(res.message) + } + emit("getList") + busRef.value.clearValidate(); + reset(); + dialogVisible.value = false; + } } } const handleClose = () => { - typeRef.value.clearValidate(); + busRef.value.clearValidate(); reset(); dialogVisible.value = false; } const reset = () => { state.form = { - type: "" + id: '', + label: '', + value: '', + dictType: "sys_assess_type", } } -const handleRemove = (file, fileList) => { - console.log(file, fileList); -} -const handlePreview = (uploadFile) => { - console.log(uploadFile) -} -const beforeRemove = (file, fileList) => { - return this.$confirm(`确定移除 ${ file.name }?`); -} - - defineExpose({ openDialog }); diff --git a/src/views/safetyReview/baseSet/evaluateType/index.vue b/src/views/safetyReview/baseSet/evaluateType/index.vue index f9779d1..eded628 100644 --- a/src/views/safetyReview/baseSet/evaluateType/index.vue +++ b/src/views/safetyReview/baseSet/evaluateType/index.vue @@ -10,33 +10,39 @@ </div> <!-- 表格数据 --> <el-table v-loading="loading" :data="dataList" :border="true"> - <el-table-column label="评价类型" prop="type" align="center" /> + <el-table-column label="评价类型" prop="label" align="center" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > <template #default="scope"> - <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['system:role:edit']">编辑</el-button> - <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['system:role:remove']">删除</el-button> + <el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button> + <el-button link type="danger" @click="handleDelete(scope.row)" >删除</el-button> </template> </el-table-column> </el-table> - <pagination - v-show="total > 0" - :total="total" - v-model:page="queryParams.pageNum" - v-model:limit="queryParams.pageSize" - @pagination="getList" - /> + <div class="pag-container"> + <el-pagination + v-model:current-page="data.queryParams.pageNum" + v-model:page-size="data.queryParams.pageSize" + :page-sizes="[10,15,20,25]" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> <type-dialog ref="typeRef" @getList=getList></type-dialog> </div> </template> <script setup> -import {getCurrentInstance, reactive, ref, toRefs} from "vue"; +import {getCurrentInstance, onMounted, reactive, ref, toRefs} from "vue"; import typeDialog from "./components/typeDialog.vue" -import {ElMessageBox} from "element-plus"; +import {ElMessage, ElMessageBox} from "element-plus"; +import {delDict, getDictList,} from "@/api/backManage/evaluate"; const { proxy } = getCurrentInstance(); const loading = ref(false); const typeRef = ref(); +const dictType = ref("sys_assess_type") const data = reactive({ queryParams: { pageNum: 1, @@ -50,15 +56,32 @@ }); const { queryParams, total, dataList } = toRefs(data); - -const getList = () => { +onMounted(() => { + getList(); +}); +const getList = async () => { loading.value = true; - console.log("获取数据") + const res = await getDictList({dictType: dictType.value}); + if(res.code === 200){ + dataList.value = res.data.list + total.value = res.data.total + }else{ + ElMessage.warning(res.message) + } loading.value = false; } const openDialog = (type, value) => { + value.listLength = dataList.value.length> 0 ?dataList.value.length:0; typeRef.value.openDialog(type, value); +} +const handleSizeChange = (val) => { + data.queryParams.pageSize = val + getList() +} +const handleCurrentChange = (val) => { + data.queryParams.pageNum = val + getList() } /** 重置新增的表单以及其他数据 */ @@ -75,8 +98,23 @@ type: 'warning', }) .then( async() => { - + const res = await delDict(val); + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '删除成功' + }); + getList(); + }else{ + ElMessage.warning(res.message) + } }) } </script> +<style lang="scss"> +.pag-container{ + float: right; + margin-top: 10px; +} +</style> diff --git a/src/views/safetyReview/institution/components/viewInstitution.vue b/src/views/safetyReview/institution/components/viewInstitution.vue index fb7c32e..003c3fe 100644 --- a/src/views/safetyReview/institution/components/viewInstitution.vue +++ b/src/views/safetyReview/institution/components/viewInstitution.vue @@ -212,7 +212,7 @@ </el-row> <el-row :gutter="30"> <el-col :span="12"> - <el-form-item prop="username" label="登录用户名(字母+数字,长度在5-16之间)"> + <el-form-item prop="username" > <el-input disabled v-model="registerForm.username" -- Gitblit v1.9.2