群控系统服务端开发模式-应用开发-前端邮箱短信通道开发

news/2024/12/2 17:16:06/

一、添加视图

        在根目录下src文件夹下views文件夹下param文件夹下emailsms文件夹下,新建index.vue,代码如下

<template><el-tabs type="border-card"><el-tab-pane v-if="$store.getters.butts.includes('ParamEmailsmsIndexDetails')" label="邮箱短信通道"><el-form ref="resEmailsmsForm" :rules="resEmailsmsRules" :model="resEmailsmsModel" label-width="140px"class="demo-ruleForm"><el-form-item label="短信通道" prop="sms_id"><el-radio-group v-model="resEmailsmsModel.sms_id"><el-radio v-for="sms_channel in smss" :key="sms_channel.id" :label="sms_channel.id">{{sms_channel.title}}</el-radio></el-radio-group></el-form-item><el-form-item label="邮箱通道" prop="email_ids"><div style="width:5%;float:left;"><el-checkbox v-model="checkEmailAll" :indeterminate="isEmailIndeterminate"@change="handleCheckAllEmailChange">全选</el-checkbox></div><div style="width:95%;float:left;"><el-checkbox-group v-model="resEmailsmsModel.email_id" @change="handleCheckedEmailChange"><el-checkbox v-for="mail_channel in mails" :key="mail_channel.id" :label="mail_channel.id">{{ mail_channel.title }}</el-checkbox></el-checkbox-group></div></el-form-item><el-form-item v-if="$store.getters.butts.includes('ParamEmailsmsIndexSave')"><el-button type="primary" @click="saveEmailsmsForm()">保存</el-button></el-form-item></el-form></el-tab-pane></el-tabs>
</template>
<script>import { err, succ, warn } from '@/utils/message'import { getEmailsmsInfo, saveEmailsmsInfo } from '@/api/param/system'import { getAll as getMailAll } from '@/api/param/mail'import { getAll as getSmsAll } from '@/api/param/sms'export default {name: 'ParamEmailsmsIndex',data() {const validateEmailIds = (rule, value, callback) => {if (this.resEmailsmsModel.email_id.length == 0) {callback(new Error('请至少选择一个邮件通道!'))} else {callback()}}return {checkEmailAll: false,isEmailIndeterminate: true,mails: [],smss: [],resEmailsmsModel: {id: 1,sms_id: 0,email_id: []},resEmailsmsRules: {sms_id: [{required: true, message: '请选择短信通道', trigger: 'change'}],email_ids: [{required: true, trigger: 'change', validator: validateEmailIds}]}}},// 初始化执行的created() {this.getMail()//获取邮箱类型this.getSms()//获取短信类型this.getEmailsmsInfo()// 获取参数上传数据},methods: {async getMail(){const res = await getMailAll();this.mails = res.data;},async getSms(){const res = await getSmsAll();this.smss = res.data;},async getEmailsmsInfo() {await getEmailsmsInfo({id: 1}).then(res => {var row = res.datathis.resEmailsmsModel.sms_id = row.sms_id * 1const checkedEmailsms = row.email_id.split(',')// 拆分成数组const checkedEmailsmsCou = checkedEmailsms.lengththis.checkEmailAll = checkedEmailsmsCou === this.mails.lengththis.isEmailIndeterminate = checkedEmailsmsCou > 0 && checkedEmailsmsCou !== this.mails.lengthfor (let j = 0; j < checkedEmailsms.length; j++) {this.resEmailsmsModel.email_id.push(checkedEmailsms[j] * 1)}this.$nextTick(() => {this.$refs['resEmailsmsForm'].clearValidate()})})},saveEmailsmsForm() {this.$refs.resEmailsmsForm.validate((valid) => {if (valid) {saveEmailsmsInfo(this.resEmailsmsModel).then(res => {succ(res.message)this.getEmailsmsInfo()})}})},handleCheckAllEmailChange(val) {if(val == false){this.resEmailsmsModel.email_id = [];this.checkEmailAll = false}else{for (let i = 0; i < this.mails.length; i++) {this.resEmailsmsModel.email_id.push(this.mails[i].id)}this.checkEmailAll = true}this.isEmailIndeterminate = this.resEmailsmsModel.email_id.length > 0 && this.resEmailsmsModel.email_id.length < this.mails.length},handleCheckedEmailChange(value) {const checkedCount = value.lengththis.checkEmailAll = checkedCount === this.mails.lengththis.isEmailIndeterminate = checkedCount > 0 && checkedCount < this.mails.length}}}
</script>

二、添加ajax请求

        在根目录下src文件夹下api文件夹下param文件夹下system.js,代码如下

// 获取邮箱短信配置信息
export function getEmailsmsInfo(data) {return request({url: '/param/emailsms/get_info',method: 'post',data})
}
// 保存邮箱短信配置信息
export function saveEmailsmsInfo(data) {return request({url: '/param/emailsms/save_info',method: 'post',data})
}

http://www.ppmy.cn/news/1551805.html

相关文章

Linux常用操作之vim快捷操作

文章目录 前言一、vim三种工作模式二、命令行模式操作三、编辑模式操作四、末行模式操作五、vim快速注释多行操作六、vim快速取消多行注释操作 前言 在使用Linux操作系统时,经常会使用vi/vim编辑文件,会涉及到文件内容的删除、注释、增加等&#xff0c;如果改动的地方较多,那么…

工厂方法模式与抽象工厂模式

首先是一个工厂方法模式&#xff1a; #include <iostream> #include <string> using namespace std;// 抽象产品类 class Car { public:virtual void Run() 0; // 纯虚函数&#xff0c;定义产品接口virtual ~Car() {} // 虚析构函数&#xff0c;保证多态删除 };/…

java——Spring中的Bean线程安全问题

Spring中的Bean对象是否线程安全取决于多个因素&#xff0c;包括Bean的作用域&#xff08;scope&#xff09;、Bean的实现方式以及如何使用这些Bean。以下是一些关键点来帮助理解Spring中Bean的线程安全性&#xff1a; 1. Bean的作用域 Singleton (默认作用域)&#xff1a;在…

Ardupilot开源无人机之Geek SDK讨论

Ardupilot开源无人机之Geek SDK讨论 1. 源由2. 假设3. 思考3.1 结构构型3.2 有限资源3.3 软硬件构架 4.Ardupilot构架 - 2024kaga Update5. 讨论5.1 话题1&#xff1a;工作模式5.2 话题2&#xff1a;关键要点5.3 话题3&#xff1a;产品设计 6. Geek SDK - OpenFire6.1 开源技术…

云原生周刊:K8s 严重漏洞

云原生周刊&#xff1a;K8s 严重漏洞 开源项目推荐 KitOps KitOps 是一款开源的 DevOps 工具&#xff0c;专为 AI/ML 项目的全生命周期管理而设计&#xff0c;通过将模型、数据集、代码和配置打包并版本化为符合 OCI&#xff08;开放容器标准&#xff09;的工件&#xff0c;…

在WSL 2 (Ubuntu 22.04)安装Docker Ce 启动错误解决

查看WSL版本 在 Windows 命令提示符&#xff08;CMD&#xff09;或 PowerShell 中&#xff0c;你可以使用以下命令来查看已安装的 WSL 发行版及其版本信息&#xff1a; wsl -l -v(base) PS C:\Users\Lenovo> wsl -l -vNAME STATE VERSION * Ubuntu-2…

利用Nginx在服务器上部署你的第一个静态页面

文章目录 序言Nginx常用功能1. 反向代理2.负载均衡轮询加权轮询IP_Hash Nginx配置文件结构安装并部署你的静态网页1. 安装(懒人直接看3)2.查看配置文件3.编写或放入自己的静态页面文件 序言 首先我们先来认识一下什么是Nginx源码 官网 Nginx (engine x) 是一个高性能的HTTP和…

【笔记】置身事内

文章目录 制度与政府行为财税改革土地财政城投公司与土地金融 宏观现象及影响纵向不平衡与横向不平衡债务问题地方政府债务房价与居民债务 低消费与产能过剩 我国地方政府这些年在推动经济发展的过程中&#xff1a; 重土地、轻人&#xff0c;优点是可以快速推进城市化和基础设施…