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