From 0dd7cf81c9d5ea63360e3f35df67bcb1baadc03e Mon Sep 17 00:00:00 2001 From: luobisheng <727299681@qq.com> Date: 星期五, 11 十一月 2022 14:19:28 +0800 Subject: [PATCH] 短信模板管理 --- src/views/operate/sms/smsIndex/index.vue | 107 ++----- src/views/operate/sms/smsIndex/createSms/index.vue | 141 +++------- src/components/edit/index.vue | 8 src/views/operate/sms/smsTemplate/index.vue | 164 +++--------- src/views/operate/message/myIndex/update/index.vue | 2 src/views/operate/sms/smsTemplate/createTemplate/index.vue | 312 +++-------------------- 6 files changed, 170 insertions(+), 564 deletions(-) diff --git a/src/components/edit/index.vue b/src/components/edit/index.vue index ec89cb5..731175c 100644 --- a/src/components/edit/index.vue +++ b/src/components/edit/index.vue @@ -19,12 +19,12 @@ '#4b9bb7', '#09152f' ] - - this.editor.config.onchange =(html)=>{ + + this.editor.config.onchange = (html)=>{ // 绗簩姝ワ紝鐩戞帶鍙樺寲锛屽悓姝ユ洿鏂板埌 textarea - this.$emit('getMyBody',html); + this.$emit('getMyBody', html); } - this.editor.create(); + this.editor.create(); }, beforeDestroy() { this.editor.destroy(); diff --git a/src/views/operate/message/myIndex/update/index.vue b/src/views/operate/message/myIndex/update/index.vue index 7aafa5c..6d16c02 100644 --- a/src/views/operate/message/myIndex/update/index.vue +++ b/src/views/operate/message/myIndex/update/index.vue @@ -80,7 +80,7 @@ import { sendMessage, updateMessage } from "@/api/operate/messageManagement"; export default { - components: { MyEditor, MyColumnAdd,MyColView }, + components: { MyEditor, MyColumnAdd, MyColView }, props: ['type', 'myDataRow'], data() { return { diff --git a/src/views/operate/sms/smsIndex/createSms/index.vue b/src/views/operate/sms/smsIndex/createSms/index.vue index 7daf0f7..1c5fcce 100644 --- a/src/views/operate/sms/smsIndex/createSms/index.vue +++ b/src/views/operate/sms/smsIndex/createSms/index.vue @@ -2,7 +2,7 @@ <div class="createUser"> <main> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="rules" label-position="right"> <!-- 娑堟伅鏍忕洰 --> <el-form-item class="optionItem" label="鐭俊妯℃澘:" prop="messageType"> @@ -14,7 +14,6 @@ </el-option> </el-select> </div> - <span class="message-add" @click='dialogCreate = true'> 娣诲姞鏍忕洰</span> </div> </el-form-item> <!-- 娑堟伅鏍囬 --> @@ -42,52 +41,30 @@ <el-form-item> <div class="optionBtn"> - <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷 - </el-button> + <el-button messageType="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"; + export default { components: { MyEditor }, data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - 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('璇烽�夋嫨鎺ユ敹瀵硅薄')); - } - }; + const validateMessageContent = (rule, value, callback) => { + if (!value) { + callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�')); + } else { + callback(); + } + } + return { role: { messageType: '', @@ -95,18 +72,21 @@ targetTo: '', targetFrom: null, body: '', - channelCode: '01', + channelCode: '03' }, - 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: [], @@ -115,16 +95,11 @@ dialogView: false, defaultProps: { children: 'children', - label: 'departName', - // disabled: function (data, node) { - // if (data.createTime) { - // return !data.leaf - // } - // } + label: 'departName' }, checkedList: [], tempNameArr:[], - info:{}, + info: {}, sendUser:"" } }, @@ -153,7 +128,6 @@ url: 'sccg/message_column/getAllColumn' }) .then(res => { - console.log(res); arr = res.data; }) return arr; @@ -185,10 +159,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,48 +183,28 @@ }, // 閫変腑id handleCheck(data, node) { - let arr = [],nameArr = [] - console.log(node.checkedNodes) node.checkedNodes.forEach(item => { if(!item.hasOwnProperty('departType')){ - arr.push(item.id) - nameArr.push(item.departName) + 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.$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.targetFrom = this.sendUser; + params.status = mystatus; + sendMessage(params) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.$emit('closeDialog'); + }) + .catch(err => this.$message({ type: 'error', message: err })); } else { return false; } @@ -260,13 +212,11 @@ }, // 鑾峰緱娑堟伅浣� getMyBody(obj) { - console.log(obj); this.role.body = obj; }, // 閲嶇疆琛ㄥ崟 handleReset() { this.$refs.edit.editor.txt.clear(); - // this.$refs.edit.wangEditor.txt.html('<p><br></p>') this.setDepartList(); this.$refs.user.resetFields(); }, @@ -286,17 +236,14 @@ 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 + this.info = { + messageType: this.getColText(role.messageType), + body: this.role.body, + head: this.role.head, + targetTo: this.tempNameArr, + targetFrom: this.sendUser + }; } else { return false } @@ -304,7 +251,6 @@ }, // 鑾峰緱鏍忕洰娑堟伅 getColText(id){ - console.log(id) const {colList} = this let str = '' colList.forEach(item=>{ @@ -323,7 +269,6 @@ main { text-align: left; - padding: 0 55px; background-color: #09152f; padding-bottom: 50px; diff --git a/src/views/operate/sms/smsIndex/index.vue b/src/views/operate/sms/smsIndex/index.vue index bf4d641..5b9e6ed 100644 --- a/src/views/operate/sms/smsIndex/index.vue +++ b/src/views/operate/sms/smsIndex/index.vue @@ -27,7 +27,7 @@ <div class="mainContent"> <div class="main-nav"> <span>鏁版嵁鍒楄〃</span> - <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">娣诲姞</el-button> + <el-button type="primary" icon="el-icon-plus" @click="isShowDialog = true">娣诲姞</el-button> </div> <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" @@ -64,9 +64,9 @@ </el-table-column> </el-table> <!-- 鏂板缓娑堟伅 --> - <el-dialog title="鏂板缓娑堟伅" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%" + <el-dialog title="鏂板缓娑堟伅" :visible.sync="isShowDialog" width="80%" :before-close="handleConfirmClose"> - <MyCreate @closeMyDialog="closeDialog"></MyCreate> + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> </el-dialog> <div class="tools"> <div class="funs"> @@ -86,8 +86,7 @@ </div> <div class="pagination"> <el-pagination background :current-page="currentPage" layout="prev, pager, next" - :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" - > + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> </el-pagination> </div> </div> @@ -98,7 +97,7 @@ <script> import helper from '@/utils/mydate' import MyCreate from './createSms' -import SMS from "@/api/operate/SMS"; +import { getMessageList, deleteMessage } from "@/api/operate/messageManagement"; export default { components: { @@ -109,7 +108,7 @@ tableData: [], context: "", dialogEdit:false, - dialogCreate: false, + isShowDialog: false, dialogView: false, totalNum: null, pageSize: 10, @@ -171,7 +170,8 @@ id:'03', columnName:'鐭俊', } - ] + ], + dialogType: '' } }, created() { @@ -186,42 +186,21 @@ handleReset(){ }, - // 鏌ョ湅 - handleView(data){ - this.info = data; - this.dialogView = true; - }, - // 缂栬緫 - handleEdit(data){ - this.info = data; - this.dialogEdit = true; - }, // 鍒犻櫎淇℃伅 - handleDelete(idarr) { + handleDelete(ids) { this.$confirm('纭鍒犻櫎?') - .then(_ => { - this.$axios({ - method: 'post', - url: 'sccg/message/delete?ids=' + idarr, - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: '鍒犻櫎鎴愬姛', - }) - this.setTableData(); - } else { - this.$message({ - type: 'error', - message: res.message - }) - } - }) + .then(() => { + deleteMessage(ids) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.getTableData(); + }) + .catch(err => this.$message({ type: 'error', message: err })); }) }, + getTableData() { - SMS.getSMSTemplateList() + getMessageList() .then(({ records, total }) => { this.tableData = records; this.totalNum = total; @@ -232,7 +211,6 @@ }, // 鎵归噺涓嬫媺妗嗘搷浣� async selectChange(list) { - console.log(this.tempList); if (this.tempList.length !== 0) { this.preMyIdx = list; if (list === 3) { @@ -259,20 +237,12 @@ method: 'post', url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag, }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', - }) - this.getUserList(); - } else { - this.$message({ - type: 'error', - message: res.message - }) - } - console.log(res); + .then(() => { + this.getTableData(); + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + }) + .catch(err => { + this.$message({ type: 'error', message: err }); }) }) .catch(err => { console.log(err) }) @@ -283,11 +253,7 @@ list.forEach(item => { this.tempList.push(item.id); }) - if (list.length === this.tableData.length) { - this.all = true; - } else { - this.all = false - } + this.all = list.length === this.tableData.length; }, // 淇敼鏃堕棿鏍煎紡 changeTime({ updateTime }) { @@ -305,39 +271,28 @@ }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { + if ((rowIndex + 1) % 2 === 0) { return 'warning-row'; } else { return 'success-row'; } - return ''; }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; this.setTableData(); }, - // 鍏抽棴寮圭獥 - handleClose(done) { - done(); - }, // 纭鍏抽棴寮圭獥 handleConfirmClose(done) { this.$confirm('纭鍏抽棴?') - .then(_ => { + .then(()=> { done(); - }) - .catch(err => { - console.log(err); }) }, // 鑷畾涔夊叧闂脊绐� - closeDialog({ flag, index }) { - this.dialogCreate = flag; - this.dialogView = flag; - if (index === 1) { - this.setTableData(); - } + closeDialog() { + this.isShowDialog = false; + this.getTableData(); } } } @@ -350,7 +305,6 @@ header { background-color: #09152f; - border: 1pox solid #fff; .header-nav { line-height: 40px; @@ -408,7 +362,6 @@ background-color: #09152f; margin-top: 20px; padding-bottom: 50px; - border: 1pox solid #fff; .el-link { color: #4b9bb7; diff --git a/src/views/operate/sms/smsTemplate/createTemplate/index.vue b/src/views/operate/sms/smsTemplate/createTemplate/index.vue index 5720e60..db35460 100644 --- a/src/views/operate/sms/smsTemplate/createTemplate/index.vue +++ b/src/views/operate/sms/smsTemplate/createTemplate/index.vue @@ -5,10 +5,10 @@ <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" label-position="right"> <!-- 娑堟伅鏍忕洰 --> - <el-form-item class="optionItem" label="妯℃澘绫诲瀷:" prop="messageType"> + <el-form-item class="optionItem" label="妯℃澘绫诲瀷:" prop="type"> <div class="message-item"> <div class="message-item__left"> - <el-select v-model="role.messageType" placeholder="璇烽�夋嫨"> + <el-select v-model="role.type" placeholder="璇烽�夋嫨"> <el-option v-for="item in colList" :key="item.id" :label="item.columnName" :value="item.id"> </el-option> @@ -17,315 +17,106 @@ </div> </el-form-item> <!-- 娑堟伅鏍囬 --> - <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="title" :disabled="disabled"> <div class="message-item__left"> - <el-input v-model="role.head" placeholder="璇烽�夋嫨娑堟伅鏍囬"></el-input> + <el-input v-model="role.title" placeholder="璇烽�夋嫨娑堟伅鏍囬"></el-input> </div> </el-form-item> - <!-- 鎺ユ敹瀵硅薄 --> - <!-- <el-form-item class="optionItem" label="鎺ユ敹瀵硅薄:" prop="targetTo"> - <div class="message-item__left"> - <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> - </div> - </el-form-item> --> <!-- 娑堟伅鍐呭 --> - <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> - <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor> - <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> --> + <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body" :disabled="disabled"> + <MyEditor ref="edit" @getMyBody="getMyBody" ></MyEditor> </el-form-item> - <!-- 鎻愰啋鏂瑰紡 --> - <!-- <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode"> - <el-radio-group v-model="role.channelCode"> - <el-radio label="01">绔欏唴淇�</el-radio> - <el-radio label="02">閭欢</el-radio> - <el-radio label="03">鐭俊</el-radio> - </el-radio-group> - <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> - </el-form-item> --> <el-form-item> <div class="optionBtn"> <el-button type="primary" @click.native.prevent="handleSubmit(0)" class="btn save">淇濆瓨 </el-button> - <!-- <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷 - </el-button> - <el-button type="primary" @click.native.prevent="handleView" 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 MyEditor from '@/components/edit'; +import SMS from "@/api/operate/SMS"; +import { deepClone } from "@/utils/helper"; + export default { - components: { MyEditor, }, + components: { MyEditor }, data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - 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('璇烽�夋嫨鎺ユ敹瀵硅薄')); - } - }; + const validateMessageContent = (rule, value, callback) => { + if (!value) { + callback(new Error('璇疯緭鍏ョ煭淇″唴瀹�')) + } else { + this.$refs.user.clearValidate('body'); + } + } return { role: { - messageType: '', - head: '', - targetTo: '', - targetFrom: null, + type: '', + title: '', body: '', - channelCode: '01', }, createRoleRules: { - messageType: [ - { required: true, trigger: "blur", validator: validateNickname }, + type: [ + { required: true, trigger: "blur", message: '璇峰~鍐欐秷鎭爮鐩�' }, ], - head: [ - { required: false, trigger: "blur", validator: validatePass }, + title: [ + { required: true, trigger: "blur", message: '璇峰~鍐欐秷鎭爣棰�' }, ], - targetTo: [ - { required: false, trigger: "blur", validator: validateTruename }, - ], + 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 - // } - // } - }, - checkedList: [], - tempNameArr:[], - info:{}, - sendUser:"" + colList: [{ id: "1", columnName: "楠岃瘉鐮佹ā鏉�"}, {id: "2",columnName: "娲诲姩妯℃澘"}], + disabled: this.dialogType === 'view' } }, created() { - this.setColumnList(); - this.setDepartList(); - this.getLoginUserInfo(); + if (this.tableRowData) { + this.role = deepClone(this.tableRowData); + } }, methods: { - // 鍏抽棴寮圭獥 - handleConfirmClose(done) { - this.$confirm('纭鍏抽棴?') - .then(_ => { - done(); - }) - }, - // 璁剧疆鏍忕洰 - async setColumnList() { - this.colList = [{"id":"1","columnName":"楠岃瘉鐮佹ā鏉�"},{"id":"2","columnName":"娲诲姩妯℃澘"}]; - }, - // 鑾峰彇鏍忕洰 - async getColumnList() { - let arr; - await this.$axios({ - method: 'get', - url: 'sccg/message_column/getAllColumn' - }) - .then(res => { - console.log(res); - arr = res.data; - }) - return arr; - }, - // 鍏抽棴寮圭獥 - closeDialog({ flag, index }) { - this.dialogCreate = flag; - if (index === 1) { - // 閲嶆柊璁剧疆鏍忕洰 - this.setColumnList(); - } - }, - // 鑾峰彇閮ㄩ棬鏍� - async getDepartList() { - let arr - await this.$axios({ - method: 'get', - url: 'sccg/depart/tree' - }) - .then(res => { - arr = res.data - }) - return arr; - }, - // 璁剧疆閮ㄩ棬鏍� - async setDepartList() { - this.departList = await this.filterDepartList(); - }, - // 澶勭悊閮ㄩ棬鏍� - async filterDepartList() { - let arr = await this.getDepartList(); - const { setChildren } = this; - // console.log(setChildren); - arr.forEach(item => { - setChildren(item); - }) - return arr; - }, - // 閫掑綊children - setChildren(obj) { - if (obj.children !== null) { - if (obj.children.length !== 0) { - obj.children.forEach(item => { - return this.setChildren(item); - }) - } - } else { - if (obj.userInfoDTOS.length !== 0) { - obj.children = []; - obj.userInfoDTOS.forEach(item => { - obj.children.push({ id: item.userId, departName: item.username }) - }) - } - } - }, - // 閫変腑id - handleCheck(data, node) { - let arr = [],nameArr = [] - console.log(node.checkedNodes) - node.checkedNodes.forEach(item => { - if(!item.hasOwnProperty('departType')){ - arr.push(item.id) - nameArr.push(item.departName) - } - }) - this.checkedList = arr - this.tempNameArr = nameArr - console.log(this.tempNameArr) - this.role.targetTo = arr.length + '浜�' - }, // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) - handleSubmit(mystatus) { + handleSubmit() { this.$refs.user.validate((valid) => { if (valid) { - const { role, checkedList } = this; - console.log(checkedList); - this.$axios({ - method: 'post', - url: 'sccg/message_sms_template/addSmsTemplate', - data: { - body: role.body, - channelCode: `${role.channelCode}`, - title: role.head, - type: 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 }); - } + if (this.dialogType === 'created') { + SMS.addNewSMSTemplate(this.role) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.$emit('closeDialog'); }) + .catch(err => this.$message({ type: 'error', message: err })); + } else { + SMS.updateSMSTemplatate(this.tableRowData.id, this.role) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.$emit('closeDialog'); + }) + .catch(err => this.$message({ type: 'error', message: err })); + } + } else { - return false; + this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' }); } }) }, // 鑾峰緱娑堟伅浣� getMyBody(obj) { - console.log(obj); this.role.body = obj; }, + // 閲嶇疆琛ㄥ崟 handleReset() { this.$refs.edit.editor.txt.clear(); - // this.$refs.edit.wangEditor.txt.html('<p><br></p>') - this.setDepartList(); this.$refs.user.resetFields(); - }, - // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅 - getLoginUserInfo() { - const name = sessionStorage.getItem('name'); - this.$axios({ - method: 'get', - url: 'sccg/admin/info?name=' + name, - }) - .then(res => { - 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'] + props: ['tableRowData', 'dialogType'] } </script> <style lang="scss" scoped> @@ -335,7 +126,6 @@ main { text-align: left; - padding: 0 55px; background-color: #09152f; padding-bottom: 50px; diff --git a/src/views/operate/sms/smsTemplate/index.vue b/src/views/operate/sms/smsTemplate/index.vue index b63c1a6..735bac4 100644 --- a/src/views/operate/sms/smsTemplate/index.vue +++ b/src/views/operate/sms/smsTemplate/index.vue @@ -17,13 +17,6 @@ </el-option> </el-select> </div> - <!-- <div class="message-kind"> - <span>娑堟伅鍒嗙被:</span> - <el-select v-model="messageKind" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> - <el-option v-for="item in kindList" :key="item.id" :label="item.columnName" :value="item.id"> - </el-option> - </el-select> - </div> --> <div class="find"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">鏌ヨ</el-button> <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> @@ -34,7 +27,7 @@ <div class="mainContent"> <div class="main-nav"> <span>鏁版嵁鍒楄〃</span> - <el-button type="primary" icon="el-icon-plus" @click="dialogCreate = true">娣诲姞</el-button> + <el-button type="primary" icon="el-icon-plus" @click="isShowDialog = true; dialogType = 'created'">娣诲姞</el-button> </div> <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" @@ -53,19 +46,11 @@ <span>{{changeTime(scope.row)}}</span> </template> </el-table-column> - <!-- <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> - </el-table-column> --> <el-table-column prop="type" label="妯℃澘绫诲瀷" min-width="10"> <template slot-scope="scope"> - <span>{{scope.row.type === 1 ? '楠岃瘉鐮佹ā鏉�':scope.row.type - ===2?"娲诲姩妯℃澘":'鍏朵粬妯℃澘'}}</span> + <span>{{scope.row.type === 1 ? '楠岃瘉鐮佹ā鏉�':scope.row.type === 2 ? '娲诲姩妯℃澘' :' 鍏朵粬妯℃澘'}}</span> </template> </el-table-column> - <!-- <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> - <template slot-scope="scope"> - {{scope.row.status === 0 ? '鏈彂甯�' :'宸插彂甯�'}} - </template> - </el-table-column> --> <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> <div class="operation"> @@ -78,21 +63,10 @@ </el-table-column> </el-table> <!-- 鏂板缓娑堟伅 --> - <el-dialog title="鏂板缓鐭俊妯℃澘" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%" + <el-dialog title="鏂板缓鐭俊妯℃澘" :visible.sync="isShowDialog" v-if="isShowDialog" width="80%" :before-close="handleConfirmClose"> - <MyCreate @closeMyDialog="closeDialog"></MyCreate> + <MyCreate @closeMyDialog="handleConfirmClose" :dialogType="dialogType" :tableRowData="messageTemplateData"></MyCreate> </el-dialog> - <!-- 娑堟伅璇︽儏 --> - <!-- <el-dialog title="娑堟伅璇︽儏" :visible.sync="dialogView" v-if="dialogView" width="45%" - :before-close="handleClose"> - <MyView @closeDialog="closeDialog" :myinfo="info">></MyView> - </el-dialog> --> - <!-- 缂栬緫椤甸潰 --> - <!-- <el-dialog title="缂栬緫娑堟伅" :visible.sync="dialogEdit" v-if="dialogEdit" width="80%" - :before-close="handleClose"> - <MyEdit @closeDialog="closeDialog" :myDataRow="info"></MyEdit> - </el-dialog> --> - <!-- tools --> <div class="tools"> <div class="funs"> <div class="funsItem funs-sp"> @@ -111,8 +85,7 @@ </div> <div class="pagination"> <el-pagination background :current-page="currentPage" layout="prev, pager, next" - :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" - > + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> </el-pagination> </div> </div> @@ -123,6 +96,8 @@ <script> import helper from '@/utils/mydate' import MyCreate from './createTemplate' +import SMS from "@/api/operate/SMS"; + export default { components: { MyCreate, @@ -131,9 +106,8 @@ return { tableData: [], context: "", - dialogEdit:false, - dialogCreate: false, - dialogView: false, + dialogType: '', + isShowDialog: false, totalNum: null, pageSize: 10, currentPage: 1, @@ -194,93 +168,60 @@ id:'03', columnName:'鐭俊', } - ] + ], + messageTemplateData: null } }, created() { - const {setTableData} = this - setTableData(); + this.getMessageList(); }, methods: { // 鏌ヨ handleSearch(){ - this.setTableData(); + this.getMessageList(); }, // 閲嶇疆 handleReset(){ - }, // 鏌ョ湅 handleView(data){ - this.info = data; - this.dialogView = true; + this.messageTemplateData = data; + this.dialogType = 'view'; + this.isShowDialog = true; }, // 缂栬緫 handleEdit(data){ - this.info = data; - this.dialogEdit = true; + this.messageTemplateData = data; + this.dialogType = 'edit'; + this.isShowDialog = true; }, // 鍒犻櫎淇℃伅 handleDelete(idarr) { this.$confirm('纭鍒犻櫎?') - .then(_ => { - this.$axios({ - method: 'post', - url: 'sccg/message/delete?ids=' + idarr, - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: '鍒犻櫎鎴愬姛', - }) - this.setTableData(); - } else { - this.$message({ - type: 'error', - message: res.message - }) - } - }) + .then(() => { + SMS.deleteSMSTemplatate({ ids: idarr }) + .then(() => { + this.$message({ type: 'success', message }); + this.getMessageList(); + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }) }) - }, - // 璁剧疆琛ㄦ牸鏁版嵁 - async setTableData() { - const arr = await this.getMessageList(); - this.tableData = arr.records; - this.totalNum = arr.total }, // 鑾峰彇娑堟伅鏁版嵁 - async getMessageList() { - let arr = []; - const { currentPage, pageSize,context,messageStatus,messageKind } = this; - await this.$axios({ - method: 'post', - url: 'sccg/message_sms_template/list', - data: { - body: "", - channelCode: messageKind === '00' ?'':messageKind, - createUser: '', - current: currentPage, - title: context, - messageType: "", - pageSize: pageSize, - randomCode: "", - remark: "", - sendTime: "", - type: messageStatus === 0 ? '':messageStatus, - targetFrom: "", - targetTo: "" - } - }) - .then(res => { - arr = res.data; + getMessageList() { + SMS.getSMSTemplateList({ current: this.currentPage, pageSize: this.pageSize, context: this.context, type: this.messageType }) + .then(({ records, total }) => { + this.tableData = records; + this.totalNum = total; }) - return arr; + .catch(err => { + this.$message({ type: 'success', message: err }); + }) }, // 鎵归噺涓嬫媺妗嗘搷浣� async selectChange(list) { - console.log(this.tempList); if (this.tempList.length !== 0) { this.preMyIdx = list; if (list === 3) { @@ -313,14 +254,13 @@ type: 'success', message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�', }) - this.getUserList(); + this.getMessageList(); } else { this.$message({ type: 'error', message: res.message }) } - console.log(res); }) }) .catch(err => { console.log(err) }) @@ -331,11 +271,7 @@ list.forEach(item => { this.tempList.push(item.id); }) - if (list.length === this.tableData.length) { - this.all = true; - } else { - this.all = false - } + this.all = list.length === this.tableData.length; }, // 淇敼鏃堕棿鏍煎紡 changeTime({ updateTime }) { @@ -353,39 +289,23 @@ }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { + if ((rowIndex + 1) % 2 === 0) { return 'warning-row'; } else { return 'success-row'; } - return ''; }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.setTableData(); - }, - // 鍏抽棴寮圭獥 - handleClose(done) { - done(); + this.getMessageList(); }, // 纭鍏抽棴寮圭獥 handleConfirmClose(done) { this.$confirm('纭鍏抽棴?') - .then(_ => { + .then(() => { done(); }) - .catch(err => { - console.log(err); - }) - }, - // 鑷畾涔夊叧闂脊绐� - closeDialog({ flag, index }) { - this.dialogCreate = flag; - this.dialogView = flag; - if (index === 1) { - this.setTableData(); - } } } } @@ -398,7 +318,6 @@ header { background-color: #09152f; - border: 1pox solid #fff; .header-nav { line-height: 40px; @@ -456,7 +375,6 @@ background-color: #09152f; margin-top: 20px; padding-bottom: 50px; - border: 1pox solid #fff; .el-link { color: #4b9bb7; -- Gitblit v1.8.0