From 3250e7729c2660a1f8951d35d1163b702efd9b4f Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期三, 04 一月 2023 14:01:28 +0800 Subject: [PATCH] fix:消息保存消息发送 --- .history/src/api/operate/messageManagement_20230104134946.js | 25 vue.config.js | 4 .history/src/views/operate/sms/smsIndex/index_20230104105114.vue | 636 ++ .history/src/views/operate/sms/smsIndex/index_20230104104607.vue | 644 ++ .history/src/views/intelligentPatrol/illegalSearch/index_20221229133119.vue | 440 + src/views/operate/message/myIndex/index.vue | 147 .history/src/api/operate/messageManagement_20221130175043.js | 21 .history/src/views/intelligentPatrol/illegalSearch/index_20230103161938.vue | 441 + .history/src/views/operate/message/myIndex/index_20230104114956.vue | 604 ++ .history/src/views/operate/sms/smsIndex/index_20230104105428.vue | 631 ++ src/api/operate/messageManagement.js | 4 .history/src/views/operate/message/myIndex/index_20230104114351.vue | 595 ++ src/views/operate/message/myIndex/update/index.vue | 48 .history/src/views/operate/message/myIndex/update/index_20230104135855.vue | 523 ++ .history/src/views/operate/sms/smsIndex/index_20230104110238.vue | 633 ++ .history/src/views/operate/message/myIndex/index_20230104114551.vue | 595 ++ .history/src/views/operate/message/myIndex/index_20230104114724.vue | 604 ++ .history/src/views/intelligentPatrol/illegalSearch/index_20230103162024.vue | 441 + .history/src/views/operate/message/myIndex/update/index_20230104135024.vue | 454 + .history/src/views/operate/message/myIndex/update/index_20230104135648.vue | 522 ++ .history/src/views/operate/sms/smsIndex/index_20230104111808.vue | 634 ++ .history/vue.config_20230104105558.js | 130 .history/src/views/operate/message/myIndex/index_20230104115130.vue | 604 ++ src/views/operate/sms/smsIndex/index.vue | 40 .history/src/views/operate/message/myIndex/index_20230104114841.vue | 604 ++ .history/src/views/operate/sms/smsIndex/index_20230104105347.vue | 631 ++ .history/src/views/operate/message/myIndex/update/index_20230104135738.vue | 523 ++ .history/src/views/operate/sms/smsIndex/index_20230104105237.vue | 631 ++ .history/src/views/operate/message/myIndex/index_20230104114615.vue | 604 ++ .history/src/views/operate/message/myIndex/update/index_20221229133119.vue | 479 ++ .history/src/views/operate/sms/smsIndex/index_20230104110359.vue | 634 ++ .history/src/views/operate/message/myIndex/index_20221229133119.vue | 595 ++ src/views/intelligentPatrol/illegalSearch/index.vue | 1 33 files changed, 14,026 insertions(+), 96 deletions(-) diff --git a/.history/src/api/operate/messageManagement_20221130175043.js b/.history/src/api/operate/messageManagement_20221130175043.js new file mode 100644 index 0000000..ab03b98 --- /dev/null +++ b/.history/src/api/operate/messageManagement_20221130175043.js @@ -0,0 +1,21 @@ +import http from "@/http"; + +export function deleteMessage(params) { + return http.delete('/sccg/message/delete', params); +} + +export function getMessageById(id) { + return http.get('/sccg/message/getMessage/' + id); +} + +export function getMessageList(params) { + return http.get('/sccg/message/list', params); +} + +export function sendMessage(params) { + return http.post('/sccg/message/sendMessage', params); +} + +export function updateMessage(params) { + return http.post('/sccg/message/update', params); +} \ No newline at end of file diff --git a/.history/src/api/operate/messageManagement_20230104134946.js b/.history/src/api/operate/messageManagement_20230104134946.js new file mode 100644 index 0000000..c9a3fa0 --- /dev/null +++ b/.history/src/api/operate/messageManagement_20230104134946.js @@ -0,0 +1,25 @@ +import http from "@/http"; + +export function deleteMessage(params) { + return http.delete('/sccg/message/delete', params); +} + +export function getMessageById(id) { + return http.get('/sccg/message/getMessage/' + id); +} + +export function getMessageList(params) { + return http.get('/sccg/message/list', params); +} + +export function sendMessage(params) { + return http.post('/sccg/message/sendMessage', params); +} + +export function saveMessage(params) { + return http.post('/sccg/message/saveMessage', params); +} + +export function updateMessage(params) { + return http.post('/sccg/message/update', params); +} \ No newline at end of file diff --git a/.history/src/views/intelligentPatrol/illegalSearch/index_20221229133119.vue b/.history/src/views/intelligentPatrol/illegalSearch/index_20221229133119.vue new file mode 100644 index 0000000..6a94151 --- /dev/null +++ b/.history/src/views/intelligentPatrol/illegalSearch/index_20221229133119.vue @@ -0,0 +1,440 @@ +<template> + <div class="illegal-search"> + <header> + <div class="headerContent"> + <!-- 鏉′欢绛涢�� --> + <el-form ref="condition" :model="form" label-width="100px"> + <el-form-item :label=item.label :key=item.id v-for="item in headerList" :prop="item.prop"> + <el-input v-if="item.type === 'input'" v-model="form[item.prop]" :placeholder="item.placeholder"></el-input> + <el-cascader v-if="item.type === 'cascader'" :options="item.options" + :props="{ value: 'id', label: 'regionName' }" v-model="form[item.prop]" + :placeholder="item.placeholder"></el-cascader> + <el-select v-if="item.type === 'select'" v-model="form[item.prop]" :placeholder="item.placeholder"> + <el-option v-for="option in item.options" :value="option.id" :key="option.id" + :label="option.name"></el-option> + </el-select> + <el-date-picker v-if="item.type === 'timepick'" type="datetimerange" v-model="form[item.prop]" + start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </el-form-item> + </el-form> + </div> + </header> + <main> + <div class="mainContent"> + <!-- 鎸夐挳鍖哄煙 --> + <div class="main-btns"> + <div class="main-btns-left"> +<!-- <el-button icon="el-icon-download">涓嬭浇鍥剧墖</el-button>--> + <el-button icon="el-icon-folder" @click="exportTableData">瀵煎嚭</el-button> + </div> + <div class="main-btns-right"> + <el-button icon="el-icon-search" @click="searchTableData">鏌ヨ</el-button> + <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> + </div> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ 'font-weight': '650', 'line-height': '45px' }" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> + </el-table-column> + <el-table-column prop="typeName" label="杩濊绫诲瀷" min-width="10"> + </el-table-column> + <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="gradeName" label="浜嬩欢绛夌骇" min-width="10"> + </el-table-column> + <el-table-column prop="streetName" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎵�灞炵粍缁�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="12"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="12"> + </el-table-column> + <el-table-column prop="carNumber" label="杞︾墝鍙风爜" min-width="10"> + </el-table-column> + <el-table-column prop="state" label="瀹℃牳鐘舵��" min-width="10"> + </el-table-column> + <el-table-column prop="handlingOpinion" label="澶勭悊鎰忚" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <span @click="handleView(scope.row)">鏌ョ湅</span> + </div> + </template> + </el-table-column> + </el-table> + </div> + <div class="tools"> + <div class="funs"> + <!-- <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> --> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" + :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </main> + <footer> + <!-- 鏌ョ湅鍏蜂綋淇℃伅 --> + <el-dialog title="浜嬩欢璇︽儏" destroy-on-close :visible.sync="dialogView" width="45%" :before-close="handleClose"> + <ViewInfo :info="info"></ViewInfo> + </el-dialog> + </footer> + </div> +</template> + +<script> +import helper from "@/utils/mydate.js"; +import ViewInfo from './viewInfo'; +import basecase from "@/api/operate/basecase"; +import department from "@/api/system/department"; +import { getVideoPoint } from "@/api/operate/storeManagement"; + +export default { + components: { + ViewInfo + }, + + created() { + this.getTableData(); + + // 鑾峰彇缁勭粐鍒楄〃 + department.getDepartmentList() + .then(res => { + this.headerList[0].options = res; + }) + .catch(err => this.$message.error(err)) + + getVideoPoint({ current: 1, size: 100 }) + .then(({ records }) => { + this.headerList[4].options = records; + }) + .catch(err => this.$message.error(err)) + }, + + data() { + return { + tableData: [], + dialogView: false, + info: null, + currentPage: 1, + pageSize: 10, + totalNum: null, + headerList: [ + { + id: 1, + label: '鎵�灞炵粍缁�:', + value: '', + placeholder: '璇疯緭鍏ユ墍灞炵粍缁�', + prop: 'organization', + type: 'cascader', + options: [] + }, + { + id: 2, + label: '鎶ヨ鏃堕棿:', + value: '', + placeholder: '璇疯緭鍏ユ姤璀︽椂闂�', + prop: 'alarmTime', + type: 'timepick' + }, + { + id: 3, + label: '杩濊绫诲瀷:', + value: '', + placeholder: '璇疯緭鍏ヨ繚瑙勭被鍨�', + prop: 'typeId', + type: 'input' + }, + { + id: 4, + label: '浜嬩欢缂栧彿:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁紪鍙�', + prop: 'code', + type: 'input' + }, + { + id: 5, + label: '鐩戞帶鐐瑰悕绉�:', + value: '', + placeholder: '璇疯緭鍏ョ洃鎺х偣鍚嶇О', + prop: 'videoPointId', + type: 'select', + options: [] + }, + { + id: 6, + label: '瀹℃牳鐘舵��:', + value: '', + placeholder: '璇疯緭鍏ュ鏍哥姸鎬�', + type: 'select', + options: [{ id: 7, name: '鏈鏍�' }, { id: 8, name: '宸茬粡瀹℃牳' }, { id: 9, name: '缁撴' }] + }, + { + id: 7, + label: '杞︾墝鍙�:', + value: '', + placeholder: '璇疯緭鍏ヨ溅鐗屽彿', + prop: 'carNumber', + type: 'input' + }, + { + id: 8, + label: '澶勭悊鎰忚:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'handlingOpinion', + type: 'input' + }, + { + id: 9, + label: '浜嬩欢绛夌骇:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'gradeId', + type: 'input' + }, + ], + form: { + gradeId: null, + alarmTime: null, + handlingOpinion: null, + streetId: null, + typeId: null, + code: null, + carNumber: null, + state: null, + videoPointId: null, + organization: null + } + } + }, + + methods: { + getTableData(params) { + basecase.getViolationList({ current: this.currentPage, pageSize: this.pageSize, ...params }) + .then(({ records, total }) => { + this.tableData = records; + this.totalNum = total; + }) + .catch(err => this.$message.error(err)) + }, + + searchTableData() { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + + changeTime({ createTime }) { + return helper(createTime); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + // 琛ㄥ崟閲嶇疆 + handleReset() { + this.currentPage = 1; + this.$refs.condition.resetFields(); + this.getTableData(); + }, + // 鍏抽棴寮圭獥 + handleClose(done) { + done(); + }, + // 鎵撳紑寮圭獥 + handleView(data) { + this.info = data + this.dialogView = true + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + exportTableData() { + basecase.exportViolationData({ current: 1 }) + .then((res) => { + console.log(res) + this.$message.success('鎿嶄綔鎴愬姛'); + // let res = basecase.exportUserOperationLogAjax({ + // startLogTime: transDate(this.searchQuery.date[0], "YYYY-MM-DD"), + // endLogTime: transDate(this.searchQuery.date[1], "YYYY-MM-DD"), + // systemName: this.searchQuery.systemName, + // userName: this.searchQuery.user, + // }).then((res)=>{ + // console.log(res) + // }); + + let time = new Date() + let deathdate =time.toLocaleDateString() + const blob = new Blob([res.data], { + type: "application/vnd.ms-excel;charset=utf-8", + }); + if (window.navigator.msSaveBlob) { + window.navigator.msSaveBlob(blob, deathdate+"杩濊鏁版嵁" + ".xlsx"); + } else { + const url = window.URL.createObjectURL(blob); + const link = document.createElement("a"); + link.style.display = "none"; + link.href = url; + link.download = deathdate+"杩濊鏁版嵁" + ".xlsx"; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + }) + .catch(err => this.$message.error(err)) + } + } +} +</script> +<style lang="scss" scoped> +.illegal-search { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: white; + + .headerContent { + padding: 20px 40px; + display: flex; + justify-content: space-between; + align-items: center; + + ::v-deep .el-form { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + + .el-form-item { + width: 30%; + } + + .el-form-item__label { + color: #4b9bb7; + } + } + } + } + + main { + background-color: #ffffff; + margin-top: 20px; + padding-bottom: 50px; + + .mainTitle { + line-height: 60px; + } + + .main-btns { + display: flex; + justify-content: space-between; + line-height: 60px; + padding: 0 20px; + + .el-button { + background-color: #2f91ec; + border: 1px solid #17324c; + color: #ffffff; + } + } + + .el-table { + // color: #4b9bb7; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs-sp { + border: 1px solid #17324c; + } + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + &::v-deep .el-input__inner { + border: none; + // background-color: #09152f; + } + } + } + } + } +} +</style> \ No newline at end of file diff --git a/.history/src/views/intelligentPatrol/illegalSearch/index_20230103161938.vue b/.history/src/views/intelligentPatrol/illegalSearch/index_20230103161938.vue new file mode 100644 index 0000000..46dd605 --- /dev/null +++ b/.history/src/views/intelligentPatrol/illegalSearch/index_20230103161938.vue @@ -0,0 +1,441 @@ +<template> + <div class="illegal-search"> + <header> + <div class="headerContent"> + <!-- 鏉′欢绛涢�� --> + <el-form ref="condition" :model="form" label-width="100px"> + <el-form-item :label=item.label :key=item.id v-for="item in headerList" :prop="item.prop"> + <el-input v-if="item.type === 'input'" v-model="form[item.prop]" :placeholder="item.placeholder"></el-input> + <el-cascader v-if="item.type === 'cascader'" :options="item.options" + :props="{ value: 'id', label: 'regionName' }" v-model="form[item.prop]" + :placeholder="item.placeholder"></el-cascader> + <el-select v-if="item.type === 'select'" v-model="form[item.prop]" :placeholder="item.placeholder"> + <el-option v-for="option in item.options" :value="option.id" :key="option.id" + :label="option.name"></el-option> + </el-select> + <el-date-picker v-if="item.type === 'timepick'" type="datetimerange" v-model="form[item.prop]" + start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </el-form-item> + </el-form> + </div> + </header> + <main> + <div class="mainContent"> + <!-- 鎸夐挳鍖哄煙 --> + <div class="main-btns"> + <div class="main-btns-left"> +<!-- <el-button icon="el-icon-download">涓嬭浇鍥剧墖</el-button>--> + <el-button icon="el-icon-folder" @click="exportTableData">瀵煎嚭</el-button> + </div> + <div class="main-btns-right"> + <el-button icon="el-icon-search" @click="searchTableData">鏌ヨ</el-button> + <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> + </div> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ 'font-weight': '650', 'line-height': '45px' }" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> + </el-table-column> + <el-table-column prop="typeName" label="杩濊绫诲瀷" min-width="10"> + </el-table-column> + <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="gradeName" label="浜嬩欢绛夌骇" min-width="10"> + </el-table-column> + <el-table-column prop="streetName" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎵�灞炵粍缁�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="12"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="12"> + </el-table-column> + <el-table-column prop="carNumber" label="杞︾墝鍙风爜" min-width="10"> + </el-table-column> + <el-table-column prop="state" label="瀹℃牳鐘舵��" min-width="10"> + </el-table-column> + <el-table-column prop="handlingOpinion" label="澶勭悊鎰忚" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <span @click="handleView(scope.row)">鏌ョ湅</span> + </div> + </template> + </el-table-column> + </el-table> + </div> + <div class="tools"> + <div class="funs"> + <!-- <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> --> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" + :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </main> + <footer> + <!-- 鏌ョ湅鍏蜂綋淇℃伅 --> + <el-dialog title="浜嬩欢璇︽儏" destroy-on-close :visible.sync="dialogView" width="45%" :before-close="handleClose"> + <ViewInfo :info="info"></ViewInfo> + </el-dialog> + </footer> + </div> +</template> + +<script> +import helper from "@/utils/mydate.js"; +import ViewInfo from './viewInfo'; +import basecase from "@/api/operate/basecase"; +import department from "@/api/system/department"; +import { getVideoPoint } from "@/api/operate/storeManagement"; + +export default { + components: { + ViewInfo + }, + + created() { + this.getTableData(); + + // 鑾峰彇缁勭粐鍒楄〃 + department.getDepartmentList() + .then(res => { + this.headerList[0].options = res; + }) + .catch(err => this.$message.error(err)) + + getVideoPoint({ current: 1, size: 100 }) + .then(({ records }) => { + this.headerList[4].options = records; + }) + .catch(err => this.$message.error(err)) + }, + + data() { + return { + tableData: [], + dialogView: false, + info: null, + currentPage: 1, + pageSize: 10, + totalNum: null, + headerList: [ + { + id: 1, + label: '鎵�灞炵粍缁�:', + value: '', + placeholder: '璇疯緭鍏ユ墍灞炵粍缁�', + prop: 'organization', + type: 'cascader', + options: [] + }, + { + id: 2, + label: '鎶ヨ鏃堕棿:', + value: '', + placeholder: '璇疯緭鍏ユ姤璀︽椂闂�', + prop: 'alarmTime', + type: 'timepick' + }, + { + id: 3, + label: '杩濊绫诲瀷:', + value: '', + placeholder: '璇疯緭鍏ヨ繚瑙勭被鍨�', + prop: 'typeId', + type: 'input' + }, + { + id: 4, + label: '浜嬩欢缂栧彿:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁紪鍙�', + prop: 'code', + type: 'input' + }, + { + id: 5, + label: '鐩戞帶鐐瑰悕绉�:', + value: '', + placeholder: '璇疯緭鍏ョ洃鎺х偣鍚嶇О', + prop: 'videoPointId', + type: 'select', + options: [] + }, + { + id: 6, + label: '瀹℃牳鐘舵��:', + value: '', + placeholder: '璇疯緭鍏ュ鏍哥姸鎬�', + type: 'select', + prop: 'status', + options: [{ id: 7, name: '鏈鏍�' }, { id: 8, name: '宸茬粡瀹℃牳' }, { id: 9, name: '缁撴' }] + }, + { + id: 7, + label: '杞︾墝鍙�:', + value: '', + placeholder: '璇疯緭鍏ヨ溅鐗屽彿', + prop: 'carNumber', + type: 'input' + }, + { + id: 8, + label: '澶勭悊鎰忚:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'handlingOpinion', + type: 'input' + }, + { + id: 9, + label: '浜嬩欢绛夌骇:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'gradeId', + type: 'input' + }, + ], + form: { + gradeId: null, + alarmTime: null, + handlingOpinion: null, + streetId: null, + typeId: null, + code: null, + carNumber: null, + state: null, + videoPointId: null, + organization: null + } + } + }, + + methods: { + getTableData(params) { + basecase.getViolationList({ current: this.currentPage, pageSize: this.pageSize, ...params }) + .then(({ records, total }) => { + this.tableData = records; + this.totalNum = total; + }) + .catch(err => this.$message.error(err)) + }, + + searchTableData() { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + + changeTime({ createTime }) { + return helper(createTime); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + // 琛ㄥ崟閲嶇疆 + handleReset() { + this.currentPage = 1; + this.$refs.condition.resetFields(); + this.getTableData(); + }, + // 鍏抽棴寮圭獥 + handleClose(done) { + done(); + }, + // 鎵撳紑寮圭獥 + handleView(data) { + this.info = data + this.dialogView = true + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + exportTableData() { + basecase.exportViolationData({ current: 1 }) + .then((res) => { + console.log(res) + this.$message.success('鎿嶄綔鎴愬姛'); + // let res = basecase.exportUserOperationLogAjax({ + // startLogTime: transDate(this.searchQuery.date[0], "YYYY-MM-DD"), + // endLogTime: transDate(this.searchQuery.date[1], "YYYY-MM-DD"), + // systemName: this.searchQuery.systemName, + // userName: this.searchQuery.user, + // }).then((res)=>{ + // console.log(res) + // }); + + let time = new Date() + let deathdate =time.toLocaleDateString() + const blob = new Blob([res.data], { + type: "application/vnd.ms-excel;charset=utf-8", + }); + if (window.navigator.msSaveBlob) { + window.navigator.msSaveBlob(blob, deathdate+"杩濊鏁版嵁" + ".xlsx"); + } else { + const url = window.URL.createObjectURL(blob); + const link = document.createElement("a"); + link.style.display = "none"; + link.href = url; + link.download = deathdate+"杩濊鏁版嵁" + ".xlsx"; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + }) + .catch(err => this.$message.error(err)) + } + } +} +</script> +<style lang="scss" scoped> +.illegal-search { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: white; + + .headerContent { + padding: 20px 40px; + display: flex; + justify-content: space-between; + align-items: center; + + ::v-deep .el-form { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + + .el-form-item { + width: 30%; + } + + .el-form-item__label { + color: #4b9bb7; + } + } + } + } + + main { + background-color: #ffffff; + margin-top: 20px; + padding-bottom: 50px; + + .mainTitle { + line-height: 60px; + } + + .main-btns { + display: flex; + justify-content: space-between; + line-height: 60px; + padding: 0 20px; + + .el-button { + background-color: #2f91ec; + border: 1px solid #17324c; + color: #ffffff; + } + } + + .el-table { + // color: #4b9bb7; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs-sp { + border: 1px solid #17324c; + } + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + &::v-deep .el-input__inner { + border: none; + // background-color: #09152f; + } + } + } + } + } +} +</style> \ No newline at end of file diff --git a/.history/src/views/intelligentPatrol/illegalSearch/index_20230103162024.vue b/.history/src/views/intelligentPatrol/illegalSearch/index_20230103162024.vue new file mode 100644 index 0000000..5057ac6 --- /dev/null +++ b/.history/src/views/intelligentPatrol/illegalSearch/index_20230103162024.vue @@ -0,0 +1,441 @@ +<template> + <div class="illegal-search"> + <header> + <div class="headerContent"> + <!-- 鏉′欢绛涢�� --> + <el-form ref="condition" :model="form" label-width="100px"> + <el-form-item :label=item.label :key=item.id v-for="item in headerList" :prop="item.prop"> + <el-input v-if="item.type === 'input'" v-model="form[item.prop]" :placeholder="item.placeholder"></el-input> + <el-cascader v-if="item.type === 'cascader'" :options="item.options" + :props="{ value: 'id', label: 'regionName' }" v-model="form[item.prop]" + :placeholder="item.placeholder"></el-cascader> + <el-select v-if="item.type === 'select'" v-model="form[item.prop]" :placeholder="item.placeholder"> + <el-option v-for="option in item.options" :value="option.id" :key="option.id" + :label="option.name"></el-option> + </el-select> + <el-date-picker v-if="item.type === 'timepick'" type="datetimerange" v-model="form[item.prop]" + start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </el-form-item> + </el-form> + </div> + </header> + <main> + <div class="mainContent"> + <!-- 鎸夐挳鍖哄煙 --> + <div class="main-btns"> + <div class="main-btns-left"> +<!-- <el-button icon="el-icon-download">涓嬭浇鍥剧墖</el-button>--> + <el-button icon="el-icon-folder" @click="exportTableData">瀵煎嚭</el-button> + </div> + <div class="main-btns-right"> + <el-button icon="el-icon-search" @click="searchTableData">鏌ヨ</el-button> + <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> + </div> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ 'font-weight': '650', 'line-height': '45px' }" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="10"> + </el-table-column> + <el-table-column prop="typeName" label="杩濊绫诲瀷" min-width="10"> + </el-table-column> + <el-table-column prop="eventSource" label="浜嬩欢鏉ユ簮" min-width="10"> + </el-table-column> + <el-table-column prop="gradeName" label="浜嬩欢绛夌骇" min-width="10"> + </el-table-column> + <el-table-column prop="streetName" label="鎶ヨ鐐逛綅" min-width="10"> + </el-table-column> + <el-table-column prop="site" label="鎵�灞炵粍缁�" min-width="10"> + </el-table-column> + <el-table-column prop="alarmTime" label="鎶ヨ鏃堕棿" min-width="12"> + </el-table-column> + <el-table-column prop="continueTime" label="鎸佺画鏃堕棿" min-width="12"> + </el-table-column> + <el-table-column prop="carNumber" label="杞︾墝鍙风爜" min-width="10"> + </el-table-column> + <el-table-column prop="state" label="瀹℃牳鐘舵��" min-width="10"> + </el-table-column> + <el-table-column prop="handlingOpinion" label="澶勭悊鎰忚" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <span @click="handleView(scope.row)">鏌ョ湅</span> + </div> + </template> + </el-table-column> + </el-table> + </div> + <div class="tools"> + <div class="funs"> + <!-- <div class="funsItem"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value" :disabled="item.disabled"> + </el-option> + </el-select> + </div> --> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" + :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev" @next-click="handleNext"> + </el-pagination> + </div> + </div> + </main> + <footer> + <!-- 鏌ョ湅鍏蜂綋淇℃伅 --> + <el-dialog title="浜嬩欢璇︽儏" destroy-on-close :visible.sync="dialogView" width="45%" :before-close="handleClose"> + <ViewInfo :info="info"></ViewInfo> + </el-dialog> + </footer> + </div> +</template> + +<script> +import helper from "@/utils/mydate.js"; +import ViewInfo from './viewInfo'; +import basecase from "@/api/operate/basecase"; +import department from "@/api/system/department"; +import { getVideoPoint } from "@/api/operate/storeManagement"; + +export default { + components: { + ViewInfo + }, + + created() { + this.getTableData(); + + // 鑾峰彇缁勭粐鍒楄〃 + department.getDepartmentList() + .then(res => { + this.headerList[0].options = res; + }) + .catch(err => this.$message.error(err)) + + getVideoPoint({ current: 1, size: 100 }) + .then(({ records }) => { + this.headerList[4].options = records; + }) + .catch(err => this.$message.error(err)) + }, + + data() { + return { + tableData: [], + dialogView: false, + info: null, + currentPage: 1, + pageSize: 10, + totalNum: null, + headerList: [ + { + id: 1, + label: '鎵�灞炵粍缁�:', + value: '', + placeholder: '璇疯緭鍏ユ墍灞炵粍缁�', + prop: 'organization', + type: 'cascader', + options: [] + }, + { + id: 2, + label: '鎶ヨ鏃堕棿:', + value: '', + placeholder: '璇疯緭鍏ユ姤璀︽椂闂�', + prop: 'alarmTime', + type: 'timepick' + }, + { + id: 3, + label: '杩濊绫诲瀷:', + value: '', + placeholder: '璇疯緭鍏ヨ繚瑙勭被鍨�', + prop: 'typeId', + type: 'input' + }, + { + id: 4, + label: '浜嬩欢缂栧彿:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁紪鍙�', + prop: 'code', + type: 'input' + }, + { + id: 5, + label: '鐩戞帶鐐瑰悕绉�:', + value: '', + placeholder: '璇疯緭鍏ョ洃鎺х偣鍚嶇О', + prop: 'videoPointId', + type: 'select', + options: [] + }, + { + id: 6, + label: '瀹℃牳鐘舵��:', + value: '', + placeholder: '璇疯緭鍏ュ鏍哥姸鎬�', + type: 'select', + prop: 'state', + options: [{ id: 7, name: '鏈鏍�' }, { id: 8, name: '宸茬粡瀹℃牳' }, { id: 9, name: '缁撴' }] + }, + { + id: 7, + label: '杞︾墝鍙�:', + value: '', + placeholder: '璇疯緭鍏ヨ溅鐗屽彿', + prop: 'carNumber', + type: 'input' + }, + { + id: 8, + label: '澶勭悊鎰忚:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'handlingOpinion', + type: 'input' + }, + { + id: 9, + label: '浜嬩欢绛夌骇:', + value: '', + placeholder: '璇疯緭鍏ヤ簨浠剁瓑绾�', + prop: 'gradeId', + type: 'input' + }, + ], + form: { + gradeId: null, + alarmTime: null, + handlingOpinion: null, + streetId: null, + typeId: null, + code: null, + carNumber: null, + state: null, + videoPointId: null, + organization: null + } + } + }, + + methods: { + getTableData(params) { + basecase.getViolationList({ current: this.currentPage, pageSize: this.pageSize, ...params }) + .then(({ records, total }) => { + this.tableData = records; + this.totalNum = total; + }) + .catch(err => this.$message.error(err)) + }, + + searchTableData() { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + + changeTime({ createTime }) { + return helper(createTime); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + // 琛ㄥ崟閲嶇疆 + handleReset() { + this.currentPage = 1; + this.$refs.condition.resetFields(); + this.getTableData(); + }, + // 鍏抽棴寮圭獥 + handleClose(done) { + done(); + }, + // 鎵撳紑寮圭獥 + handleView(data) { + this.info = data + this.dialogView = true + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + // 涓婁竴椤电偣鍑讳簨浠� + handlePrev(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + // 涓嬩竴椤电偣鍑讳簨浠� + handleNext(page) { + const { alarmTime, organization } = this.form; + const [startTime, endTime] = alarmTime ?? [null, null]; + const [communityId, streetId] = organization ?? [null, null]; + const params = Object.assign({}, this.form); + delete params.alarmTime; + delete params.organization; + this.currentPage = page; + this.getTableData({ startTime, streetId, communityId, endTime, ...params }); + }, + exportTableData() { + basecase.exportViolationData({ current: 1 }) + .then((res) => { + console.log(res) + this.$message.success('鎿嶄綔鎴愬姛'); + // let res = basecase.exportUserOperationLogAjax({ + // startLogTime: transDate(this.searchQuery.date[0], "YYYY-MM-DD"), + // endLogTime: transDate(this.searchQuery.date[1], "YYYY-MM-DD"), + // systemName: this.searchQuery.systemName, + // userName: this.searchQuery.user, + // }).then((res)=>{ + // console.log(res) + // }); + + let time = new Date() + let deathdate =time.toLocaleDateString() + const blob = new Blob([res.data], { + type: "application/vnd.ms-excel;charset=utf-8", + }); + if (window.navigator.msSaveBlob) { + window.navigator.msSaveBlob(blob, deathdate+"杩濊鏁版嵁" + ".xlsx"); + } else { + const url = window.URL.createObjectURL(blob); + const link = document.createElement("a"); + link.style.display = "none"; + link.href = url; + link.download = deathdate+"杩濊鏁版嵁" + ".xlsx"; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + }) + .catch(err => this.$message.error(err)) + } + } +} +</script> +<style lang="scss" scoped> +.illegal-search { + text-align: left; + margin: 10px 20px; + color: #4b9bb7; + + header { + background-color: white; + + .headerContent { + padding: 20px 40px; + display: flex; + justify-content: space-between; + align-items: center; + + ::v-deep .el-form { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + + .el-form-item { + width: 30%; + } + + .el-form-item__label { + color: #4b9bb7; + } + } + } + } + + main { + background-color: #ffffff; + margin-top: 20px; + padding-bottom: 50px; + + .mainTitle { + line-height: 60px; + } + + .main-btns { + display: flex; + justify-content: space-between; + line-height: 60px; + padding: 0 20px; + + .el-button { + background-color: #2f91ec; + border: 1px solid #17324c; + color: #ffffff; + } + } + + .el-table { + // color: #4b9bb7; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs-sp { + border: 1px solid #17324c; + } + + .funs { + display: flex; + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + &::v-deep .el-input__inner { + border: none; + // background-color: #09152f; + } + } + } + } + } +} +</style> \ No newline at end of file diff --git a/.history/src/views/operate/message/myIndex/index_20221229133119.vue b/.history/src/views/operate/message/myIndex/index_20221229133119.vue new file mode 100644 index 0000000..87b011c --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20221229133119.vue @@ -0,0 +1,595 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'white','font-weight':'650','line-height':'45px'}" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="createUser" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template v-if="scope.row.status" 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"> + <el-link icon="el-icon-view" :underline="false" @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id:'00', + columnName:'鍏ㄩ儴', + }, + { + id:'01', + columnName:'绔欏唴淇�', + }, + { + id:'03', + columnName:'閭欢', + }, + { + id:'02', + columnName:'鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch(){ + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset(){ + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type){ + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total ,size}) => { + this.tableData = records; + this.totalNum = total; + this.pageSize=size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + span { + flex: 1; + } + .el-input { + flex: 2; + color: #1d3f57; + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104114351.vue b/.history/src/views/operate/message/myIndex/index_20230104114351.vue new file mode 100644 index 0000000..05097ed --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104114351.vue @@ -0,0 +1,595 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'white','font-weight':'650','line-height':'45px'}" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template v-if="scope.row.status" 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"> + <el-link icon="el-icon-view" :underline="false" @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id:'00', + columnName:'鍏ㄩ儴', + }, + { + id:'01', + columnName:'绔欏唴淇�', + }, + { + id:'03', + columnName:'閭欢', + }, + { + id:'02', + columnName:'鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch(){ + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset(){ + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type){ + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total ,size}) => { + this.tableData = records; + this.totalNum = total; + this.pageSize=size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + span { + flex: 1; + } + .el-input { + flex: 2; + color: #1d3f57; + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104114551.vue b/.history/src/views/operate/message/myIndex/index_20230104114551.vue new file mode 100644 index 0000000..140c0ee --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104114551.vue @@ -0,0 +1,595 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'white','font-weight':'650','line-height':'45px'}" + :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" + @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <!-- <template v-if="scope.row.status" 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"> + <el-link icon="el-icon-view" :underline="false" @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id:'00', + columnName:'鍏ㄩ儴', + }, + { + id:'01', + columnName:'绔欏唴淇�', + }, + { + id:'03', + columnName:'閭欢', + }, + { + id:'02', + columnName:'鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch(){ + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset(){ + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type){ + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total ,size}) => { + this.tableData = records; + this.totalNum = total; + this.pageSize=size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + span { + flex: 1; + } + .el-input { + flex: 2; + color: #1d3f57; + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104114615.vue b/.history/src/views/operate/message/myIndex/index_20230104114615.vue new file mode 100644 index 0000000..9d1cd63 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104114615.vue @@ -0,0 +1,604 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" + value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" + @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: 'white', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" + style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template v-if="scope.row.status" 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"> + <el-link icon="el-icon-view" :underline="false" + @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" + @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" + :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" + :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id: '00', + columnName: '鍏ㄩ儴', + }, + { + id: '01', + columnName: '绔欏唴淇�', + }, + { + id: '03', + columnName: '閭欢', + }, + { + id: '02', + columnName: '鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch() { + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset() { + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type) { + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total, size }) => { + this.tableData = records; + this.totalNum = total; + this.pageSize = size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104114724.vue b/.history/src/views/operate/message/myIndex/index_20230104114724.vue new file mode 100644 index 0000000..bda4ba2 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104114724.vue @@ -0,0 +1,604 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" + value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" + @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: 'white', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" + style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <!-- <template v-if="scope.row.status" 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"> + <el-link icon="el-icon-view" :underline="false" + @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" + @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" + :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" + :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id: '00', + columnName: '鍏ㄩ儴', + }, + { + id: '01', + columnName: '绔欏唴淇�', + }, + { + id: '03', + columnName: '閭欢', + }, + { + id: '02', + columnName: '鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch() { + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset() { + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type) { + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total, size }) => { + this.tableData = records; + this.totalNum = total; + this.pageSize = size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104114841.vue b/.history/src/views/operate/message/myIndex/index_20230104114841.vue new file mode 100644 index 0000000..c75a669 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104114841.vue @@ -0,0 +1,604 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" + value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" + @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: 'white', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" + style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template v-if="scope.row.status" slot-scope="scope"> + {{ scope.row.status == 1 ? '鏈彂甯�' : '宸插彂甯�' }} + </template> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link icon="el-icon-view" :underline="false" + @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" + @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" + :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" + :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id: '00', + columnName: '鍏ㄩ儴', + }, + { + id: '01', + columnName: '绔欏唴淇�', + }, + { + id: '03', + columnName: '閭欢', + }, + { + id: '02', + columnName: '鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch() { + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset() { + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type) { + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total, size }) => { + this.tableData = records; + this.totalNum = total; + this.pageSize = size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104114956.vue b/.history/src/views/operate/message/myIndex/index_20230104114956.vue new file mode 100644 index 0000000..9d1cd63 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104114956.vue @@ -0,0 +1,604 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" + value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" + @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: 'white', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" + style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template v-if="scope.row.status" 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"> + <el-link icon="el-icon-view" :underline="false" + @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" + @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" + :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" + :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id: '00', + columnName: '鍏ㄩ儴', + }, + { + id: '01', + columnName: '绔欏唴淇�', + }, + { + id: '03', + columnName: '閭欢', + }, + { + id: '02', + columnName: '鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch() { + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset() { + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type) { + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total, size }) => { + this.tableData = records; + this.totalNum = total; + this.pageSize = size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/index_20230104115130.vue b/.history/src/views/operate/message/myIndex/index_20230104115130.vue new file mode 100644 index 0000000..d74344d --- /dev/null +++ b/.history/src/views/operate/message/myIndex/index_20230104115130.vue @@ -0,0 +1,604 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="search"> + <span>娑堟伅鐘舵��:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨娑堟伅鐘舵��"> + <el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>娑堟伅鍒嗙被:</span> + <el-select v-model="messageType" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> + <el-option v-for="item in typeList" :key="item.id" :label="item.columnName" :value="item.id"> + </el-option> + </el-select> + </div> + <div class="search"> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" + value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + </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> + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button class="button-addition" type="primary" icon="el-icon-plus" + @click="handleOpera(null, 'create')">娣诲姞</el-button> + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{ background: 'white', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" + style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> + <el-table-column type="selection" min-width="5"> + </el-table-column> + <el-table-column label="ID" min-width="5"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> + </el-table-column> + <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> + </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"> + <el-link icon="el-icon-view" :underline="false" + @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" + @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" + @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" + :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" + :myDataRow="tableRowData"></my-edit> + </el-dialog> + <!-- tools --> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox> + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> + </div> + <div class="funsItem"> + <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange"> + <el-option v-for="item in options" :key="item.value" :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import MyView from './myview' +import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; + +export default { + components: { MyView, MyEdit }, + computed: { + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } + + if (this.dialogType === 'update') { + return '鏇存柊'; + } + + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } + } + }, + data() { + return { + tableData: [], + tableRowData: null, + isShowMoreParams: false, + context: null, + isShowDialog: false, + dialogType: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + datetime: null, + options: [ + { + value: 0, + label: '鎵归噺鎿嶄綔', + disabled: true, + }, + // { + // value: 1, + // label: '鎵归噺鍚敤', + // }, + // { + // value: 2, + // label: '鎵归噺绂佺敤', + // }, + { + value: 3, + label: '鎵归噺鍒犻櫎', + } + ], + tempList: [], + messageStatus: 2, + messageType: '00', + statusList: [ + { + label: '鍏ㄩ儴', + value: 2, + }, + { + label: '鏈彂甯�', + value: 0, + }, + { + label: '宸插彂甯�', + value: 1, + } + ], + typeList: [ + { + id: '00', + columnName: '鍏ㄩ儴', + }, + { + id: '01', + columnName: '绔欏唴淇�', + }, + { + id: '03', + columnName: '閭欢', + }, + { + id: '02', + columnName: '鐭俊', + } + ] + } + }, + created() { + this.getMessageList(); + }, + + methods: { + // 鏌ヨ + handleSearch() { + this.getMessageList(); + }, + + // 閲嶇疆 + handleReset() { + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); + }, + + // 鏌ョ湅 + handleOpera(data, type) { + this.tableRowData = data; + this.dialogType = type; + this.isShowDialog = true; + }, + + // 鍒犻櫎淇℃伅 + handleDelete(idarr) { + this.$confirm('纭鍒犻櫎?') + .then(() => { + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); + }) + }, + + // 鑾峰彇娑堟伅鏁版嵁 + getMessageList() { + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } + + getMessageList(messageParam) + .then(({ records, total, size }) => { + this.tableData = records; + this.totalNum = total; + this.pageSize = size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: 'warning', + message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁', + }) + } + }, + + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') + .then(_ => { + this.$axios({ + 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 + }) + } + }) + }) + .catch(err => { }) + }, + + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach(item => { + this.tempList.push(item.id); + }) + this.all = list.length === this.tableData.length; + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + + // 鍙嶉�� + disSame(list) { + list.forEach(row => { + this.$refs.multipleTable.toggleRowSelection(row) + }) + }, + + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return 'warning-row'; + } else { + return 'success-row'; + } + }, + + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getMessageList(); + }, + + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getMessageList(); + } + } +} +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .search { + display: flex; + justify-content: space-between; + align-items: center; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #1d3f57; + + &::v-deep .el-input__inner { + //background-color: #09152f; + //border: 1px solid #17324c; + } + } + + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + &::v-deep .el-input__inner { + border: none; + //background-color: #09152f; + } + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + &::v-deep .el-table__empty-block { + //background-color: #09152f; + } + + &::v-deep .el-table__empty-block { + color: #4b9bb7; + } + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + .el-table::v-deep .warning-row { + //background: #06122c; + } + + .el-table::v-deep .success-row { + //background: #071f39; + } + + &::v-deep .switchStyle .el-switch__label { + position: absolute; + display: none; + color: #fff; + } + + &::v-deep .el-switch__core { + background-color: rgba(166, 166, 166, 1); + } + + &::v-deep .switchStyle .el-switch__label--left { + z-index: 9; + left: 20px; + } + + &::v-deep .switchStyle .el-switch__label--right { + z-index: 9; + left: 4px; + } + + &::v-deep .switchStyle .el-switch__label.is-active { + display: block; + } + + &::v-deep .switchStyle.el-switch .el-switch__core, + &::v-deep .el-switch .el-switch__label { + width: 50px !important; + } + } + + &::v-deep .el-dialog__header, + &::v-deep .el-dialog__body { + //background-color: #06122c; + } + + &::v-deep .el-dialog__header { + display: flex; + align-items: center; + background-color: #fff; + padding: 20px; + line-height: 60px; + } + + &::v-deep .el-dialog__title { + color: #606266; + } + + &::v-deep .el-dialog__close { + width: 20px; + height: 20px; + } + + &::v-deep .el-dialog__body { + padding: 0; + } + + :deep(.el-range-input) { + //background-color: #09152f; + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/update/index_20221229133119.vue b/.history/src/views/operate/message/myIndex/update/index_20221229133119.vue new file mode 100644 index 0000000..68d0f04 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/update/index_20221229133119.vue @@ -0,0 +1,479 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form + ref="user" + label-width="140px" + autoComplete="on" + :model="role" + :rules="createRoleRules" + label-position="right" + :disabled="type === 'view'" + > + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode" > + <el-radio-group v-model="role.channelCode"> + <el-radio label="01">绔欏唴淇�</el-radio> + <el-radio label="03">閭欢</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </el-form-item> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item + v-if="role.channelCode === '01'" + 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-option> + </el-select> + </div> + <span class="message-add" @click="dialogCreate = true"> + 娣诲姞鏍忕洰</span + > + </div> + </el-form-item> + <!-- 娑堟伅鏍囬 --> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <div class="message-item__left"> + <el-input + v-model="role.head" + 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 + :default-checked-keys="checkedList" + node-key="id" + > + </el-tree> + </el-option> + </el-select> + </div> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <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(0)" + class="btn save" + v-if="type !== 'view'" + >淇濆瓨 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleSubmit(1)" + class="btn submit" + v-if="type !== 'view'" + >鍙戝竷 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleView" + class="btn submit" + v-if="type !== 'view'" + >棰勮 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="type !== 'view'" + >閲嶇疆</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 MyColumnAdd from "@/views/operate/message/mycontrol/createUser"; +import MyColView from "../messageView"; +import { sendMessage, updateMessage, getMessageById } from "@/api/operate/messageManagement"; + +export default { + components: { MyEditor, MyColumnAdd, MyColView }, + props: ["type", "myDataRow"], + data() { + const validateEditor = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璇疯緭鍏�')); + } + }; + return { + role: { + messageType: null, + head: "", + targetTo: "", + body: "", + channelCode: null, + }, + createRoleRules: { + messageType: [ + { + required: true, + trigger: ["blur", "change"], + message: "璇疯緭鍏ユ秷鎭爮鐩�", + }, + ], + head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }], + targetTo: [ + { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" }, + ], + body: [ + { + required: true, + validator: validateEditor + }, + ], + }, + colList: [], + departList: [], + typeList: [], + dialogCreate: false, + dialogView: false, + defaultProps: { + children: "children", + label: "departName", + }, + checkedList: [], + tempNameArr: [], + info: {}, + sendUser: "", + }; + }, + created() { + this.getColumnList(); + this.getDepartList(); + this.getLoginUserInfo(); + if (this.type !== "create" && this.myDataRow) { + getMessageById(this.myDataRow.id) + .then(res => { + this.role = res; + if (res.targetTo) { + this.checkedList = res.targetTo.split(','); + this.role.targetTo = `${this.checkedList.length}浜篳; + } + }) + .catch(err => this.$message.error(`${err}`)) + } + }, + mounted() { + if (this.type !== 'create') { + this.$refs.edit.editor.txt.append(this.myDataRow.body); + } + + }, + methods: { + // 鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then((_) => { + done(); + }); + }, + + // 鑾峰彇鏍忕洰 + async getColumnList() { + await this.$axios({ + method: "get", + url: "sccg/message_column/getShowColumn", + }).then((res) => { + this.colList = res.data; + }); + }, + // 鍏抽棴寮圭獥 + closeDialog({ flag, index }) { + this.dialogCreate = flag; + if (index === 1) { + // 閲嶆柊璁剧疆鏍忕洰 + this.getColumnList(); + } + }, + getType(){ + return this.type; + }, + // 鑾峰彇閮ㄩ棬鏍� + async getDepartList() { + await this.$axios({ + method: "get", + url: "sccg/depart/tree", + }).then((res) => { + res.data.forEach((item) => { + this.departList.push(this.setChildren(item)); + }); + }); + }, + + // 閫掑綊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 }); + }); + } + } + return obj; + }, + + // 閫変腑id + handleCheck(data, node) { + const checkedNodes = node.checkedNodes.filter(item => !item.children); + this.checkedList = checkedNodes.map(item => item.id); + this.tempNameArr = checkedNodes.map(item => item.departName); + this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null; + }, + + // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) + handleSubmit(mystatus) { + this.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + sendMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } else { + this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + }, + + // 閲嶇疆琛ㄥ崟 + handleReset() { + this.$refs.edit.editor.txt.clear(); + 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.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, channelCode } = this.role; + this.dialogView = true; + this.info = { + body, + head, + channelCode: + channelCode === "01" + ? "绔欏唴淇�" + : channelCode === "03" + ? "閭欢" + : "鐭俊", + messageType: this.role.messageType, + targetTo: this.tempNameArr, + targetFrom: this.sendUser + }; + } else { + this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + } + }, +}; +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: white; + + main { + text-align: left; + padding: 0 55px; + background-color: white; + + .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; + } + + .message-item__left { + width: 400px; + } + + .message-add { + &:hover { + cursor: pointer; + } + } + + .el-form-item__content :deep(.el-select) { + width: 400px; + } + + :deep(.el-input) { + width: 400px; + } + + .message-item { + display: flex; + + span { + margin-left: 20px; + color: #606266; + } + } + + .message-tip { + margin-left: 20px; + } + + :deep(.el-input--suffix) { + width: 400px; + } + + // &::v-deep .el-textarea__inner { + // //background-color: #09152f; + // //border: 1px solid #17324c; + // } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + } + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/update/index_20230104135024.vue b/.history/src/views/operate/message/myIndex/update/index_20230104135024.vue new file mode 100644 index 0000000..84d962a --- /dev/null +++ b/.history/src/views/operate/message/myIndex/update/index_20230104135024.vue @@ -0,0 +1,454 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right" :disabled="type === 'view'"> + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode"> + <el-radio-group v-model="role.channelCode"> + <el-radio label="01">绔欏唴淇�</el-radio> + <el-radio label="03">閭欢</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </el-form-item> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item v-if="role.channelCode === '01'" 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-option> + </el-select> + </div> + <span class="message-add" @click="dialogCreate = true"> + 娣诲姞鏍忕洰</span> + </div> + </el-form-item> + <!-- 娑堟伅鏍囬 --> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <div class="message-item__left"> + <el-input v-model="role.head" 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 :default-checked-keys="checkedList" node-key="id"> + </el-tree> + </el-option> + </el-select> + </div> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <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(0)" class="btn save" + v-if="type !== 'view'">淇濆瓨 + </el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit" + v-if="type !== 'view'">鍙戝竷 + </el-button> + <el-button type="primary" @click.native.prevent="handleView" class="btn submit" v-if="type !== 'view'">棰勮 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="type !== 'view'">閲嶇疆</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 MyColumnAdd from "@/views/operate/message/mycontrol/createUser"; +import MyColView from "../messageView"; +import { sendMessage, updateMessage, getMessageById ,saveMessage } from "@/api/operate/messageManagement"; + +export default { + components: { MyEditor, MyColumnAdd, MyColView }, + props: ["type", "myDataRow"], + data() { + const validateEditor = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璇疯緭鍏�')); + } + }; + return { + role: { + messageType: null, + head: "", + targetTo: "", + body: "", + channelCode: null, + }, + createRoleRules: { + messageType: [ + { + required: true, + trigger: ["blur", "change"], + message: "璇疯緭鍏ユ秷鎭爮鐩�", + }, + ], + head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }], + targetTo: [ + { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" }, + ], + body: [ + { + required: true, + validator: validateEditor + }, + ], + }, + colList: [], + departList: [], + typeList: [], + dialogCreate: false, + dialogView: false, + defaultProps: { + children: "children", + label: "departName", + }, + checkedList: [], + tempNameArr: [], + info: {}, + sendUser: "", + }; + }, + created() { + this.getColumnList(); + this.getDepartList(); + this.getLoginUserInfo(); + if (this.type !== "create" && this.myDataRow) { + getMessageById(this.myDataRow.id) + .then(res => { + this.role = res; + if (res.targetTo) { + this.checkedList = res.targetTo.split(','); + this.role.targetTo = `${this.checkedList.length}浜篳; + } + }) + .catch(err => this.$message.error(`${err}`)) + } + }, + mounted() { + if (this.type !== 'create') { + this.$refs.edit.editor.txt.append(this.myDataRow.body); + } + + }, + methods: { + // 鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then((_) => { + done(); + }); + }, + + // 鑾峰彇鏍忕洰 + async getColumnList() { + await this.$axios({ + method: "get", + url: "sccg/message_column/getShowColumn", + }).then((res) => { + this.colList = res.data; + }); + }, + // 鍏抽棴寮圭獥 + closeDialog({ flag, index }) { + this.dialogCreate = flag; + if (index === 1) { + // 閲嶆柊璁剧疆鏍忕洰 + this.getColumnList(); + } + }, + getType() { + return this.type; + }, + // 鑾峰彇閮ㄩ棬鏍� + async getDepartList() { + await this.$axios({ + method: "get", + url: "sccg/depart/tree", + }).then((res) => { + res.data.forEach((item) => { + this.departList.push(this.setChildren(item)); + }); + }); + }, + + // 閫掑綊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 }); + }); + } + } + return obj; + }, + + // 閫変腑id + handleCheck(data, node) { + const checkedNodes = node.checkedNodes.filter(item => !item.children); + this.checkedList = checkedNodes.map(item => item.id); + this.tempNameArr = checkedNodes.map(item => item.departName); + this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null; + }, + + // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) + handleSubmit(mystatus) { + this.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + if (mystatus == 0) { + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + sendMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + if (mystatus == 1) { + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + saveMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + } else { + updateMessage({ id: this.myDataRow.id, ...params + }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } +} else { + this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" }); +} + }); + }, + +// 閲嶇疆琛ㄥ崟 +handleReset() { + this.$refs.edit.editor.txt.clear(); + 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.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, channelCode } = this.role; + this.dialogView = true; + this.info = { + body, + head, + channelCode: + channelCode === "01" + ? "绔欏唴淇�" + : channelCode === "03" + ? "閭欢" + : "鐭俊", + messageType: this.role.messageType, + targetTo: this.tempNameArr, + targetFrom: this.sendUser + }; + } else { + this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); +} + }, +}; +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: white; + + main { + text-align: left; + padding: 0 55px; + background-color: white; + + .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; + } + + .message-item__left { + width: 400px; + } + + .message-add { + &:hover { + cursor: pointer; + } + } + + .el-form-item__content :deep(.el-select) { + width: 400px; + } + + :deep(.el-input) { + width: 400px; + } + + .message-item { + display: flex; + + span { + margin-left: 20px; + color: #606266; + } + } + + .message-tip { + margin-left: 20px; + } + + :deep(.el-input--suffix) { + width: 400px; + } + + // &::v-deep .el-textarea__inner { + // //background-color: #09152f; + // //border: 1px solid #17324c; + // } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + } + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/update/index_20230104135648.vue b/.history/src/views/operate/message/myIndex/update/index_20230104135648.vue new file mode 100644 index 0000000..f64f5ee --- /dev/null +++ b/.history/src/views/operate/message/myIndex/update/index_20230104135648.vue @@ -0,0 +1,522 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form + ref="user" + label-width="140px" + autoComplete="on" + :model="role" + :rules="createRoleRules" + label-position="right" + :disabled="type === 'view'" + > + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode" > + <el-radio-group v-model="role.channelCode"> + <el-radio label="01">绔欏唴淇�</el-radio> + <el-radio label="03">閭欢</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </el-form-item> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item + v-if="role.channelCode === '01'" + 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-option> + </el-select> + </div> + <span class="message-add" @click="dialogCreate = true"> + 娣诲姞鏍忕洰</span + > + </div> + </el-form-item> + <!-- 娑堟伅鏍囬 --> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <div class="message-item__left"> + <el-input + v-model="role.head" + 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 + :default-checked-keys="checkedList" + node-key="id" + > + </el-tree> + </el-option> + </el-select> + </div> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <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(0)" + class="btn save" + v-if="type !== 'view'" + >淇濆瓨 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleSubmit(1)" + class="btn submit" + v-if="type !== 'view'" + >鍙戝竷 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleView" + class="btn submit" + v-if="type !== 'view'" + >棰勮 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="type !== 'view'" + >閲嶇疆</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 MyColumnAdd from "@/views/operate/message/mycontrol/createUser"; +import MyColView from "../messageView"; +import { sendMessage, updateMessage, getMessageById } from "@/api/operate/messageManagement"; + +export default { + components: { MyEditor, MyColumnAdd, MyColView }, + props: ["type", "myDataRow"], + data() { + const validateEditor = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璇疯緭鍏�')); + } + }; + return { + role: { + messageType: null, + head: "", + targetTo: "", + body: "", + channelCode: null, + }, + createRoleRules: { + messageType: [ + { + required: true, + trigger: ["blur", "change"], + message: "璇疯緭鍏ユ秷鎭爮鐩�", + }, + ], + head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }], + targetTo: [ + { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" }, + ], + body: [ + { + required: true, + validator: validateEditor + }, + ], + }, + colList: [], + departList: [], + typeList: [], + dialogCreate: false, + dialogView: false, + defaultProps: { + children: "children", + label: "departName", + }, + checkedList: [], + tempNameArr: [], + info: {}, + sendUser: "", + }; + }, + created() { + this.getColumnList(); + this.getDepartList(); + this.getLoginUserInfo(); + if (this.type !== "create" && this.myDataRow) { + getMessageById(this.myDataRow.id) + .then(res => { + this.role = res; + if (res.targetTo) { + this.checkedList = res.targetTo.split(','); + this.role.targetTo = `${this.checkedList.length}浜篳; + } + }) + .catch(err => this.$message.error(`${err}`)) + } + }, + mounted() { + if (this.type !== 'create') { + this.$refs.edit.editor.txt.append(this.myDataRow.body); + } + + }, + methods: { + // 鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then((_) => { + done(); + }); + }, + + // 鑾峰彇鏍忕洰 + async getColumnList() { + await this.$axios({ + method: "get", + url: "sccg/message_column/getShowColumn", + }).then((res) => { + this.colList = res.data; + }); + }, + // 鍏抽棴寮圭獥 + closeDialog({ flag, index }) { + this.dialogCreate = flag; + if (index === 1) { + // 閲嶆柊璁剧疆鏍忕洰 + this.getColumnList(); + } + }, + getType(){ + return this.type; + }, + // 鑾峰彇閮ㄩ棬鏍� + async getDepartList() { + await this.$axios({ + method: "get", + url: "sccg/depart/tree", + }).then((res) => { + res.data.forEach((item) => { + this.departList.push(this.setChildren(item)); + }); + }); + }, + + // 閫掑綊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 }); + }); + } + } + return obj; + }, + + // 閫変腑id + handleCheck(data, node) { + const checkedNodes = node.checkedNodes.filter(item => !item.children); + this.checkedList = checkedNodes.map(item => item.id); + this.tempNameArr = checkedNodes.map(item => item.departName); + this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null; + }, + + // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) + handleSubmit(mystatus) { + this.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + if(mystatus==1){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + sendMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + if(mystatus==0){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + saveMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + + } else { + this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + }, + + // 閲嶇疆琛ㄥ崟 + handleReset() { + this.$refs.edit.editor.txt.clear(); + 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.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, channelCode } = this.role; + this.dialogView = true; + this.info = { + body, + head, + channelCode: + channelCode === "01" + ? "绔欏唴淇�" + : channelCode === "03" + ? "閭欢" + : "鐭俊", + messageType: this.role.messageType, + targetTo: this.tempNameArr, + targetFrom: this.sendUser + }; + } else { + this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + } + }, +}; +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: white; + + main { + text-align: left; + padding: 0 55px; + background-color: white; + + .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; + } + + .message-item__left { + width: 400px; + } + + .message-add { + &:hover { + cursor: pointer; + } + } + + .el-form-item__content :deep(.el-select) { + width: 400px; + } + + :deep(.el-input) { + width: 400px; + } + + .message-item { + display: flex; + + span { + margin-left: 20px; + color: #606266; + } + } + + .message-tip { + margin-left: 20px; + } + + :deep(.el-input--suffix) { + width: 400px; + } + + // &::v-deep .el-textarea__inner { + // //background-color: #09152f; + // //border: 1px solid #17324c; + // } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + } + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/update/index_20230104135738.vue b/.history/src/views/operate/message/myIndex/update/index_20230104135738.vue new file mode 100644 index 0000000..49db483 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/update/index_20230104135738.vue @@ -0,0 +1,523 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form + ref="user" + label-width="140px" + autoComplete="on" + :model="role" + :rules="createRoleRules" + label-position="right" + :disabled="type === 'view'" + > + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode" > + <el-radio-group v-model="role.channelCode"> + <el-radio label="01">绔欏唴淇�</el-radio> + <el-radio label="03">閭欢</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </el-form-item> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item + v-if="role.channelCode === '01'" + 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-option> + </el-select> + </div> + <span class="message-add" @click="dialogCreate = true"> + 娣诲姞鏍忕洰</span + > + </div> + </el-form-item> + <!-- 娑堟伅鏍囬 --> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <div class="message-item__left"> + <el-input + v-model="role.head" + 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 + :default-checked-keys="checkedList" + node-key="id" + > + </el-tree> + </el-option> + </el-select> + </div> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <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(0)" + class="btn save" + v-if="type !== 'view'" + >淇濆瓨 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleSubmit(1)" + class="btn submit" + v-if="type !== 'view'" + >鍙戝竷 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleView" + class="btn submit" + v-if="type !== 'view'" + >棰勮 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="type !== 'view'" + >閲嶇疆</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 MyColumnAdd from "@/views/operate/message/mycontrol/createUser"; +import MyColView from "../messageView"; +import { sendMessage, updateMessage, getMessageById } from "@/api/operate/messageManagement"; + +export default { + components: { MyEditor, MyColumnAdd, MyColView }, + props: ["type", "myDataRow"], + data() { + const validateEditor = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璇疯緭鍏�')); + } + }; + return { + role: { + messageType: null, + head: "", + targetTo: "", + body: "", + channelCode: null, + }, + createRoleRules: { + messageType: [ + { + required: true, + trigger: ["blur", "change"], + message: "璇疯緭鍏ユ秷鎭爮鐩�", + }, + ], + head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }], + targetTo: [ + { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" }, + ], + body: [ + { + required: true, + validator: validateEditor + }, + ], + }, + colList: [], + departList: [], + typeList: [], + dialogCreate: false, + dialogView: false, + defaultProps: { + children: "children", + label: "departName", + }, + checkedList: [], + tempNameArr: [], + info: {}, + sendUser: "", + }; + }, + created() { + this.getColumnList(); + this.getDepartList(); + this.getLoginUserInfo(); + if (this.type !== "create" && this.myDataRow) { + getMessageById(this.myDataRow.id) + .then(res => { + this.role = res; + if (res.targetTo) { + this.checkedList = res.targetTo.split(','); + this.role.targetTo = `${this.checkedList.length}浜篳; + } + }) + .catch(err => this.$message.error(`${err}`)) + } + }, + mounted() { + if (this.type !== 'create') { + this.$refs.edit.editor.txt.append(this.myDataRow.body); + } + + }, + methods: { + // 鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then((_) => { + done(); + }); + }, + + // 鑾峰彇鏍忕洰 + async getColumnList() { + await this.$axios({ + method: "get", + url: "sccg/message_column/getShowColumn", + }).then((res) => { + this.colList = res.data; + }); + }, + // 鍏抽棴寮圭獥 + closeDialog({ flag, index }) { + this.dialogCreate = flag; + if (index === 1) { + // 閲嶆柊璁剧疆鏍忕洰 + this.getColumnList(); + } + }, + getType(){ + return this.type; + }, + // 鑾峰彇閮ㄩ棬鏍� + async getDepartList() { + await this.$axios({ + method: "get", + url: "sccg/depart/tree", + }).then((res) => { + res.data.forEach((item) => { + this.departList.push(this.setChildren(item)); + }); + }); + }, + + // 閫掑綊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 }); + }); + } + } + return obj; + }, + + // 閫変腑id + handleCheck(data, node) { + const checkedNodes = node.checkedNodes.filter(item => !item.children); + this.checkedList = checkedNodes.map(item => item.id); + this.tempNameArr = checkedNodes.map(item => item.departName); + this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null; + }, + + // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) + handleSubmit(mystatus) { + debugger; + this.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + if(mystatus==1){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + sendMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + if(mystatus==0){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + saveMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + + } else { + this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + }, + + // 閲嶇疆琛ㄥ崟 + handleReset() { + this.$refs.edit.editor.txt.clear(); + 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.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, channelCode } = this.role; + this.dialogView = true; + this.info = { + body, + head, + channelCode: + channelCode === "01" + ? "绔欏唴淇�" + : channelCode === "03" + ? "閭欢" + : "鐭俊", + messageType: this.role.messageType, + targetTo: this.tempNameArr, + targetFrom: this.sendUser + }; + } else { + this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + } + }, +}; +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: white; + + main { + text-align: left; + padding: 0 55px; + background-color: white; + + .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; + } + + .message-item__left { + width: 400px; + } + + .message-add { + &:hover { + cursor: pointer; + } + } + + .el-form-item__content :deep(.el-select) { + width: 400px; + } + + :deep(.el-input) { + width: 400px; + } + + .message-item { + display: flex; + + span { + margin-left: 20px; + color: #606266; + } + } + + .message-tip { + margin-left: 20px; + } + + :deep(.el-input--suffix) { + width: 400px; + } + + // &::v-deep .el-textarea__inner { + // //background-color: #09152f; + // //border: 1px solid #17324c; + // } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + } + } +} +</style> diff --git a/.history/src/views/operate/message/myIndex/update/index_20230104135855.vue b/.history/src/views/operate/message/myIndex/update/index_20230104135855.vue new file mode 100644 index 0000000..8bdd313 --- /dev/null +++ b/.history/src/views/operate/message/myIndex/update/index_20230104135855.vue @@ -0,0 +1,523 @@ +<template> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form + ref="user" + label-width="140px" + autoComplete="on" + :model="role" + :rules="createRoleRules" + label-position="right" + :disabled="type === 'view'" + > + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode" > + <el-radio-group v-model="role.channelCode"> + <el-radio label="01">绔欏唴淇�</el-radio> + <el-radio label="03">閭欢</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </el-form-item> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item + v-if="role.channelCode === '01'" + 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-option> + </el-select> + </div> + <span class="message-add" @click="dialogCreate = true"> + 娣诲姞鏍忕洰</span + > + </div> + </el-form-item> + <!-- 娑堟伅鏍囬 --> + <el-form-item class="optionItems" label="娑堟伅鏍囬:" prop="head"> + <div class="message-item__left"> + <el-input + v-model="role.head" + 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 + :default-checked-keys="checkedList" + node-key="id" + > + </el-tree> + </el-option> + </el-select> + </div> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <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(0)" + class="btn save" + v-if="type !== 'view'" + >淇濆瓨 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleSubmit(1)" + class="btn submit" + v-if="type !== 'view'" + >鍙戝竷 + </el-button> + <el-button + type="primary" + @click.native.prevent="handleView" + class="btn submit" + v-if="type !== 'view'" + >棰勮 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset" v-if="type !== 'view'" + >閲嶇疆</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 MyColumnAdd from "@/views/operate/message/mycontrol/createUser"; +import MyColView from "../messageView"; +import { sendMessage, updateMessage, getMessageById,saveMessage } from "@/api/operate/messageManagement"; + +export default { + components: { MyEditor, MyColumnAdd, MyColView }, + props: ["type", "myDataRow"], + data() { + const validateEditor = (rule, value, callback) => { + if (value) { + callback(); + } else { + callback(new Error('璇疯緭鍏�')); + } + }; + return { + role: { + messageType: null, + head: "", + targetTo: "", + body: "", + channelCode: null, + }, + createRoleRules: { + messageType: [ + { + required: true, + trigger: ["blur", "change"], + message: "璇疯緭鍏ユ秷鎭爮鐩�", + }, + ], + head: [{ required: true, trigger: "blur", message: "璇烽�夋嫨娑堟伅鏍囬" }], + targetTo: [ + { required: true, trigger: "blur", message: "璇烽�夋嫨鎺ュ彈瀵硅薄" }, + ], + body: [ + { + required: true, + validator: validateEditor + }, + ], + }, + colList: [], + departList: [], + typeList: [], + dialogCreate: false, + dialogView: false, + defaultProps: { + children: "children", + label: "departName", + }, + checkedList: [], + tempNameArr: [], + info: {}, + sendUser: "", + }; + }, + created() { + this.getColumnList(); + this.getDepartList(); + this.getLoginUserInfo(); + if (this.type !== "create" && this.myDataRow) { + getMessageById(this.myDataRow.id) + .then(res => { + this.role = res; + if (res.targetTo) { + this.checkedList = res.targetTo.split(','); + this.role.targetTo = `${this.checkedList.length}浜篳; + } + }) + .catch(err => this.$message.error(`${err}`)) + } + }, + mounted() { + if (this.type !== 'create') { + this.$refs.edit.editor.txt.append(this.myDataRow.body); + } + + }, + methods: { + // 鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then((_) => { + done(); + }); + }, + + // 鑾峰彇鏍忕洰 + async getColumnList() { + await this.$axios({ + method: "get", + url: "sccg/message_column/getShowColumn", + }).then((res) => { + this.colList = res.data; + }); + }, + // 鍏抽棴寮圭獥 + closeDialog({ flag, index }) { + this.dialogCreate = flag; + if (index === 1) { + // 閲嶆柊璁剧疆鏍忕洰 + this.getColumnList(); + } + }, + getType(){ + return this.type; + }, + // 鑾峰彇閮ㄩ棬鏍� + async getDepartList() { + await this.$axios({ + method: "get", + url: "sccg/depart/tree", + }).then((res) => { + res.data.forEach((item) => { + this.departList.push(this.setChildren(item)); + }); + }); + }, + + // 閫掑綊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 }); + }); + } + } + return obj; + }, + + // 閫変腑id + handleCheck(data, node) { + const checkedNodes = node.checkedNodes.filter(item => !item.children); + this.checkedList = checkedNodes.map(item => item.id); + this.tempNameArr = checkedNodes.map(item => item.departName); + this.role.targetTo = this.checkedList.length ? this.checkedList.length + "浜�" : null; + }, + + // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) + handleSubmit(mystatus) { + debugger; + this.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + if(mystatus==1){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + sendMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + if(mystatus==0){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + saveMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + + } else { + this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + }, + + // 閲嶇疆琛ㄥ崟 + handleReset() { + this.$refs.edit.editor.txt.clear(); + 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.role.body = this.$refs.edit.editor.txt.html(); + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, channelCode } = this.role; + this.dialogView = true; + this.info = { + body, + head, + channelCode: + channelCode === "01" + ? "绔欏唴淇�" + : channelCode === "03" + ? "閭欢" + : "鐭俊", + messageType: this.role.messageType, + targetTo: this.tempNameArr, + targetFrom: this.sendUser + }; + } else { + this.$message({ type: "warning", message: "璇锋鏌ュ繀濉」" }); + } + }); + } + }, +}; +</script> +<style lang="scss" scoped> +.createUser { + border-radius: 1px; + background-color: white; + + main { + text-align: left; + padding: 0 55px; + background-color: white; + + .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; + } + + .message-item__left { + width: 400px; + } + + .message-add { + &:hover { + cursor: pointer; + } + } + + .el-form-item__content :deep(.el-select) { + width: 400px; + } + + :deep(.el-input) { + width: 400px; + } + + .message-item { + display: flex; + + span { + margin-left: 20px; + color: #606266; + } + } + + .message-tip { + margin-left: 20px; + } + + :deep(.el-input--suffix) { + width: 400px; + } + + // &::v-deep .el-textarea__inner { + // //background-color: #09152f; + // //border: 1px solid #17324c; + // } + + .el-form-item__content { + width: 400px; + + .el-select { + width: 100%; + } + } + + .optionHandleSp { + display: flex; + + .areaNumber, + .moreNumber { + flex: 1; + } + + .telNumber { + flex: 2; + } + } + + .optionBtn { + display: flex; + margin-top: 20px; + + .btn { + padding: 12px 50px; + } + } + } + } +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104104607.vue b/.history/src/views/operate/sms/smsIndex/index_20230104104607.vue new file mode 100644 index 0000000..a57d77a --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104104607.vue @@ -0,0 +1,644 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template slot-scope="scope"> + <span>{{ + statusList.find((item) => item.value === scope.row.status).label + }}</span> + </template> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + { + value: 1, + label: "鎵归噺鍚敤", + }, + { + value: 2, + label: "鎵归噺绂佺敤", + }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + }, + { + label: "宸插彂甯�", + value: 1, + }, + { + label: "鏈彂甯�", + value: 0, + }, + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 1) { + return; + } + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104105114.vue b/.history/src/views/operate/sms/smsIndex/index_20230104105114.vue new file mode 100644 index 0000000..4c73561 --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104105114.vue @@ -0,0 +1,636 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> + <template slot-scope="scope"> + <span>{{ + statusList.find((item) => item.value === scope.row.status).label + }}</span> + </template> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + { + value: 1, + label: "鎵归噺鍚敤", + }, + { + value: 2, + label: "鎵归噺绂佺敤", + }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 1) { + return; + } + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104105237.vue b/.history/src/views/operate/sms/smsIndex/index_20230104105237.vue new file mode 100644 index 0000000..4e241b7 --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104105237.vue @@ -0,0 +1,631 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + { + value: 1, + label: "鎵归噺鍚敤", + }, + { + value: 2, + label: "鎵归噺绂佺敤", + }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 1) { + return; + } + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104105347.vue b/.history/src/views/operate/sms/smsIndex/index_20230104105347.vue new file mode 100644 index 0000000..ec42d5d --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104105347.vue @@ -0,0 +1,631 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="createUser" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + { + value: 1, + label: "鎵归噺鍚敤", + }, + { + value: 2, + label: "鎵归噺绂佺敤", + }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 1) { + return; + } + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104105428.vue b/.history/src/views/operate/sms/smsIndex/index_20230104105428.vue new file mode 100644 index 0000000..4566bd1 --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104105428.vue @@ -0,0 +1,631 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="createUser" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + // { + // value: 1, + // label: "鎵归噺鍚敤", + // }, + // { + // value: 2, + // label: "鎵归噺绂佺敤", + // }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 1) { + return; + } + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104110238.vue b/.history/src/views/operate/sms/smsIndex/index_20230104110238.vue new file mode 100644 index 0000000..c3c9330 --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104110238.vue @@ -0,0 +1,633 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="createUser" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + // { + // value: 1, + // label: "鎵归噺鍚敤", + // }, + // { + // value: 2, + // label: "鎵归噺绂佺敤", + // }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 2) { + return; + } + data.createTime='', + data.sendTime='', + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104110359.vue b/.history/src/views/operate/sms/smsIndex/index_20230104110359.vue new file mode 100644 index 0000000..28c4d71 --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104110359.vue @@ -0,0 +1,634 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="createUser" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + // { + // value: 1, + // label: "鎵归噺鍚敤", + // }, + // { + // value: 2, + // label: "鎵归噺绂佺敤", + // }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 2) { + return; + } + data.createTime='', + data.sendTime='', + data.createUser=null, + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/src/views/operate/sms/smsIndex/index_20230104111808.vue b/.history/src/views/operate/sms/smsIndex/index_20230104111808.vue new file mode 100644 index 0000000..f0ddc49 --- /dev/null +++ b/.history/src/views/operate/sms/smsIndex/index_20230104111808.vue @@ -0,0 +1,634 @@ +<template> + <div class="userList"> + <header> + <div class="header-nav"> + <span class="nav-left">鏁版嵁绛涢��</span> + </div> + <div class="header-content"> + <div class="search"> + <span>杈撳叆鏌ヨ:</span> + <el-input placeholder="娑堟伅鏍囬" v-model="context"></el-input> + </div> + <div class="message-status"> + <span>鐭俊鍥炴墽:</span> + <el-select v-model="messageStatus" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in statusList" + :key="item.value" + :label="item.label" + :value="item.label" + > + </el-option> + </el-select> + </div> + <div class="find"> + <el-button type="primary" icon="el-icon-search" @click="getTableData" + >鏌ヨ + </el-button + > + <el-button icon="el-icon-delete-solid" @click="handleReset" + >閲嶇疆 + </el-button + > + </div> + </div> + </header> + <main> + <div class="mainContent"> + <div class="main-nav"> + <span>鏁版嵁鍒楄〃</span> + <el-button + class="button-addition" + type="primary" + icon="el-icon-plus" + @click="isShowDialog = true" + >娣诲姞 + </el-button + > + </div> + <!-- 鏁版嵁灞曠ず --> + <el-table + ref="multipleTable" + :header-cell-style="{ + // background: '#06122c', + 'font-size': '12px', + color: '#606266', + 'font-weight': '650', + 'line-height': '45px', + }" + :data="tableData" + style="width: 100%" + :row-class-name="tableRowClassName" + @selection-change="tableChange" + > + <el-table-column type="selection" min-width="5"></el-table-column> + <el-table-column label="ID" min-width="5" prop="id"> + <template slot-scope="scope">{{ scope.row.id }}</template> + </el-table-column> + <el-table-column prop="head" label="鏍囬" min-width="10"> + </el-table-column> + <el-table-column prop="createTime" label="鍙戦�佹椂闂�" min-width="10"> + </el-table-column> + <el-table-column prop="targetFrom" label="鍙戦�佽处鍙�" min-width="15"> + </el-table-column> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> + <template slot-scope="scope"> + <div class="operation"> + <el-link + class="leftPx" + icon="el-icon-delete-solid" + :underline="false" + @click="handleDelete([scope.row.id])" + >鍒犻櫎 + </el-link + > + <el-link + icon="el-icon-edit" + class="leftPx" + :underline="false" + @click="resend(scope.row)" + >閲嶆柊鍙戦�� + </el-link + > + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏂板缓娑堟伅 --> + <el-dialog + title="鏂板缓娑堟伅" + :destroy-on-close="true" + :key="dialogType" + :visible.sync="isShowDialog" + width="80%" + :before-close="handleConfirmClose" + > + <MyCreate @closeMyDialog="closeDialog" :type="dialogType"></MyCreate> + </el-dialog> + <div class="tools"> + <div class="funs"> + <div class="funsItem funs-sp"> + <el-checkbox v-model="all" @change="selectAll()" + >鍏ㄩ�� + </el-checkbox + > + </div> + <div class="funsItem funs-sp"> + <el-checkbox v-model="unsame" @change="disSame(tableData)" + >鍙嶉�� + </el-checkbox + > + </div> + <div class="funsItem"> + <el-select + v-model="myIdx" + placeholder="鎵归噺鎿嶄綔" + @change="selectChange" + > + <el-option + v-for="item in options" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + </div> + <div class="pagination"> + <el-pagination + background + :current-page="currentPage" + layout="prev, pager, next" + :total="totalNum" + :page-size="pageSize" + @current-change="changeCurrentPage" + > + </el-pagination> + </div> + </div> + </div> + </main> + </div> +</template> +<script> +import helper from "@/utils/mydate"; +import MyCreate from "./createSms"; +import { + getMessageList, + deleteMessage, + sendMessage, +} from "@/api/operate/messageManagement"; + +export default { + components: { + MyCreate, + }, + data() { + return { + tableData: [], + context: null, + isShowDialog: false, + totalNum: null, + pageSize: 10, + currentPage: 1, + all: false, + unsame: false, + myIdx: 0, + preMyIdx: 0, + options: [ + { + value: 0, + label: "鎵归噺鎿嶄綔", + disabled: true, + }, + // { + // value: 1, + // label: "鎵归噺鍚敤", + // }, + // { + // value: 2, + // label: "鎵归噺绂佺敤", + // }, + { + value: 3, + label: "鎵归噺鍒犻櫎", + }, + ], + tempList: [], + messageStatus: "鍏ㄩ儴", + messageKind: "00", + statusList: [ + { + label: "鍙戦�佸け璐�", + value: 3, + }, + { + label: "鍙戦�佹垚鍔�", + value: 2, + } + ], + kindList: [ + { + id: "00", + columnName: "鍏ㄩ儴", + }, + { + id: "01", + columnName: "绔欏唴淇�", + }, + { + id: "02", + columnName: "閭欢", + }, + { + id: "03", + columnName: "鐭俊", + }, + ], + dialogType: "", + }; + }, + created() { + this.getTableData(); + }, + methods: { + // 閲嶇疆 + handleReset() { + this.context = null; + this.currentPage = 1; + this.messageStatus = "鍏ㄩ儴"; + this.getTableData(); + }, + // 鍒犻櫎淇℃伅 + handleDelete(ids) { + this.$confirm("纭鍒犻櫎?").then(() => { + deleteMessage({ids: ids.join(",")}) + .then(() => { + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + this.getTableData(); + }) + .catch((err) => this.$message({type: "error", message: err})); + }); + }, + + getTableData() { + const respondResult = + this.messageStatus === "鍏ㄩ儴" ? null : this.messageStatus; + getMessageList({ + channelCode: "02", + current: this.currentPage, + respondResult, + pageSize: this.pageSize, + head: this.context, + }) + .then(({records, total}) => { + this.tableData = records; + this.totalNum = total; + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }, + + resend(data) { + if (data.status === 2) { + return; + } + data.createTime='', + data.sendTime='', + data.createUser=null, + sendMessage(data) + .then(() => { + this.$message.success("鎿嶄綔鎴愬姛"); + this.getTableData(); + }) + .catch((err) => this.$message.error(`${err}`)); + }, + + // 鎵归噺涓嬫媺妗嗘搷浣� + async selectChange(list) { + if (this.tempList.length !== 0) { + this.preMyIdx = list; + if (list === 3) { + await this.handleDelete(this.tempList); + } else if (list === 2) { + await this.mulUpdateStatus(this.tempList, 0); + } else { + await this.mulUpdateStatus(this.tempList, 1); + } + this.myIdx = 0; + } else { + this.myIdx = this.preMyIdx; + this.$message({ + type: "warning", + message: "鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁", + }); + } + }, + // 鎵归噺鎿嶄綔 + mulUpdateStatus(idArr, flag) { + this.$confirm( + flag === 1 + ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" + : "鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?" + ) + .then((_) => { + this.$axios({ + method: "post", + url: "sccg/role/updateStatusBatch?ids=" + idArr + "&status=" + flag, + }) + .then(() => { + this.getTableData(); + this.$message({type: "success", message: "鎿嶄綔鎴愬姛"}); + }) + .catch((err) => { + this.$message({type: "error", message: err}); + }); + }) + .catch((err) => { + }); + }, + // 琛ㄦ牸鐩戝惉 + tableChange(list) { + this.tempList = []; + list.forEach((item) => { + this.tempList.push(item.id); + }); + this.all = list.length === this.tableData.length; + }, + // 淇敼鏃堕棿鏍煎紡 + changeTime({updateTime}) { + return helper(updateTime); + }, + // 鍏ㄩ�� + selectAll() { + this.$refs.multipleTable.toggleAllSelection(); + }, + // 鍙嶉�� + disSame(list) { + list.forEach((row) => { + this.$refs.multipleTable.toggleRowSelection(row); + }); + }, + // 璁剧疆琛ㄦ牸鏂戦┈绾� + tableRowClassName({row, rowIndex}) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; + } + }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� + changeCurrentPage(page) { + this.currentPage = page; + this.getTableData(); + }, + // 纭鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm("纭鍏抽棴?").then(() => { + done(); + }); + }, + // 鑷畾涔夊叧闂脊绐� + closeDialog() { + this.isShowDialog = false; + this.getTableData(); + }, + }, +}; +</script> +<style lang="scss" scoped> +.userList { + text-align: left; + margin: 10px 20px; + color: #606266; + + header { + background-color: white; + + .header-nav { + line-height: 40px; + padding: 0 30px; + display: flex; + justify-content: space-between; + font-weight: 650; + } + + .header-content { + padding: 0 40px; + display: flex; + line-height: 100px; + // justify-content: space-between; + align-items: center; + + span { + min-width: 120px; + padding-left: 15px; + } + + .search, + .message-status, + .message-kind { + display: flex; + justify-content: flex-start; + + span { + flex: 1; + } + + .el-input { + flex: 2; + color: #606266; + + //&::v-deep .el-input__inner { + // background-color: #09152f; + // border: 1px solid #17324c; + //} + } + } + + .find { + margin-left: 15px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + margin-top: -2px; + + .el-button { + padding: 12px 25px; + border-radius: 20px; + } + } + } + } + + main { + background-color: white; + margin-top: 20px; + padding-bottom: 50px; + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .mainTitle { + line-height: 60px; + } + + .main-nav { + line-height: 40px; + display: flex; + padding: 10px; + justify-content: space-between; + } + + .tools { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 20px; + + .funs { + display: flex; + + .funs-sp { + border: 1px solid #17324c; + } + + .funsItem { + line-height: 28px; + display: flex; + align-items: center; + + border-radius: 4px; + font-size: 12px; + margin-left: 10px; + + .el-checkbox { + width: 80px; + padding: 0 10px; + } + + .el-select { + width: 120px; + } + + //&::v-deep .el-input__inner { + // border: none; + // background-color: #09152f; + //} + + &:hover { + border: 1px solid #4b9bb7; + } + + &:hover .el-checkbox { + color: #4b9bb7; + } + } + } + + .pagination { + margin-top: 50px; + display: flex; + line-height: 50px; + justify-content: center; + + //.el-pagination { + // &::v-deep li, + // &::v-deep .btn-prev, + // &::v-deep .btn-next { + // background-color: #071f39; + // color: #4b9bb7; + // } + // + // &::v-deep .active { + // background-color: #409eff; + // color: #fff; + // } + //} + } + } + + .el-table { + // color: #606266; + // font-size: 10px; + + //&::v-deep .el-table__empty-block { + // background-color: #09152f; + //} + // + //&::v-deep .el-table__empty-block { + // color: #4b9bb7; + //} + + .operation { + display: flex; + + .line { + padding: 0 5px; + } + + span:hover { + cursor: pointer; + } + } + } + + //.el-table::v-deep .warning-row { + // background: #06122c; + //} + // + //.el-table::v-deep .success-row { + // background: #071f39; + //} + + //&::v-deep .switchStyle .el-switch__label { + // position: absolute; + // display: none; + // color: #fff; + //} + // + //&::v-deep .el-switch__core { + // background-color: rgba(166, 166, 166, 1); + //} + // + //&::v-deep .switchStyle .el-switch__label--left { + // z-index: 9; + // left: 20px; + //} + // + //&::v-deep .switchStyle .el-switch__label--right { + // z-index: 9; + // left: 4px; + //} + // + //&::v-deep .switchStyle .el-switch__label.is-active { + // display: block; + //} + // + //&::v-deep .switchStyle.el-switch .el-switch__core, + //&::v-deep .el-switch .el-switch__label { + // width: 50px !important; + //} + } + + //&::v-deep .el-dialog__header, + //&::v-deep .el-dialog__body { + // background-color: #06122c; + //} + // + //&::v-deep .el-dialog__header { + // display: flex; + // align-items: center; + // background-color: #fff; + // padding: 20px; + // line-height: 60px; + //} + // + //&::v-deep .el-dialog__title { + // color: #4b9bb7; + //} + // + //&::v-deep .el-dialog__close { + // width: 20px; + // height: 20px; + // // color: #fff; + //} + // + //&::v-deep .el-dialog__body { + // padding: 0; + //} +} +</style> diff --git a/.history/vue.config_20230104105558.js b/.history/vue.config_20230104105558.js new file mode 100644 index 0000000..f3a4d14 --- /dev/null +++ b/.history/vue.config_20230104105558.js @@ -0,0 +1,130 @@ +// const { defineConfig } = require('@vue/cli-service') +// module.exports = defineConfig({ +// transpileDependencies: true +// }) +const path = require('path') + +function resolve(dir) { + return path.join(__dirname, dir) +} + +const CompressionPlugin = require('compression-webpack-plugin') + +const name = process.env.VUE_APP_TITLE || '閬傛槍鎵ф硶骞冲彴' // 缃戦〉鏍囬 + +const port = process.env.port || process.env.npm_config_port || 80 // 绔彛 + +module.exports = { + // 閮ㄧ讲鐢熶骇鐜鍜屽紑鍙戠幆澧冧笅鐨刄RL銆� + // 榛樿鎯呭喌涓嬶紝Vue CLI 浼氬亣璁句綘鐨勫簲鐢ㄦ槸琚儴缃插湪涓�涓煙鍚嶇殑鏍硅矾寰勪笂 + // 渚嬪 https://www.ruoyi.vip/銆傚鏋滃簲鐢ㄨ閮ㄧ讲鍦ㄤ竴涓瓙璺緞涓婏紝浣犲氨闇�瑕佺敤杩欎釜閫夐」鎸囧畾杩欎釜瀛愯矾寰勩�備緥濡傦紝濡傛灉浣犵殑搴旂敤琚儴缃插湪 https://www.ruoyi.vip/admin/锛屽垯璁剧疆 baseUrl 涓� /admin/銆� + publicPath: process.env.NODE_ENV === "production" ? "/" : "/", + // 鍦╪pm run build 鎴� yarn build 鏃� 锛岀敓鎴愭枃浠剁殑鐩綍鍚嶇О锛堣鍜宐aseUrl鐨勭敓浜х幆澧冭矾寰勪竴鑷达級锛堥粯璁ist锛� + outputDir: 'dist', + // 鐢ㄤ簬鏀剧疆鐢熸垚鐨勯潤鎬佽祫婧� (js銆乧ss銆乮mg銆乫onts) 鐨勶紱锛堥」鐩墦鍖呬箣鍚庯紝闈欐�佽祫婧愪細鏀惧湪杩欎釜鏂囦欢澶逛笅锛� + assetsDir: 'static', + // 鏄惁寮�鍚痚slint淇濆瓨妫�娴嬶紝鏈夋晥鍊硷細ture | false | 'error' + // lintOnSave: process.env.NODE_ENV === 'development', + lintOnSave:false, + // 濡傛灉浣犱笉闇�瑕佺敓浜х幆澧冪殑 source map锛屽彲浠ュ皢鍏惰缃负 false 浠ュ姞閫熺敓浜х幆澧冩瀯寤恒�� + productionSourceMap: false, + // webpack-dev-server 鐩稿叧閰嶇疆 + devServer: { + host: 'localhost', + port: port, + open: true, + headers: { + "Access-Control-Allow-Origin": "*", + }, + proxy: { + // 璺ㄥ煙閰嶇疆 + "/sccg": { + // target: `http://42.193.1.25/`, + target: `http://127.0.0.1:8082/`, + changeOrigin: true + } + }, + // disableHostCheck: true + }, + css: { + loaderOptions: { + sass: { + sassOptions: { outputStyle: "expanded" } + } + } + }, + configureWebpack: { + name: name, + resolve: { + alias: { + '@': resolve('src') + } + }, + plugins: [ + //#浣跨敤gzip瑙e帇缂╅潤鎬佹枃浠� + new CompressionPlugin({ + cache: false, // 涓嶅惎鐢ㄦ枃浠剁紦瀛� + test: /\.(js|css|html)?$/i, // 鍘嬬缉鏂囦欢鏍煎紡 + filename: '[path].gz[query]', // 鍘嬬缉鍚庣殑鏂囦欢鍚� + algorithm: 'gzip', // 浣跨敤gzip鍘嬬缉 + minRatio: 0.8 // 鍘嬬缉鐜囧皬浜�1鎵嶄細鍘嬬缉 + }) + ], + }, + chainWebpack(config) { + config.plugins.delete('preload') // TODO: need test + config.plugins.delete('prefetch') // TODO: need test + + // set svg-sprite-loader + config.module + .rule('svg') + .exclude.add(resolve('src/assets/icons')) + .end() + config.module + .rule('icons') + .test(/\.svg$/) + .include.add(resolve('src/assets/icons')) + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]' + }) + .end() + + config + .when(process.env.NODE_ENV !== 'development', + config => { + config + .optimization.splitChunks({ + chunks: 'all', + cacheGroups: { + libs: { + name: 'chunk-libs', + test: /[\\/]node_modules[\\/]/, + priority: 10, + chunks: 'initial' // only package third parties that are initially dependent + }, + elementUI: { + name: 'chunk-elementUI', // split elementUI into a single package + priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app + test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm + }, + commons: { + name: 'chunk-commons', + test: resolve('src/components'), // can customize your rules + minChunks: 3, // minimum common number + priority: 5, + reuseExistingChunk: true + } + } + }) + config.optimization.runtimeChunk('single'), + { + from: path.resolve(__dirname, './public/robots.txt'), //闃茬埇铏枃浠� + to: './' //鍒版牴鐩綍涓� + } + } + ) + } +} diff --git a/src/api/operate/messageManagement.js b/src/api/operate/messageManagement.js index ab03b98..c9a3fa0 100644 --- a/src/api/operate/messageManagement.js +++ b/src/api/operate/messageManagement.js @@ -16,6 +16,10 @@ return http.post('/sccg/message/sendMessage', params); } +export function saveMessage(params) { + return http.post('/sccg/message/saveMessage', params); +} + export function updateMessage(params) { return http.post('/sccg/message/update', params); } \ No newline at end of file diff --git a/src/views/intelligentPatrol/illegalSearch/index.vue b/src/views/intelligentPatrol/illegalSearch/index.vue index 6a94151..5057ac6 100644 --- a/src/views/intelligentPatrol/illegalSearch/index.vue +++ b/src/views/intelligentPatrol/illegalSearch/index.vue @@ -187,6 +187,7 @@ value: '', placeholder: '璇疯緭鍏ュ鏍哥姸鎬�', type: 'select', + prop: 'state', options: [{ id: 7, name: '鏈鏍�' }, { id: 8, name: '宸茬粡瀹℃牳' }, { id: 9, name: '缁撴' }] }, { diff --git a/src/views/operate/message/myIndex/index.vue b/src/views/operate/message/myIndex/index.vue index 87b011c..d74344d 100644 --- a/src/views/operate/message/myIndex/index.vue +++ b/src/views/operate/message/myIndex/index.vue @@ -24,8 +24,9 @@ </el-select> </div> <div class="search"> - <span>鍒涘缓鏃堕棿:</span> - <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> + <span>鍒涘缓鏃堕棿:</span> + <el-date-picker style="width: 200px" type="datetimerange" v-model="datetime" + value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker> </div> <div class="find"> <el-button type="primary" icon="el-icon-search" @click="handleSearch">鏌ヨ</el-button> @@ -37,13 +38,13 @@ <div class="mainContent"> <div class="main-nav"> <span>鏁版嵁鍒楄〃</span> - <el-button class="button-addition" type="primary" icon="el-icon-plus" @click="handleOpera(null, 'create')">娣诲姞</el-button> + <el-button class="button-addition" type="primary" icon="el-icon-plus" + @click="handleOpera(null, 'create')">娣诲姞</el-button> </div> <!-- 鏁版嵁灞曠ず --> <el-table ref="multipleTable" - :header-cell-style="{background:'white','font-weight':'650','line-height':'45px'}" - :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" - @selection-change="tableChange"> + :header-cell-style="{ background: 'white', 'font-weight': '650', 'line-height': '45px' }" :data="tableData" + style="width: 100%" :row-class-name="tableRowClassName" @selection-change="tableChange"> <el-table-column type="selection" min-width="5"> </el-table-column> <el-table-column label="ID" min-width="5"> @@ -53,20 +54,22 @@ </el-table-column> <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10"> </el-table-column> - <el-table-column prop="createUser" label="鍙戝竷浜哄憳" min-width="15"> + <el-table-column prop="targetFrom" label="鍙戝竷浜哄憳" min-width="15"> </el-table-column> <el-table-column prop="messageTypeName" label="娑堟伅鏍忕洰" min-width="10"> </el-table-column> <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> - <template v-if="scope.row.status" slot-scope="scope"> - {{scope.row.status === 0 ? '鏈彂甯�' :'宸插彂甯�'}} + <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"> - <el-link icon="el-icon-view" :underline="false" @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> - <el-link icon="el-icon-edit" class="leftPx" :underline="false" @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> + <el-link icon="el-icon-view" :underline="false" + @click="handleOpera(scope.row, 'view')">鏌ョ湅</el-link> + <el-link icon="el-icon-edit" class="leftPx" :underline="false" + @click="handleOpera(scope.row, 'update')">缂栬緫</el-link> <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete([scope.row.id])">鍒犻櫎</el-link> </div> @@ -74,8 +77,10 @@ </el-table-column> </el-table> <!-- 鏂板缓娑堟伅 --> - <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" :visible.sync="isShowDialog" width="80%"> - <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" :myDataRow="tableRowData"></my-edit> + <el-dialog :destroy-on-close="true" :key="dialogType" :title="getDialogTitle" + :visible.sync="isShowDialog" width="80%"> + <my-edit v-if="isShowDialog" @closeMyDialog="closeDialog" :type="dialogType" + :myDataRow="tableRowData"></my-edit> </el-dialog> <!-- tools --> <div class="tools"> @@ -112,19 +117,19 @@ export default { components: { MyView, MyEdit }, computed: { - getDialogTitle() { - if (this.dialogType === 'create') { - return '鍒涘缓'; - } + getDialogTitle() { + if (this.dialogType === 'create') { + return '鍒涘缓'; + } - if (this.dialogType === 'update') { - return '鏇存柊'; - } + if (this.dialogType === 'update') { + return '鏇存柊'; + } - if (this.dialogType === 'view') { - return '鏌ョ湅'; + if (this.dialogType === 'view') { + return '鏌ョ湅'; + } } - } }, data() { return { @@ -180,44 +185,44 @@ ], typeList: [ { - id:'00', - columnName:'鍏ㄩ儴', + id: '00', + columnName: '鍏ㄩ儴', }, { - id:'01', - columnName:'绔欏唴淇�', + id: '01', + columnName: '绔欏唴淇�', }, { - id:'03', - columnName:'閭欢', + id: '03', + columnName: '閭欢', }, { - id:'02', - columnName:'鐭俊', + id: '02', + columnName: '鐭俊', } ] } }, created() { - this.getMessageList(); + this.getMessageList(); }, methods: { // 鏌ヨ - handleSearch(){ + handleSearch() { this.getMessageList(); }, // 閲嶇疆 - handleReset(){ - this.messageStatus = 2; - this.messageType = '00'; - this.context = ''; - this.getMessageList(); + handleReset() { + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; + this.getMessageList(); }, // 鏌ョ湅 - handleOpera(data, type){ + handleOpera(data, type) { this.tableRowData = data; this.dialogType = type; this.isShowDialog = true; @@ -227,36 +232,36 @@ handleDelete(idarr) { this.$confirm('纭鍒犻櫎?') .then(() => { - deleteMessage({ ids: idarr.join(',') }) - .then(() => { - this.getMessageList(); - this.$message.success('鎿嶄綔鎴愬姛'); - }) - .catch(err => { this.$message({ type: 'error', message: err }) }); + deleteMessage({ ids: idarr.join(',') }) + .then(() => { + this.getMessageList(); + this.$message.success('鎿嶄綔鎴愬姛'); + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); }) }, // 鑾峰彇娑堟伅鏁版嵁 getMessageList() { - const messageParam = { - current: this.currentPage, - pageSize: this.pageSize, - channelCode: this.messageType === '00' ? null : this.messageType, - status: this.messageStatus === 2 ? null : this.messageStatus, - head: this.context, - startTime: this.datetime ? this.datetime[0] : null, - endTime: this.datetime ? this.datetime[1] : null - } + const messageParam = { + current: this.currentPage, + pageSize: this.pageSize, + channelCode: this.messageType === '00' ? null : this.messageType, + status: this.messageStatus === 2 ? null : this.messageStatus, + head: this.context, + startTime: this.datetime ? this.datetime[0] : null, + endTime: this.datetime ? this.datetime[1] : null + } - getMessageList(messageParam) - .then(({ records, total ,size}) => { - this.tableData = records; - this.totalNum = total; - this.pageSize=size; - }) - .catch(err => { - this.$message({ type: 'error', message: err }); - }); + getMessageList(messageParam) + .then(({ records, total, size }) => { + this.tableData = records; + this.totalNum = total; + this.pageSize = size; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); }, // 鎵归噺涓嬫媺妗嗘搷浣� @@ -303,7 +308,7 @@ } }) }) - .catch(err => { }) + .catch(err => { }) }, // 琛ㄦ牸鐩戝惉 @@ -343,8 +348,8 @@ // 鑷畾涔夊叧闂脊绐� closeDialog() { - this.isShowDialog = false; - this.getMessageList(); + this.isShowDialog = false; + this.getMessageList(); } } } @@ -377,12 +382,15 @@ display: flex; justify-content: space-between; align-items: center; + span { flex: 1; } + .el-input { flex: 2; color: #1d3f57; + &::v-deep .el-input__inner { //background-color: #09152f; //border: 1px solid #17324c; @@ -588,8 +596,9 @@ &::v-deep .el-dialog__body { padding: 0; } - :deep(.el-range-input) { - //background-color: #09152f; - } + + :deep(.el-range-input) { + //background-color: #09152f; + } } </style> diff --git a/src/views/operate/message/myIndex/update/index.vue b/src/views/operate/message/myIndex/update/index.vue index 68d0f04..8bdd313 100644 --- a/src/views/operate/message/myIndex/update/index.vue +++ b/src/views/operate/message/myIndex/update/index.vue @@ -138,7 +138,7 @@ import MyEditor from "@/components/edit"; import MyColumnAdd from "@/views/operate/message/mycontrol/createUser"; import MyColView from "../messageView"; -import { sendMessage, updateMessage, getMessageById } from "@/api/operate/messageManagement"; +import { sendMessage, updateMessage, getMessageById,saveMessage } from "@/api/operate/messageManagement"; export default { components: { MyEditor, MyColumnAdd, MyColView }, @@ -284,10 +284,12 @@ // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) handleSubmit(mystatus) { + debugger; this.role.body = this.$refs.edit.editor.txt.html(); this.$refs.user.validate((valid) => { if (valid) { - const { body, head, messageType, channelCode } = this.role; + if(mystatus==1){ + const { body, head, messageType, channelCode } = this.role; const params = { body, head, @@ -325,6 +327,48 @@ }) ); } + } + if(mystatus==0){ + const { body, head, messageType, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(","), + status: mystatus, + }; + if (this.role.channelCode === '03') { + delete params.messageType; + } + if (this.type === "create") { + saveMessage(params) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } else { + updateMessage({ id: this.myDataRow.id, ...params }) + .then(() => { + this.$emit("closeMyDialog"); + this.$message({ type: "success", message: "鎿嶄綔鎴愬姛" }); + }) + .catch((err) => + this.$message({ + type: "error", + message: err.data || err.message, + }) + ); + } + } + } else { this.$message.error({ type: "warning", message: "璇锋鏌ュ繀濉」" }); } diff --git a/src/views/operate/sms/smsIndex/index.vue b/src/views/operate/sms/smsIndex/index.vue index fe62718..f0ddc49 100644 --- a/src/views/operate/sms/smsIndex/index.vue +++ b/src/views/operate/sms/smsIndex/index.vue @@ -71,12 +71,7 @@ </el-table-column> <el-table-column prop="targetFrom" label="鍙戦�佽处鍙�" min-width="15"> </el-table-column> - <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> - <template slot-scope="scope"> - <span>{{ - statusList.find((item) => item.value === scope.row.status).label - }}</span> - </template> + <el-table-column prop="respondResult" label="鐭俊鍥炴墽" min-width="5"> </el-table-column> <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> <template slot-scope="scope"> @@ -189,14 +184,14 @@ label: "鎵归噺鎿嶄綔", disabled: true, }, - { - value: 1, - label: "鎵归噺鍚敤", - }, - { - value: 2, - label: "鎵归噺绂佺敤", - }, + // { + // value: 1, + // label: "鎵归噺鍚敤", + // }, + // { + // value: 2, + // label: "鎵归噺绂佺敤", + // }, { value: 3, label: "鎵归噺鍒犻櫎", @@ -206,18 +201,14 @@ messageStatus: "鍏ㄩ儴", messageKind: "00", statusList: [ - { - label: "鍏ㄩ儴", - value: 2, - }, - { + { label: "鍙戦�佸け璐�", - value: 0, + value: 3, }, { label: "鍙戦�佹垚鍔�", - value: 1, - }, + value: 2, + } ], kindList: [ { @@ -283,9 +274,12 @@ }, resend(data) { - if (data.status === 1) { + if (data.status === 2) { return; } + data.createTime='', + data.sendTime='', + data.createUser=null, sendMessage(data) .then(() => { this.$message.success("鎿嶄綔鎴愬姛"); diff --git a/vue.config.js b/vue.config.js index d97f668..f3a4d14 100644 --- a/vue.config.js +++ b/vue.config.js @@ -39,8 +39,8 @@ proxy: { // 璺ㄥ煙閰嶇疆 "/sccg": { - target: `http://42.193.1.25/`, - // target: `http://127.0.0.1:8082/`, + // target: `http://42.193.1.25/`, + target: `http://127.0.0.1:8082/`, changeOrigin: true } }, -- Gitblit v1.8.0