From 0dc7b51e881f5d46bd7be4d665922611f01b4757 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期二, 18 六月 2024 17:25:57 +0800 Subject: [PATCH] 企业管理 --- src/api/onlineEducation/company.js | 48 +++ src/api/onlineEducation/user.js | 39 ++ src/views/onlineEducation/systemManage/company/index.vue | 117 +++++++ src/views/onlineEducation/systemManage/user/index.vue | 115 +++++++ src/views/onlineEducation/systemManage/company/components/companyDialog.vue | 228 +++++++++++++++ src/views/onlineEducation/systemManage/user/components/userDialog.vue | 314 ++++++++++++++++++++ 6 files changed, 847 insertions(+), 14 deletions(-) diff --git a/src/api/onlineEducation/company.js b/src/api/onlineEducation/company.js new file mode 100644 index 0000000..e29c7b6 --- /dev/null +++ b/src/api/onlineEducation/company.js @@ -0,0 +1,48 @@ +import request from '@/utils/request' + +export function getCompany() { + return request({ + url: '/system/company/list', + method: 'get' + }) +} + +export function addCompany(data) { + return request({ + url: '/system/company', + method: 'post', + data: data + }) +} + +export function editCompany(params) { + return request({ + url: `/system/company`, + method: 'put', + data: params + }) +} + +export function delCompany(data) { + return request({ + url: `system/company/` + data, + method: 'delete' + }) +} + +export function checkName(data) { + return request({ + url: '/system/company/checkNameUnique', + method: 'post', + data: data + }) +} + + +export function distributeCompany(params) { + return request({ + url: `system/company/assignPeriod`, + method: 'post', + data: params + }) +} diff --git a/src/api/onlineEducation/user.js b/src/api/onlineEducation/user.js new file mode 100644 index 0000000..231619f --- /dev/null +++ b/src/api/onlineEducation/user.js @@ -0,0 +1,39 @@ +import request from '@/utils/request' + +export function getUser() { + return request({ + url: '/system/user/list', + method: 'get' + }) +} + +export function getUserById(params) { + return request({ + url: '/system/user/' +params , + method: 'get', + params: params + }) +} + +export function addUser(data) { + return request({ + url: '/system/user', + method: 'post', + data: data + }) +} + +export function editCompany(params) { + return request({ + url: `/system/company`, + method: 'put', + data: params + }) +} + +export function delCompany(data) { + return request({ + url: `system/company/` + data, + method: 'delete' + }) +} diff --git a/src/views/onlineEducation/systemManage/company/components/companyDialog.vue b/src/views/onlineEducation/systemManage/company/components/companyDialog.vue new file mode 100644 index 0000000..cd50548 --- /dev/null +++ b/src/views/onlineEducation/systemManage/company/components/companyDialog.vue @@ -0,0 +1,228 @@ +<template> + <div class="notice"> + <el-dialog + v-model="dialogVisible" + :title="title" + width="500px" + :before-close="handleClose" + > + <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" > + <el-form-item label="企业信用代码:" prop="creditCode" v-if="title!=='分配课时'"> + <el-input v-model.trim="state.form.creditCode"></el-input> + </el-form-item> + <el-form-item label="企业名称:" prop="name" v-if="title!=='分配课时'"> + <el-input v-model.trim="state.form.name" ></el-input> + </el-form-item> + <el-form-item label="负责人:" prop="major" v-if="title!=='分配课时'"> + <el-input v-model.trim="state.form.major"></el-input> + </el-form-item> + <el-form-item label="联系电话:" prop="phone" v-if="title!=='分配课时'"> + <el-input v-model.trim="state.form.phone" ></el-input> + </el-form-item> + <el-form-item label="当前剩余课时(分):" prop="remainPeriod" v-if="title!=='分配课时'"> + <el-input + v-model.trim="state.form.remainPeriod" + @input="state.form.remainPeriod= state.form.remainPeriod.replace(/[^0-9]/g,'')"> + </el-input> + </el-form-item> + <el-form-item label="累计已用课时(分):" prop="spendPeriod" v-if="title!=='分配课时'"> + <el-input + v-model.trim="state.form.spendPeriod" + @input="state.form.spendPeriod= state.form.spendPeriod.replace(/[^0-9]/g,'')"> + </el-input> + </el-form-item> + <el-form-item label="总课时(分):" prop="totalPeriod"> + <el-input + v-model.trim="state.form.totalPeriod" + @input="state.form.totalPeriod = state.form.totalPeriod.replace(/[^0-9]/g,'')"> + </el-input> + </el-form-item> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="handleClose" size="default">取 消</el-button> + <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button> + </span> + </template> + </el-dialog> + </div> +</template> +<script setup> +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"; +import {addCompany, checkName, distributeCompany, editCompany} from "@/api/onlineEducation/company"; +import {verifyPhone} from "@/utils/validate"; + +const dialogVisible = ref(false); +const title = ref(""); +const busRef = ref(); +const length = ref() +const emit = defineEmits(["getList"]); +const startUsername = ref(''); +const startPhone = ref(''); + +const validateName = (rule, value, callback)=>{ + if(value === ''){ + callback(new Error('请输入企业名称')) + }else if(title.value === '编辑' && value === startUsername.value){ + callback() + }else{ + let param = {} + if(title.value === '新增') { + param = { + name:value + } + }else if(title.value === '编辑'){ + param = { + name:value, + id: state.form.id + } + } + checkName(param).then((res)=>{ + if(res.data == false){ + callback(new Error('企业名称已被占用,请更换其他名称')) + }else{ + callback() + } + }) + } +} +const validatePhone = (rule, value, callback)=>{ + if(value === ''){ + callback(new Error('请输入手机号')) + }else if(title.value === '编辑' && value == startPhone.value){ + callback() + } else{ + if(!verifyPhone(value)){ + callback(new Error('手机号格式有误')) + }else { + callback() + } + } +} +const state = reactive({ + form: { + id: '', + creditCode: '', + name: '', + major: '', + phone: '', + remainPeriod: '', + spendPeriod: '', + totalPeriod: '' + }, + formRules:{ + creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }], + major:[{ required: true, message: '请输入负责人', trigger: 'blur' }], + remainPeriod:[{ required: true, message: '请输入剩余课时', trigger: 'blur' }], + spendPeriod:[{ required: true, message: '请输入已用课时', trigger: 'blur' }], + totalPeriod:[{ required: true, message: '请输入总课时', trigger: 'blur' }], + name: [{ required: true, trigger: "blur", validator: validateName }], + phone:[{ required: true, trigger: "blur", validator: validatePhone }], + }, +}) + + +const openDialog = async (type, value) => { + length.value = value.listLength + title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '分配课时' ; + if(type === 'edit' || type === 'distribute') { + state.form = value; + startUsername.value = value.username + startPhone.value = value.phone + } + dialogVisible.value = true; +} + +const onSubmit = async () => { + const valid = await busRef.value.validate(); + if(valid){ + if(title.value === '新增'){ + const {id, ...data} = JSON.parse(JSON.stringify(state.form)) + const res = await addCompany(data) + 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 {...data} = JSON.parse(JSON.stringify(state.form)) + const res = await editCompany(data) + 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 {creditCode,name,major,phone,remainPeriod,spendPeriod,...data} = JSON.parse(JSON.stringify(state.form)) + const res = await distributeCompany(data) + if(res.code === 200){ + ElMessage({ + type: 'success', + message: '成功' + }); + }else{ + ElMessage.warning(res.message) + } + emit("getList") + busRef.value.clearValidate(); + reset(); + dialogVisible.value = false; + } + } +} + +const handleClose = () => { + busRef.value.clearValidate(); + reset(); + dialogVisible.value = false; + emit("getList") + +} +const reset = () => { + state.form = { + id: '', + creditCode: '', + name: '', + major: '', + phone: '', + remainPeriod: '', + spendPeriod: '', + totalPeriod: '' + } +} +defineExpose({ + openDialog +}); + +</script> + +<style scoped lang="scss"> +.notice{ + :deep(.el-form .el-form-item__label) { + font-size: 15px; + } + .file { + display: flex; + flex-direction: column; + align-items: flex-start; + } +} +</style> diff --git a/src/views/onlineEducation/systemManage/company/index.vue b/src/views/onlineEducation/systemManage/company/index.vue index 58055a0..c21e81c 100644 --- a/src/views/onlineEducation/systemManage/company/index.vue +++ b/src/views/onlineEducation/systemManage/company/index.vue @@ -1,12 +1,115 @@ <template> -<div>企业管理</div> + <div class="app-container"> + <div style="margin-bottom: 10px"> + <el-button + type="primary" + plain + icon="Plus" + @click="openDialog('add',{})" + >新增</el-button> + </div> + <!-- 表格数据 --> + <el-table v-loading="loading" :data="dataList" :border="true"> + <el-table-column label="序号" type="index" align="center" width="80" /> + <el-table-column label="企业信用代码" prop="creditCode" align="center" /> + <el-table-column label="企业名称" prop="name" align="center" /> + <el-table-column label="负责人" prop="major" align="center" /> + <el-table-column label="联系电话" prop="phone" align="center"/> + <el-table-column label="当前剩余课时(分)" prop="remainPeriod" align="center" width="150"/> + <el-table-column label="累计已用课时(分)" prop="spendPeriod" align="center" width="150"/> + <el-table-column label="总课时(分)" prop="totalPeriod" align="center"/> + <el-table-column label="课时变动详情" align="center" class-name="small-padding fixed-width" > + <template #default="scope"> + <el-button link type="primary">查看详情</el-button> + </template> + </el-table-column> + <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > + <template #default="scope"> + <el-button link type="primary" @click="openDialog('distribute',scope.row)">分配课时</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" + /> + + <company-dialog ref="dialogRef" @getList=getList></company-dialog> + </div> </template> + <script setup> +import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue"; +import {ElMessage, ElMessageBox} from "element-plus"; +import {delCompany, getCompany} from "@/api/onlineEducation/company"; +import companyDialog from "./components/companyDialog.vue"; + +const { proxy } = getCurrentInstance(); +const loading = ref(false); +const dialogRef = ref(); +const data = reactive({ + queryParams: { + pageNum: 1, + pageSize: 10, + }, + total: 0, + dataList: [] +}); + +const { queryParams, total, dataList } = toRefs(data); + +onMounted(()=>{ + getList() +}) + +onUnmounted(()=>{ + +}) + +const getList = async () => { + loading.value = true + const res = await getCompany(data.queryParams) + if(res.code == 200){ + data.dataList = res.data.list + data.total = res.data.total + }else{ + ElMessage.warning(res.message) + } + loading.value = false +} + +const openDialog = (type, value) => { + dialogRef.value.openDialog(type, value); +} + +/** 重置新增的表单以及其他数据 */ +function reset() { + proxy.resetForm("roleRef"); +} +const handleDelete = (val) => { + ElMessageBox.confirm( + '确定删除此条数据?', + '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then( async() => { + const res = await delCompany(val.id) + if(res.code == 200){ + ElMessage.success('数据删除成功') + await getList() + }else{ + ElMessage.warning(res.message) + } + }) +} </script> - - - -<style scoped lang="scss"> - -</style> diff --git a/src/views/onlineEducation/systemManage/user/components/userDialog.vue b/src/views/onlineEducation/systemManage/user/components/userDialog.vue new file mode 100644 index 0000000..2c8a5a8 --- /dev/null +++ b/src/views/onlineEducation/systemManage/user/components/userDialog.vue @@ -0,0 +1,314 @@ +<template> + <div class="notice"> + <el-dialog + v-model="dialogVisible" + :title="state.title" + width="700px" + :before-close="handleClose" + > + <el-form :model="state.form" size="default" ref="superRef" :rules="state.formRules" label-width="150px" > + <el-form-item label="用户名:" prop="username" v-if="state.title !== '修改密码'"> + <el-input v-model.trim="state.form.username" :disabled="state.title =='编辑' || state.title =='查看'" placeholder="请输入用户名" ></el-input> + </el-form-item> + <el-form-item label="名称:" prop="name" v-if="state.title !== '修改密码'"> + <el-input v-model.trim="state.form.name" :disabled="state.title =='编辑' || state.title =='查看'" placeholder="请输入公司、部门或者车间岗位名"></el-input> + </el-form-item> + <el-form-item label="密码:" prop="password" v-if="state.title == '新增' || state.title == '修改密码'"> + <el-input v-model.trim="state.form.password" type="password" show-password placeholder="请输入密码"></el-input> + </el-form-item> + <el-form-item label="重复密码:" prop="confirmPassword" v-if="state.title == '新增' || state.title == '修改密码'"> + <el-input v-model.trim="state.form.confirmPassword" type="password" show-password placeholder="请输入确认密码"></el-input> + </el-form-item> + <el-form-item label="手机号:" prop="phone" v-if="state.title !== '修改密码'" > + <el-input v-model.trim="state.form.phone" :maxlength="11" :disabled="disabled" placeholder="请输入手机号"></el-input> + </el-form-item> + <el-form-item label="用户类型:" v-if="state.title !== '修改密码'"> + <el-radio-group v-model="state.form.userType" :disabled="disabled"> + <el-radio :label="0">管理员</el-radio> + <el-radio :label="1">企业级</el-radio> + <el-radio :label="2">部门级</el-radio> + <el-radio :label="3">车间(岗位)级</el-radio> + <el-radio :label="4">其他</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item label="选择所属父级账号:" prop="companyId" v-if="state.title !== '修改密码'"> + <el-select + v-model="state.form.companyName" + @change="selectValue" + style="width: 45%" + v-loadMore="loadMore" + class="m-2" + placeholder="请选择所属企业" + popper-class="more_select_dropdown" + > + <el-option + v-for="item in state.companyList" + :key="item.id" + :label="item.name" + :value="item.name" + /> + </el-select> + <el-select + v-if="state.form.userType === 2 || state.form.userType === 3 " + v-model="state.form.userName" + @change="selectValueUser" + style="width: 45%;margin-left: 10px" + class="m-2" + placeholder="请选择所属上级账号" + popper-class="more_select_dropdown" + > + <el-option + v-for="item in state.userList" + :key="item.id" + :label="item.name" + :value="item.name" + /> + </el-select> + </el-form-item> + </el-form> + <template #footer v-if="state.title !='查看'"> + <span class="dialog-footer"> + <el-button @click="handleClose" size="default">取 消</el-button> + <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button> + </span> + </template> + </el-dialog> + </div> +</template> +<script setup> +import {reactive, ref, toRefs, defineEmits, nextTick} from 'vue' +import { View } from "@element-plus/icons-vue"; +import {ElMessage} from "element-plus"; +import {verifyPhone, verifyPwd, verifyUsername} from "../../../../../utils/validate"; +import { checkUserName, checkPhone } from "@/api/login" +import {getUserById} from "@/api/onlineEducation/user" +import {Base64} from "js-base64" +import {resetUserPwd} from "../../../../../api/sysUsers"; +import {getInstitutionDetail} from "@/api/backManage/insitution"; +import {getCompany} from "@/api/onlineEducation/company"; +import {get} from "@vueuse/core"; +import {getUser} from "@/api/system/user"; + +const emit = defineEmits(["getList"]); +const dialogVisible = ref(false) +const superRef = ref(null) + +const equalToPassword = (rule, value, callback) => { + if (state.form.password !== value) { + callback(new Error("两次输入的密码不一致")); + } else { + callback(); + } +}; + +const validateUserPhone = (rule, value, callback)=>{ + if(value === ''){ + callback(new Error('请输入手机号')) + }else{ + if(!verifyPhone(value)){ + callback(new Error('手机号格式有误')) + }else{ + callback() + } + } +} + +let validatePwd = (rule, value, callback)=>{ + if(value === ''){ + callback(new Error('请输入密码')) + }else{ + if(!verifyPwd(value)){ + callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间')) + }else{ + callback() + } + } +} + +const state = reactive({ + title: '', + form: { + id: null, + name: '', + phone: '', + password: '', + confirmPassword: '', + username: '', + userType: 0, + companyId: null, + parentId: null + }, + formRules:{ + name: [{ required: true, message: '请输入公司、部门或者车间岗位名称', trigger: 'blur' }], + username: [{ required: true, message: '请输入用户名', trigger: 'blur' }], + password: [{ required: true, validator: validatePwd, trigger: 'blur' }], + confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }], + phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }], + }, + companyList: [], + userList: [], + pageNum: 1, + pageSize: 10 + +}) + +const disabled = ref(false); +const openDialog = async (type, value) => { + await getCompanyList('open') + await getUserList() + state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ; + if(type === 'edit' || type === 'view') { + if( type === 'view'){ + disabled.value = true; + } + const res = await getUserById(value.id); + if(res.code === 200){ + state.form = res.data + } + } + if(type == 'pwd'){ + state.form.id = value.id + } + dialogVisible.value = true +} + +const finshed = ref(false) +const getCompanyList = async (type)=>{ + if (type === 'open' && state.pageNum !== 1) { + } else { + const queryParams = { + pageNum: state.pageNum, + pageSize: state.pageSize, + } + const res = await getCompany(queryParams) + if (res.code == 200) { + if (res.data.pageNum === state.pageNum) { + finshed.value = false; + if (state.pageNum == 1) { + state.companyList = res.data.list + } else { + state.companyList = state.companyList.concat(res.data.list) + } + } else { + finshed.value = true; + } + + } else { + ElMessage.warning(res.message) + } + console.log("state.companyList",state.companyList) + } +} +const getUserList = async () => { + const queryParams = { + userType: state.form.userType + } + const res = await getUser(queryParams) + if (res.code == 200) { + debugger + } else { + ElMessage.warning(res.message) + } +} + +const onSubmit = async () => { + const valid = await superRef.value.validate(); + if(valid){ + if(state.title == '新增'){ + const {confirmPassword,id,...data} = state.form + data.password = Base64.encode(data.password) + const res = await addMonitor(data) + if(res.code == 200){ + ElMessage.success(res.message) + emit('getList') + state.form.userType = 0 + superRef.value.clearValidate(); + superRef.value.resetFields(); + dialogVisible.value = false; + }else{ + ElMessage.warning(res.message) + } + }else if(state.title == '编辑'){ + const {confirmPassword,...data} = state.form + data.password = Base64.encode(data.password) + const res = await editMonitor(data) + if(res.code == 200){ + ElMessage.success(res.message) + emit('getList') + state.form.userType = 0 + superRef.value.clearValidate(); + superRef.value.resetFields(); + dialogVisible.value = false; + }else{ + ElMessage.warning(res.message) + } + }else{ + const {id,password} = state.form + const data = {id,password} + data.password = Base64.encode(data.password) + const res = await resetUserPwd(data) + if(res.code == 200){ + ElMessage.success(res.message) + emit('getList') + superRef.value.clearValidate(); + superRef.value.resetFields(); + dialogVisible.value = false; + }else{ + ElMessage.warning(res.message) + } + } + } +} + +const handleClose = () => { + state.form.userType = 0 + superRef.value.clearValidate(); + superRef.value.resetFields() + dialogVisible.value = false; +} +//触底函数 +const loadMore = () => { + console.log(' 触底了'); + // 防抖处理 + setTimeout(() => { + if (finshed.value) return //值为true,则代表没有数据了 + state.pageNum += 1 + getCompanyList('') + }, 500) +} +const selectValue = (val) => { + state.companyList.forEach(item => { + if(item.name === val){ + state.form.companyId = item.id + } + }) +} +const selectValueUser = (val) => { + state.userList.forEach(item => { + if(item.name === val){ + state.form.parentId = item.id + } + }) +} + + + + +defineExpose({ + openDialog +}); + +</script> + +<style scoped lang="scss"> +.notice{ + :deep(.el-form .el-form-item__label) { + font-size: 15px; + } + .file { + display: flex; + flex-direction: column; + align-items: flex-start; + } +} +</style> diff --git a/src/views/onlineEducation/systemManage/user/index.vue b/src/views/onlineEducation/systemManage/user/index.vue index 75d34c2..4a0f330 100644 --- a/src/views/onlineEducation/systemManage/user/index.vue +++ b/src/views/onlineEducation/systemManage/user/index.vue @@ -1,12 +1,113 @@ <template> -<div>用户管理</div> + <div class="app-container"> + <div style="margin-bottom: 10px"> + <el-button + type="primary" + plain + icon="Plus" + @click="openDialog('add',{})" + >新增</el-button> + </div> + <!-- 表格数据 --> + <el-table v-loading="loading" :data="dataList" :border="true"> + <el-table-column label="序号" type="index" align="center" width="80" /> + <el-table-column label="用户名" prop="username" align="center" /> + <el-table-column label="名称" prop="name" align="center" /> + <el-table-column label="手机号" prop="phone" align="center"/> + <el-table-column label="用户类型" prop="userTypeName" align="center" width="150" /> + <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)">编辑</el-button> + <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button> + <el-button link type="primary" @click="openDialog('pwd',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" + /> + + <user-dialog ref="dialogRef" @getList=getList></user-dialog> + </div> </template> + <script setup> +import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue"; +import {ElMessage, ElMessageBox} from "element-plus"; +import {delCompany, getCompany} from "@/api/onlineEducation/company"; +import userDialog from './components/userDialog.vue' +import {getUser} from "@/api/onlineEducation/user"; + +const { proxy } = getCurrentInstance(); +const loading = ref(false); +const dialogRef = ref(); +const data = reactive({ + queryParams: { + pageNum: 1, + pageSize: 10, + }, + total: 0, + dataList: [] +}); + +const { queryParams, total, dataList } = toRefs(data); + +onMounted(()=>{ + getList() +}) + +onUnmounted(()=>{ + +}) + +const getList = async () => { + loading.value = true + const res = await getUser(data.queryParams) + if(res.code == 200){ + data.dataList = res.data.list.map(item => { + return { + ...item, + userTypeName: item.userType === 0 ? '管理员' : item.userType === 1 ? '企业级' : item.userType === 2 ? '部门级' : item.userType === 3 ? '车间级' :'其他' + } + }) + data.total = res.data.total + }else{ + ElMessage.warning(res.message) + } + loading.value = false +} + +const openDialog = (type, value) => { + dialogRef.value.openDialog(type, value); +} + +/** 重置新增的表单以及其他数据 */ +function reset() { + proxy.resetForm("roleRef"); +} +const handleDelete = (val) => { + ElMessageBox.confirm( + '确定删除此条数据?', + '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then( async() => { + const res = await delCompany(val.id) + if(res.code == 200){ + ElMessage.success('数据删除成功') + await getList() + }else{ + ElMessage.warning(res.message) + } + }) +} </script> - - - -<style scoped lang="scss"> - -</style> -- Gitblit v1.9.2