| | |
| | | <el-form-item class="optionItem" label="短信模板:" prop="messageType"> |
| | | <div class="message-item"> |
| | | <div class="message-item__left"> |
| | | <el-select v-model="role.messageType" placeholder="请选择短信模板"> |
| | | <el-option v-for="item in colList" :key="item.id" :label="item.columnName" |
| | | <el-select v-model="role.messageType" placeholder="请选择短信模板" @change="setTemplateValue"> |
| | | <el-option v-for="item in colList" :key="item.id" :label="item.title" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | </el-form-item> |
| | | <!-- 消息内容 --> |
| | | <el-form-item class="optionItem" label="消息内容:" prop="body"> |
| | | <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor> |
| | | <MyEditor ref="edit"></MyEditor> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <div class="optionBtn"> |
| | | <el-button messageType="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">发布</el-button> |
| | | <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">发布</el-button> |
| | | <el-button class="btn cancel" @click.native.prevent="handleReset">重置</el-button> |
| | | </div> |
| | | </el-form-item> |
| | |
| | | <script> |
| | | import MyEditor from '@/components/edit' |
| | | import { sendMessage } from "@/api/operate/messageManagement"; |
| | | import SMS from "@/api/operate/SMS"; |
| | | |
| | | export default { |
| | | components: { MyEditor }, |
| | |
| | | callback(); |
| | | } |
| | | } |
| | | |
| | | return { |
| | | role: { |
| | | messageType: '', |
| | |
| | | targetTo: '', |
| | | targetFrom: null, |
| | | body: '', |
| | | channelCode: '03' |
| | | channelCode: '02' |
| | | }, |
| | | rules: { |
| | | messageType: [ |
| | |
| | | { required: true, trigger: "blur", message: '请输入短信标题' }, |
| | | ], |
| | | targetTo: [ |
| | | { required: true , trigger: "blur", message: '请选择接收人' }, |
| | | { required: true , trigger: "blur", message: '请选择接收对象' }, |
| | | ], |
| | | body: [ |
| | | { required: true, trigger: ['blur', 'change'], validator: validateMessageContent } |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.setColumnList(); |
| | | this.getSMSTemplateList(); |
| | | this.setDepartList(); |
| | | this.getLoginUserInfo(); |
| | | }, |
| | |
| | | done(); |
| | | }) |
| | | }, |
| | | // 设置栏目 |
| | | async setColumnList() { |
| | | this.colList = await this.getColumnList(); |
| | | |
| | | getSMSTemplateList() { |
| | | SMS.getSMSTemplateList({ current: 1, pageSize: 100 }) |
| | | .then(({ records }) => { |
| | | this.colList = records; |
| | | }) |
| | | .catch(err => this.$message.error(err)) |
| | | }, |
| | | // 获取栏目 |
| | | async getColumnList() { |
| | | let arr; |
| | | await this.$axios({ |
| | | method: 'get', |
| | | url: 'sccg/message_column/getAllColumn' |
| | | }) |
| | | .then(res => { |
| | | arr = res.data; |
| | | }) |
| | | return arr; |
| | | }, |
| | | |
| | | // 关闭弹窗 |
| | | closeDialog({ flag, index }) { |
| | | closeDialog({ flag }) { |
| | | this.dialogCreate = flag; |
| | | if (index === 1) { |
| | | // 重新设置栏目 |
| | | this.setColumnList(); |
| | | } |
| | | }, |
| | | // 获取部门树 |
| | | async getDepartList() { |
| | |
| | | }, |
| | | // 选中id |
| | | handleCheck(data, node) { |
| | | this.checkedList = [] |
| | | node.checkedNodes.forEach(item => { |
| | | if(!item.hasOwnProperty('departType')){ |
| | | this.checkedList.push(item.id) |
| | |
| | | }, |
| | | // 新建/保存消息(1:新建,0保存消息) |
| | | handleSubmit(mystatus) { |
| | | this.$refs.user.validate((valid) => { |
| | | this.role.body = this.$refs.edit.editor.txt.html(); |
| | | this.$refs.user.validate((valid) => { |
| | | if (valid) { |
| | | const params = Object.assign({}, this.role); |
| | | params.targetTo = this.checkedList.join(','); |
| | |
| | | sendMessage(params) |
| | | .then(() => { |
| | | this.$message({ type: 'success', message: '操作成功' }); |
| | | this.$emit('closeDialog'); |
| | | this.$emit('closeMyDialog'); |
| | | }) |
| | | .catch(err => this.$message({ type: 'error', message: err })); |
| | | } else { |
| | | return false; |
| | | this.$message.warning('请检查必填项'); |
| | | } |
| | | }) |
| | | }, |
| | | // 获得消息体 |
| | | getMyBody(obj) { |
| | | this.role.body = obj; |
| | | setTemplateValue(obj){ |
| | | var _this=this |
| | | SMS.getSMSTemplateById(obj).then((result) =>{ |
| | | _this.role.head=result.title |
| | | _this.role.body=result.body |
| | | _this.$refs.edit.editor.txt.html(result.body) |
| | | }) |
| | | }, |
| | | // 重置表单 |
| | | handleReset() { |
| | |
| | | url: 'sccg/admin/info?name=' + name, |
| | | }) |
| | | .then(res => { |
| | | this.role.targetFrom = res.data.userId |
| | | this.sendUser = res.data.username |
| | | this.role.targetFrom = res.data.userId; |
| | | this.sendUser = res.data.username; |
| | | }) |
| | | }, |
| | | // 消息预览 |
| | | handleView() { |
| | | this.$refs.user.validate((valid) => { |
| | | if (valid) { |
| | | this.dialogView = true; |
| | | this.info = { |
| | | messageType: this.getColText(role.messageType), |
| | | body: this.role.body, |
| | | head: this.role.head, |
| | | targetTo: this.tempNameArr, |
| | | targetFrom: this.sendUser |
| | | }; |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | // 获得栏目消息 |
| | | getColText(id){ |
| | | const {colList} = this |
| | | let str = '' |
| | | colList.forEach(item=>{ |
| | | item.id === id ? str = item.columnName : '' |
| | | }) |
| | | return str |
| | | } |
| | | }, |
| | | props: ['closeMyDialog'] |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .createUser { |
| | | border-radius: 1px; |
| | | background-color: #09152f; |
| | | background-color: white; |
| | | |
| | | main { |
| | | text-align: left; |
| | | background-color: #09152f; |
| | | background-color: white; |
| | | padding-bottom: 50px; |
| | | |
| | | .mainContent { |
| | | display: flex; |
| | | justify-content: center; |
| | | padding-top: 50px; |
| | | &:deep(.el-dialog__title) { |
| | | color: #4b9bb7; |
| | | } |
| | | &::v-deep .el-form-item__label { |
| | | color: #4b9bb7; |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | width: 400px; |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | //&:deep(.el-dialog__title) { |
| | | // color: #4b9bb7; |
| | | //} |
| | | //&::v-deep .el-form-item__label { |
| | | // color: #4b9bb7; |
| | | //} |
| | | // |
| | | //&::v-deep .el-input__inner { |
| | | // width: 400px; |
| | | // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | //} |
| | | |
| | | .message-item__left { |
| | | width: 400px; |
| | |
| | | width: 400px; |
| | | } |
| | | |
| | | :deep(.el-input) { |
| | | width: 400px; |
| | | } |
| | | //:deep(.el-input) { |
| | | // width: 400px; |
| | | //} |
| | | |
| | | .message-item { |
| | | display: flex; |
| | |
| | | margin-left: 20px; |
| | | } |
| | | |
| | | :deep(.el-input--suffix) { |
| | | width: 400px; |
| | | } |
| | | |
| | | &::v-deep .el-textarea__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | //:deep(.el-input--suffix) { |
| | | // width: 400px; |
| | | //} |
| | | // |
| | | //&::v-deep .el-textarea__inner { |
| | | // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | //} |
| | | |
| | | .el-form-item__content { |
| | | width: 400px; |
| | |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | </style> |