From e3e5fa7eebf63678f941727e7b3ef7f1e77e190f Mon Sep 17 00:00:00 2001 From: qsh <> Date: Mon, 26 Aug 2024 16:32:52 +0800 Subject: [PATCH] shangc --- src/views/Basic/Role/Comp/ReportDaily.vue | 129 +++++++++++++++++++++- src/views/Basic/Role/index.vue | 12 +- 2 files changed, 135 insertions(+), 6 deletions(-) diff --git a/src/views/Basic/Role/Comp/ReportDaily.vue b/src/views/Basic/Role/Comp/ReportDaily.vue index c6fde32..a58a93d 100644 --- a/src/views/Basic/Role/Comp/ReportDaily.vue +++ b/src/views/Basic/Role/Comp/ReportDaily.vue @@ -1,7 +1,132 @@ <template> - <div> 每日快报 </div> + <div class="pl-20px pr-20px"> + <el-form :model="form" ref="formRef" :rules="rules" label-width="auto" v-loading="formLoading"> + <el-form-item label="发送途径"> + <el-checkbox-group v-model="form.fasongtujing"> + <el-checkbox :label="1">系统通知</el-checkbox> + <el-checkbox :label="2">微信公众号</el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="发送时间"> + <el-time-picker + v-model="form.sendTime" + placeholder="任意时间点" + format="HH:mm:ss" + value-format="HH:mm:ss" + /> + </el-form-item> + <el-form-item label="发送内容"> + <el-tree + ref="treeRef" + :data="contentOptions" + empty-text="加载中,请稍候" + node-key="value" + show-checkbox + default-expand-all + :default-checked-keys="form.sendContent" + style="width: 100%" + /> + </el-form-item> + <el-form-item> + <el-button :disabled="formLoading" type="primary" @click="submitForm"> 保 存 </el-button> + </el-form-item> + </el-form> + </div> </template> -<script setup name="ReportDaily"></script> +<script setup name="ReportDaily"> +import { handleTree } from '@/utils/tree' + +const message = useMessage() // 消息弹窗 +const props = defineProps({ + roleId: { + type: Number + } +}) + +const formLoading = ref(false) +const form = ref({ + checkedMenuIds: [] +}) + +onMounted(() => { + init() +}) + +const formRef = ref() + +const rules = {} + +const contentOptions = ref([]) + +async function init() { + getOptions() + getReportInfo() +} + +const treeRef = ref() +function getOptions() { + const arr = [ + { + value: 1, + label: '销售快报', + children: [ + { value: 11, label: '今日跟进线索数', pId: 1 }, + { value: 12, label: '今日待跟进数', pId: 1 }, + { value: 13, label: '今日接受线索数', pId: 1 } + ] + }, + + { + value: 2, + label: '管理快报', + children: [ + { value: 21, label: '当日业绩(成交数,成交额)', pId: 2 }, + { value: 22, label: '当月业绩(成交数,成交额)', pId: 2 }, + { value: 23, label: '本月业绩完成情况(数值,比例)', pId: 2 } + ] + } + ] + + contentOptions.value = arr + handleTree(arr) +} + +async function getReportInfo() { + try { + formLoading.value = true + form.value = { + fasongtujing: [1, 2], + sendTime: '21:00:00', + sendContent: [21, 22, 23] + } + formLoading.value = false + } catch (error) { + console.log(error) + formLoading.value = false + } +} + +/** 提交表单 */ +const submitForm = async () => { + // 提交请求 + formLoading.value = true + try { + const data = { + roleId: props.roleId, + menuIds: [ + ...treeRef.value.getCheckedKeys(false), // 获得当前选中节点 + ...treeRef.value.getHalfCheckedKeys() // 获得半选中的父节点 + ] + } + // await PermissionApi.assignRoleMenu(data) + console.log(data) + + message.success('保存成功') + } finally { + formLoading.value = false + } +} +</script> <style lang="scss" scoped></style> diff --git a/src/views/Basic/Role/index.vue b/src/views/Basic/Role/index.vue index 2f894b1..ede7e35 100644 --- a/src/views/Basic/Role/index.vue +++ b/src/views/Basic/Role/index.vue @@ -75,9 +75,13 @@ @success="getList" /> </el-tab-pane> - <!-- <el-tab-pane label="每日快报" :name="4"> - <ReportDaily /> - </el-tab-pane> --> + <el-tab-pane label="每日快报" :name="4"> + <ReportDaily + v-if="roleOperateIndex == 4" + ref="reportDailyRef" + :roleId="list[libraryIndex].id" + /> + </el-tab-pane> </el-tabs> </el-card> <!-- 表单弹窗:添加/修改 --> @@ -89,7 +93,7 @@ import RoleForm from './RoleForm.vue' import RoleEmployee from './Comp/RoleEmployee.vue' import RoleAssignMenuForm from './RoleAssignMenuForm.vue' import RoleDataPermissionForm from './RoleDataPermissionForm.vue' -// import ReportDaily from './Comp/ReportDaily.vue' +import ReportDaily from './Comp/ReportDaily.vue' import * as RoleApi from '@/api/system/role' const message = useMessage() // 消息弹窗