From 7c20fd15b7fbc2bd5756b39d5ab655cc849ffcc3 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 16 七月 2025 22:39:23 +0800 Subject: [PATCH] 添加时间筛选 --- src/views/operate/sms/smsIndex/createSms/index.vue | 326 +++++++++++++++++++++++------------------------------- 1 files changed, 140 insertions(+), 186 deletions(-) diff --git a/src/views/operate/sms/smsIndex/createSms/index.vue b/src/views/operate/sms/smsIndex/createSms/index.vue index 7daf0f7..eb91c98 100644 --- a/src/views/operate/sms/smsIndex/createSms/index.vue +++ b/src/views/operate/sms/smsIndex/createSms/index.vue @@ -2,92 +2,112 @@ <div class="createUser"> <main> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" - label-position="right"> + <el-form + ref="user" + label-width="140px" + autoComplete="on" + :model="role" + :rules="rules" + label-position="right" + > <!-- 娑堟伅鏍忕洰 --> - <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType"> + <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" - :value="item.id"> + <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> </div> - <span class="message-add" @click='dialogCreate = true'> 娣诲姞鏍忕洰</span> </div> </el-form-item> <!-- 娑堟伅鏍囬 --> - <el-form-item class="optionItems" label="鐭俊鏍囬:" prop="head"> + <el-form-item + class="optionItems" + label="鐭俊鏍囬:" + prop="head" + > <div class="message-item__left"> - <el-input v-model="role.head" placeholder="璇烽�夋嫨鐭俊鏍囬"></el-input> + <el-input + v-model="role.head" + placeholder="璇烽�夋嫨鐭俊鏍囬" + ></el-input> </div> </el-form-item> <!-- 鎺ユ敹瀵硅薄 --> - <el-form-item class="optionItem" label="鎺ユ敹鎵嬫満鍙�:" prop="targetTo"> + <el-form-item + class="optionItem" + label="鎺ユ敹鎵嬫満鍙�:" + prop="targetTo" + > <div class="message-item__left"> - <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" > + <el-input v-model="role.targetTo"></el-input> + <!-- <el-select v-model="role.targetTo" placeholder="璇烽�夋嫨鎺ユ敹鎺ユ敹鎵嬫満鍙�" > <el-option :value="role.targetTo"> <el-tree ref="tree" :data="departList" :props="defaultProps" show-checkbox @check="handleCheck" default-expand-all node-key="id"> </el-tree> </el-option> - </el-select> + </el-select> --> </div> </el-form-item> <!-- 娑堟伅鍐呭 --> - <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> - <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor> + <el-form-item + class="optionItem" + label="娑堟伅鍐呭:" + prop="body" + > + <MyEditor ref="edit"></MyEditor> </el-form-item> <el-form-item> <div class="optionBtn"> - <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> + <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> </el-form> - <!-- 鏂板鏍忕洰 --> - <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="60%" - :before-close="handleConfirmClose" append-to-body> - <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd> - </el-dialog> - <!-- 棰勮娑堟伅 --> - <el-dialog title="娑堟伅棰勮" :visible.sync="dialogView" v-if="dialogView" width="60%" - :before-close="handleConfirmClose" append-to-body> - <MyColView :info="info" @closeDialog="closeDialog"></MyColView> - </el-dialog> </div> </main> </div> </template> <script> import MyEditor from '@/components/edit' +import { sendMessage } from "@/api/operate/messageManagement"; +import SMS from "@/api/operate/SMS"; + export default { components: { MyEditor }, data() { - const validateNickname = (rule, value, callback) => { + const validateMessageContent = (rule, value, callback) => { if (!value) { - callback(new Error("璇峰~鍐欐秷鎭爮鐩�")); + callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�')); } else { callback(); } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(); - } else { - callback(); - } - }; - const validateTruename = (rule, value, callback) => { - if (value.length !== 0) { - callback(); - } else { - callback(new Error('璇烽�夋嫨鎺ユ敹瀵硅薄')); - } - }; + } return { role: { messageType: '', @@ -95,41 +115,39 @@ targetTo: '', targetFrom: null, body: '', - channelCode: '01', + channelCode: '02' }, - createRoleRules: { + rules: { messageType: [ - { required: true, trigger: "blur", validator: validateNickname }, + { required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨鐭俊妯℃澘' }, ], head: [ - { required: false, trigger: "blur", validator: validatePass }, + { required: true, trigger: "blur", message: '璇疯緭鍏ョ煭淇℃爣棰�' }, ], targetTo: [ - { required: false, trigger: "blur", validator: validateTruename }, + { required: true, trigger: "blur", message: '璇烽�夋嫨鎺ユ敹瀵硅薄' }, ], + body: [ + { required: true, trigger: ['blur', 'change'], validator: validateMessageContent } + ] }, colList: [], departList: [], typeList: [], dialogCreate: false, dialogView: false, - defaultProps: { - children: 'children', - label: 'departName', - // disabled: function (data, node) { - // if (data.createTime) { - // return !data.leaf - // } - // } - }, + // defaultProps: { + // children: 'children', + // label: 'departName' + // }, checkedList: [], - tempNameArr:[], - info:{}, - sendUser:"" + tempNameArr: [], + info: {}, + sendUser: "" } }, created() { - this.setColumnList(); + this.getSMSTemplateList(); this.setDepartList(); this.getLoginUserInfo(); }, @@ -141,30 +159,18 @@ done(); }) }, - // 璁剧疆鏍忕洰 - async setColumnList() { - this.colList = await this.getColumnList(); - }, - // 鑾峰彇鏍忕洰 - async getColumnList() { - let arr; - await this.$axios({ - method: 'get', - url: 'sccg/message_column/getAllColumn' - }) - .then(res => { - console.log(res); - arr = res.data; + + getSMSTemplateList() { + SMS.getSMSTemplateList({ current: 1, pageSize: 100 }) + .then(({ records }) => { + this.colList = records; }) - return arr; + .catch(err => this.$message.error(err)) }, + // 鍏抽棴寮圭獥 - closeDialog({ flag, index }) { + closeDialog({ flag }) { this.dialogCreate = flag; - if (index === 1) { - // 閲嶆柊璁剧疆鏍忕洰 - this.setColumnList(); - } }, // 鑾峰彇閮ㄩ棬鏍� async getDepartList() { @@ -185,10 +191,8 @@ // 澶勭悊閮ㄩ棬鏍� async filterDepartList() { let arr = await this.getDepartList(); - const { setChildren } = this; - // console.log(setChildren); arr.forEach(item => { - setChildren(item); + this.setChildren(item); }) return arr; }, @@ -211,62 +215,45 @@ }, // 閫変腑id handleCheck(data, node) { - let arr = [],nameArr = [] - console.log(node.checkedNodes) + this.checkedList = [] node.checkedNodes.forEach(item => { - if(!item.hasOwnProperty('departType')){ - arr.push(item.id) - nameArr.push(item.departName) + if (!item.hasOwnProperty('departType')) { + this.checkedList.push(item.id) + this.tempNameArr.push(item.departName) } }) - this.checkedList = arr - this.tempNameArr = nameArr - console.log(this.tempNameArr) - this.role.targetTo = arr.length + '浜�' + this.role.targetTo = this.checkedList.length + '浜�'; }, // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) handleSubmit(mystatus) { + this.role.body = this.$refs.edit.editor.txt.html(); this.$refs.user.validate((valid) => { if (valid) { - const { role, checkedList } = this; - console.log(checkedList); - this.$axios({ - method: 'post', - url: 'sccg/message/sendMessage', - data: { - body: role.body, - channelCode: '03', - head: role.head, - messageType: role.messageType, - sendTime: new Date(), - targetTo: checkedList.join(','), - targetFrom: `${role.targetFrom}`, - status: mystatus, - } - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: mystatus === 1 ? '鍙戦�佹垚鍔�' : '淇濆瓨鎴愬姛', - }) - this.$emit('closeMyDialog', { flag: false, index: 1 }); - } + const params = Object.assign({}, this.role); + // params.targetTo = this.checkedList.join(','); + params.status = mystatus; + sendMessage(params) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.$emit('closeMyDialog'); }) + .catch(err => this.$message({ type: 'error', message: err })); } else { - return false; + this.$message.warning('璇锋鏌ュ繀濉」'); } }) }, - // 鑾峰緱娑堟伅浣� - getMyBody(obj) { - console.log(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() { this.$refs.edit.editor.txt.clear(); - // this.$refs.edit.wangEditor.txt.html('<p><br></p>') this.setDepartList(); this.$refs.user.resetFields(); }, @@ -278,71 +265,39 @@ 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) { - const { role,getColText,tempNameArr,sendUser } = this - this.dialogView = true; - let info = {} - // 鑾峰緱鏍忕洰娑堟伅 - info.channelCode = role.channelCode === '01'? '绔欏唴淇�': role.channelCode === '02' ? '閭欢':'鐭俊' - info.messageType = getColText(role.messageType) - info.body = role.body - info.head = role.head - info.targetTo = tempNameArr - info.targetFrom = sendUser - this.info = info - } else { - return false - } - }) - }, - // 鑾峰緱鏍忕洰娑堟伅 - getColText(id){ - console.log(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; - padding: 0 55px; - 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; @@ -358,9 +313,9 @@ width: 400px; } - :deep(.el-input) { - width: 400px; - } + //:deep(.el-input) { + // width: 400px; + //} .message-item { display: flex; @@ -375,14 +330,14 @@ 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; @@ -413,8 +368,7 @@ padding: 12px 50px; } } - } } } -</style> \ No newline at end of file +</style> -- Gitblit v1.8.0