From f7bdedf1f3f7600c73f6d5beb46c1d1f4d518822 Mon Sep 17 00:00:00 2001 From: luobisheng <727299681@qq.com> Date: 星期三, 09 十一月 2022 18:15:34 +0800 Subject: [PATCH] 消息管理丶店铺对接 --- src/views/operate/fivepack/threepack/components/updateUser/index.vue | 127 +-- src/views/operate/fivepack/shop/components/main/index.vue | 2 src/views/operate/viewEvent/index.vue | 20 src/api/system/portal/teamConstruction.js | 51 - src/views/operate/fivepack/threepack/components/aside/index.vue | 57 - src/views/operate/message/myIndex/index.vue | 181 ++-- src/views/systemSetting/platform/cockpitManage/updateUser/index.vue | 39 src/views/operate/message/myIndex/myview/index.vue | 10 src/views/systemSetting/platform/cockpitManage/index.vue | 90 - src/api/operate/storeManagement.js | 25 src/views/operate/disposal/casepool/pool/index.vue | 87 - src/api/operate/messageManagement.js | 21 /dev/null | 411 ---------- src/http/index.js | 10 src/http/interceptor-handler.js | 19 src/views/operate/message/myIndex/update/index.vue | 826 +++++++++----------- src/views/operate/fivepack/shop/components/updateUser/index.vue | 3 src/views/systemSetting/platform/cockpitManage/detailUser/index.vue | 112 -- src/views/operate/fivepack/threepack/index.vue | 255 +++++ 19 files changed, 885 insertions(+), 1,461 deletions(-) diff --git a/src/api/operate/messageManagement.js b/src/api/operate/messageManagement.js new file mode 100644 index 0000000..b6063d3 --- /dev/null +++ b/src/api/operate/messageManagement.js @@ -0,0 +1,21 @@ +import http from "@/http"; + +export function deleteMessage(params) { + return http.post('/sccg/message/delete', params); +} + +export function getMessageById(id) { + return http.get('/sccg/message/getMessage/' + id); +} + +export function getMessageList(params) { + return http.post('/sccg/message/list', params); +} + +export function sendMessage(params) { + return http.post('/sccg/message/sendMessage', params); +} + +export function updateMessage(id, params) { + return http.post('/sccg/message/update/' + id, params); +} \ No newline at end of file diff --git a/src/api/operate/storeManagement.js b/src/api/operate/storeManagement.js new file mode 100644 index 0000000..55cf953 --- /dev/null +++ b/src/api/operate/storeManagement.js @@ -0,0 +1,25 @@ +import http from "@/http"; + +export function addStoreInfo(params) { + return http.post('/sccg/store/storeinfo/add', params); +} + +export function importStoreInfo(params) { + return http.post('/sccg/store/storeinfo/add/excel', params); +} + +export function deleteStoreInfo(id) { + return http.get('/sccg/store/storeinfo/delete/' + id) +} + +export function getStoreInfoList(params) { + return http.get('/sccg/store/storeinfo/list', params); +} + +export function updateStoreInfo(params) { + return http.put('/sccg/store/storeinfo/update', params); +} + +export function getStoreInfoById(id) { + return http.get('/sccg/store/storeinfo/' + id); +} \ No newline at end of file diff --git a/src/api/system/portal/teamConstruction.js b/src/api/system/portal/teamConstruction.js index b08c8fb..3ea1136 100644 --- a/src/api/system/portal/teamConstruction.js +++ b/src/api/system/portal/teamConstruction.js @@ -1,62 +1,25 @@ -import { getToken } from "@/utils/helper"; -import request from "@/utils/request"; - -const TEAM_CONSTRUCTION_URL = '/sccg/team_construction'; -const TOKEN = { - 'Authorization': getToken() -} +import http from "@/http"; export function addTeam(params) { - return request({ - method: 'post', - url: TEAM_CONSTRUCTION_URL + '/addition', - headers: { ...TOKEN }, - params - }); + return http.post('/sccg/team_construction/addition', params); } export function deleteTeam(params) { - return request({ - method: 'delete', - url: TEAM_CONSTRUCTION_URL + '/deletion', - headers: { ...TOKEN }, - params - }); + return http.delete('/sccg/team_construction/deletion', params); } export function exportTeamInfo(params) { - return request({ - method: 'post', - url: TEAM_CONSTRUCTION_URL + '/export', - headers: { ...TOKEN }, - params, - responseType: 'blob' - }); + return http.post('/sccg/team_construction/export', {}, params); } export function importTeamInfo(data) { - return request({ - method: 'post', - url: TEAM_CONSTRUCTION_URL + '/import', - headers: { ...TOKEN, 'Content-Type': 'multipart/form-data' }, - data: data, - }); + return http.post('/sccg/team_construction/import', data); } export function updateTeamInfo(params) { - return request({ - method: 'put', - url: TEAM_CONSTRUCTION_URL + '/modification', - headers: { ...TOKEN }, - params - }); + return http.put('/sccg/team_construction/modification', params); } export function searchTeamInfo(params) { - return request({ - method: 'get', - url: TEAM_CONSTRUCTION_URL + '/query', - headers: { ...TOKEN }, - params - }); + return http.get('/sccg/team_construction/query', params); } \ No newline at end of file diff --git a/src/http/index.js b/src/http/index.js index 05bdd7e..516bac4 100644 --- a/src/http/index.js +++ b/src/http/index.js @@ -6,14 +6,12 @@ } from './interceptor-handler' import { showFullScreenLoading -} from '../utils/loading' -// import { getStorage } from '@utils/storage' +} from '@/utils/loading' // URL 璁板綍鍣� import urlRecorder from './url-recorder' const axiosInstance = axios.create({ - // baseURL: `${process.env.VUE_APP_API_BASE_URL}`, timeout: 1000 * 60 * 5 }) @@ -46,7 +44,6 @@ url: addVersion(url), params, errorHandler: (!throwError && this.defaultErrorHandler) || null, - // headers: { 'Content-Type': 'application/json', token: thisToken }, headers: { 'Content-Type': 'application/json' }, @@ -63,14 +60,15 @@ * 閫氳繃post鍙戦�佹暟鎹紝浣垮悗绔洿鎺ユ敹鍒癹son鏍煎紡鐨勬暟鎹�傚苟缁熶竴澶勭悊甯歌鐨勯敊璇� * @param {string} url * @param {object?} data={} + * @param {object} params={} * @param {boolean?} throwError 鏄惁涓嶄娇鐢ㄩ粯璁ょ殑寮傚父澶勭悊鏂规硶锛岃�屾妸寮傚父鎶涘嚭鏉� - * @param {int?} timeout 瓒呮椂鏃堕棿锛岄粯璁�10绉� * @return {Promise} 杩斿洖涓�涓猵romise瀵硅薄銆傚叾涓璽hen鏂规硶浼犻�掑洖鍖呬腑鐨刣ata鏁版嵁锛沜atch浜嬩欢鍒欎紶閫掓暣涓洖鍖咃紝鍏跺弬鏁颁负{data:{},status{code:123,message:'xxx'}} */ - post(url, data = {}, throwError) { + post(url, data = {}, params = {}, throwError) { const config = { method: 'POST', url, + params, data: JSON.stringify(data), errorHandler: (!throwError && this.defaultErrorHandler) || null, headers: { diff --git a/src/http/interceptor-handler.js b/src/http/interceptor-handler.js index e42f04b..6e85f1e 100644 --- a/src/http/interceptor-handler.js +++ b/src/http/interceptor-handler.js @@ -12,9 +12,15 @@ export function handleResponseSuccess(response) { tryHideFullScreenLoading() urlRecorder.remove(response.config) - const result = response.data + let result = response.data - // return result.content + if (response.headers['content-disposition']) { + result = { + contentDisposition: response.headers['content-disposition'], + data: response.data + } + } + if (result.code === 200) { return result.data || result.content } else if (result.code && result.code !== 0) { @@ -73,15 +79,6 @@ */ export function handleError(requestConfig, result) { // 蹇呴』鏄疎rror瀵硅薄锛屽惁鍒檛hrow鏃秜uex瑕佹姤warning - // let err - // if (result instanceof Error) { - // err = result - // } else { - // err = new Error(result.msg) - // err.content = result.content - // err.code = result.code - // err.msg = result.msg - // } if (requestConfig && requestConfig.errorHandler) { result.url = requestConfig.url requestConfig.errorHandler(result) diff --git a/src/views/operate/disposal/casepool/pool/index.vue b/src/views/operate/disposal/casepool/pool/index.vue index cd0bff0..1650706 100644 --- a/src/views/operate/disposal/casepool/pool/index.vue +++ b/src/views/operate/disposal/casepool/pool/index.vue @@ -5,7 +5,7 @@ <div class="search"> <span>鏉ユ簮鏌ヨ:</span> <div class="option"> - <el-select v-model="mystatus" placeholder="杩濊" @change="setMystatus"> + <el-select v-model="mystatus" placeholder="杩濊" @change="setMyStatus"> <el-option v-for="item in typeList" :key="item.label" :label="item.name" :value="item.value"> </el-option> @@ -68,9 +68,6 @@ <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '灏忕被鍚嶇О' : '杩濆缓鍦扮偣'" min-width="10"> </el-table-column> - <!-- <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" - :label="mystatus===1 ? '妗堢敱' : '鎵�灞炵ぞ鍖�'" min-width="10"> - </el-table-column> --> <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '鎶ヨ鐐逛綅' : '杩濇硶寤虹瓚闀裤�佸銆侀珮'" :min-width="mystatus===1?'10' :'20' "> <template slot-scope="scope"> @@ -110,7 +107,7 @@ <!-- 璇︽儏椤靛睍绀� --> <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" :before-close="handleClose"> - <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail> + <MyDetail :info=info v-if="mystatus === 1"></MyDetail> <MyIllDetail :info=info v-else></MyIllDetail> </el-dialog> <!-- 璋冨害 --> @@ -124,7 +121,7 @@ <div class="funs"> <div class="funsItem funs-sp"> <el-checkbox v-model="all" @change="selectAll()" - :disabled="tableData.length !== 0 ? false : true">鍏ㄩ��</el-checkbox> + :disabled="tableData.length === 0">鍏ㄩ��</el-checkbox> </div> <div class="funsItem funs-sp"> <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox> @@ -139,8 +136,7 @@ </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"> + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> </el-pagination> </div> </div> @@ -162,19 +158,7 @@ }, data() { return { - tableData: [ - // { - // code:1, - // eventSource:1, - // category:1, - // type:1, - // actionCause:'妗堢敱1111', - // site:'浣犲ソ', - // streetId:1, - // alarmTime:'2022-21-20', - // continueTime:'8灏忔椂', - // } - ], + tableData: [], dialogCreate: false, dialogView: false, dialogNewAdd: false, @@ -273,11 +257,9 @@ this.dialogDispatch = true; }, // 椤堕儴涓嬫媺妗� - setMystatus(value) { - console.log(value); + setMyStatus(value) { this.statusArr[1] = value; this.changeTypeChecked(value - 1); - this.getUserList(); }, // 閫夋嫨杩濊杩濆缓 setDialog({ flag, type }) { @@ -287,7 +269,6 @@ }, // 鎵归噺鍒犻櫎 mulDelete(idArr) { - console.log(idArr instanceof Array); const { statusArr } = this; this.$confirm('鎮ㄧ‘瀹氳鎵归噺鍒犻櫎妗堜欢鍚�?') .then(_ => { @@ -313,7 +294,6 @@ }, // 鎵ц涓嬫媺妗嗘搷浣� selectChange(list) { - console.log(this.tempList); if (this.tempList.length !== 0) { if (list === 3) { this.preMyIdx = list; @@ -333,11 +313,7 @@ list.forEach(item => { this.tempList.push(item.id); }) - if (list.length === this.tableData.length) { - this.all = true; - } else { - this.all = false - } + this.all = list.length === this.tableData.length; }, // 鍏ㄩ�� selectAll() { @@ -352,55 +328,39 @@ // 鑾峰彇鐢ㄦ埛鍒楄〃 getUserList() { const { currentPage, pageSize, statusArr } = this; - console.log(statusArr); this.$axios({ method: 'get', url: `sccg/base_case/query?state=${statusArr[0]}¤t=${currentPage}&size=${pageSize}&resource=2&type=${statusArr[1]}` }).then(res => { this.totalNum = res.data.total; this.tableData = res.data.records; - console.log(res); }) .catch(err => { - console.log(err) this.tableData = []; }) }, // 璁剧疆琛ㄦ牸鏂戦┈绾� tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { + if ((rowIndex + 1) % 2 === 0) { return 'warning-row'; } else { return 'success-row'; } - return ''; }, // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼) handleFind(rowData) { - // this.dialogView = true; - // this.userInfo = rowData; }, // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; this.getUserList(); }, - // 涓婁竴椤电偣鍑讳簨浠� - handlePrev(page) { - this.currentPage = page; - this.getUserList(); - }, - // 涓嬩竴椤电偣鍑讳簨浠� - handleNext(page) { - this.currentPage = page; - this.getUserList(); - }, + changeDialog({ flag }) { this.dialogNewAdd = flag; this.dialogCreate = flag; this.dialogView = flag; this.dialogDispatch = flag; - // this.getUserList(); }, handleClose(done) { this.$confirm('纭鍏抽棴锛�') @@ -416,11 +376,7 @@ // 鏇存敼涓�绾ф爣绛剧殑閫変腑 changeNavChecked(idx) { this.tagList.forEach((item, index) => { - if (index === idx) { - item.checked = true; - } else { - item.checked = false; - } + item.checked = index === idx; }) this.mystatus = 1 this.typeList[0].checked = true; @@ -432,11 +388,7 @@ // 鏇存敼杩濊/杩濆缓 changeTypeChecked(idx) { this.typeList.forEach((item, index) => { - if (index === idx) { - item.checked = true; - } else { - item.checked = false; - } + item.checked = index === idx; }) this.mystatus = idx + 1; this.statusArr[1] = this.typeList[idx].value; @@ -447,26 +399,22 @@ }, // 鑾峰彇妗堜欢淇℃伅 getEventInfo(code) { - console.log('鑾峰彇鍏蜂綋妗堜欢淇℃伅', code); this.$axios({ method: 'get', url: `sccg/base_case/baseCaseDetail/${code}` }) .then(res => { - console.log(res); this.info = res.data; this.dialogView = true; }) }, // 鍦ㄥ涔� handleLearn({ id }) { - console.log(id); this.$axios({ method: 'put', url: 'sccg/base_case/case_status_update?caseId=' + id + '&state=' + 3 }) .then(res => { - console.log(res); if (res.code === 200) { this.$notify({ title: '娓╅Θ鎻愮ず', @@ -474,10 +422,6 @@ type: 'success', position: 'bottom-right' }) - // this.$message({ - // type:'success', - // message:'鎿嶄綔鎴愬姛', - // }) this.getUserList(); } else { this.$message({ @@ -489,13 +433,11 @@ }, // 鏆備笉澶勭悊 handleNotDeal({ id }) { - console.log(id); this.$axios({ method: 'put', url: 'sccg/base_case/case_status_update?caseId=' + id + '&state=' + 4 }) .then(res => { - console.log(res); if (res.code === 200) { this.$notify({ title: '娓╅Θ鎻愮ず', @@ -503,10 +445,6 @@ type: 'success', position: 'bottom-right' }) - // this.$message({ - // type:'success', - // message:'鎿嶄綔鎴愬姛', - // }) this.getUserList(); } else { this.$message({ @@ -531,7 +469,6 @@ header { background-color: #09152f; - border: 1pox solid #fff; .headerContent { padding: 0 40px; @@ -595,8 +532,6 @@ main { background-color: #09152f; margin-top: 20px; - padding-bottom: 50px; - border: 1pox solid #fff; .mainTitle { line-height: 60px; diff --git a/src/views/operate/fivepack/shop/components/main/index.vue b/src/views/operate/fivepack/shop/components/main/index.vue index e2f45b3..337323f 100644 --- a/src/views/operate/fivepack/shop/components/main/index.vue +++ b/src/views/operate/fivepack/shop/components/main/index.vue @@ -189,7 +189,6 @@ background-color: #09152f; margin-top: 20px; padding-bottom: 50px; - border: 1pox solid #fff; .mainTitle { line-height: 60px; @@ -237,7 +236,6 @@ } .el-button { - // background-color: #fff; border: none; } diff --git a/src/views/operate/fivepack/shop/components/updateUser/index.vue b/src/views/operate/fivepack/shop/components/updateUser/index.vue index 3c5eae5..bc4e04d 100644 --- a/src/views/operate/fivepack/shop/components/updateUser/index.vue +++ b/src/views/operate/fivepack/shop/components/updateUser/index.vue @@ -26,7 +26,6 @@ <el-form-item class="optionItem" label="搴楅摵鎻忚堪:" prop="description"> <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="300" show-word-limit v-model="store.description" placeholder="杈撳叆搴楅摵鎻忚堪"></el-input> - <!-- <el-input type="textarea" v-model="user.storedesc" placeholder="杈撳叆閮ㄩ棬鎻忚堪"></el-input> --> </el-form-item> <!-- 鑱旂郴鏂瑰紡 --> <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact"> @@ -148,10 +147,8 @@ }, created() { const { userInfo } = this; - // console.log(userInfo) this.store = userInfo this.getShopTypeList(); - // console.log(this.store) }, methods: { // 鑾峰彇瀛楀吀 diff --git a/src/views/operate/fivepack/threepack/components/aside/index.vue b/src/views/operate/fivepack/threepack/components/aside/index.vue index 0231898..f5ab6f7 100644 --- a/src/views/operate/fivepack/threepack/components/aside/index.vue +++ b/src/views/operate/fivepack/threepack/components/aside/index.vue @@ -2,61 +2,32 @@ <div class="aside"> <div class="title">缁勭粐鏈烘瀯</div> <div class="input"> - <el-input placeholder="杈撳叆缁勭粐鏈烘瀯鍚嶇О"></el-input> + <el-input placeholder="杈撳叆缁勭粐鏈烘瀯鍚嶇О" v-model="searchArea"></el-input> </div> <div class="menu"> - <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree> + <el-tree :data="areaData" :props="defaultProps" @node-click="handleNodeClick"></el-tree> </div> </div> </template> <script> + export default { data() { return { - data: [{ - label: '濡欓珮琛楅亾', - children: [{ - label: '涓滆', - children: [{ - label: '铻鸿洺鍨�' - }] - }] - }, { - label: '浜戝嘲琛楅亾', - children: [{ - label: '涓滀涵', - children: [{ - label: '闅旀邯' - }] - }, { - label: '椹ご', - children: [{ - label: '榫欏彛' - }] - }] - }, { - label: '鏂拌矾婀鹃晣', - children: [{ - label: '鏂拌矾婀鹃晣', - children: [{ - label: '鏂拌矾婀鹃晣' - }] - }, { - label: '鏂拌矾婀鹃晣', - children: [{ - label: '鏂拌矾婀鹃晣' - }] - }] - }], - defaultProps: { - children: 'children', - label: 'label' - } + searchArea: null, + areaData: [], + defaultProps: { + children: 'children', + label: 'label' + } }; }, - methods: { + + created() { + }, + + methods: { handleNodeClick(data) { - console.log(data); } } }; diff --git a/src/views/operate/fivepack/threepack/components/header/index.vue b/src/views/operate/fivepack/threepack/components/header/index.vue deleted file mode 100644 index 1ef6986..0000000 --- a/src/views/operate/fivepack/threepack/components/header/index.vue +++ /dev/null @@ -1,124 +0,0 @@ -<template> - <header> - <div class="headerContent"> - <div class="find"> - <div class="search"> - <span>杈撳叆鏌ヨ:</span> - <el-input placeholder="搴楅摵(闂ㄥ簵)鍚嶇О" v-model="search"></el-input> - </div> - <div class="status"> - <span>搴楅摵鐘舵��:</span> - <el-select v-model="storeState" placeholder="閫夋嫨搴楅摵鐘舵��"> - <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> - </el-option> - </el-select> - </div> - <div class="findBtn"> - <el-button type="primary" @click="setSearch" icon="el-icon-search">鏌ヨ</el-button> - <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> - </div> - </div> - </div> - </header> -</template> -<script> -export default { - components: { - }, - data() { - return { - dialogCreate: false, - search: '', - storeState: null, - options:[ - { - label:'钀ヤ笟', - value:1 - }, - { - label:'鍊掗棴', - value:2 - } - ] - } - }, - methods: { - setSearch() { - this.$emit('getSearch', { text: this.search }) - }, - sendDialog(flag) { - console.log(flag); - this.dialogCreate = flag.flag; - this.$emit('setDialog', { flag: true }) - }, - // 閲嶇疆鎼滅储鏉′欢 - handleReset(){ - console.group(1) - this.search = '', - this.storeState =null - } - }, - props: ['setDialog', 'getSearch', 'flag'], -} -</script> -<style lang="scss" scoped> -header { - background-color: #09152f; - border: 1pox solid #fff; - - .headerContent { - padding: 0 40px; - display: flex; - line-height: 100px; - justify-content: space-between; - align-items: center; - - .find { - display: flex; - } - - .search, - .status { - display: flex; - justify-content: flex-start; - - span { - flex: 1; - } - - .el-input { - flex: 2; - color: #1d3f57; - - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - } - - } - - .status { - margin-left: 20px; - } - - .findBtn { - line-height: 100px; - margin-left: 15px; - display: flex; - align-items: center; - - .el-button { - padding: 12px 25px; - } - } - - .addBtn { - padding: 12px 30px; - margin-left: 20%; - } - - - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/fivepack/threepack/components/main/index.vue b/src/views/operate/fivepack/threepack/components/main/index.vue deleted file mode 100644 index 06f01a5..0000000 --- a/src/views/operate/fivepack/threepack/components/main/index.vue +++ /dev/null @@ -1,281 +0,0 @@ -<template> - <main> - <div class="mainContent"> - <!-- 鏁版嵁灞曠ず --> - <el-table ref="multipleTable" - :header-cell-style="{ background: '#06122c', 'font-size': '12px', color: '#4b9bb7', '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="storeNumber" label="搴楅摵缂栧彿" min-width="10"> - </el-table-column> - <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10"> - </el-table-column> - <el-table-column prop="storeOwner" label="搴楅摵鑱旂郴浜�" min-width="10"> - </el-table-column> - <el-table-column prop="storePhone" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10"> - </el-table-column> - <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10"> - </el-table-column> - <el-table-column prop="storeMoni" label="鍏宠仈鎽勫儚鏈�" min-width="10"> - </el-table-column> - <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> - <template slot-scope="scope"> - <div class="operation"> - <el-link icon="el-icon-edit" :underline="false" @click="hadnleView(scope.row,0)">缂栬緫</el-link> - <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete(scope.row.id)">鍒犻櫎</el-link> - <el-link class="leftPx" icon="el-icon-edit" :underline="false">鎺ㄩ�佷俊鎭�</el-link> - <el-link class="leftPx" icon="el-icon-edit" :underline="false" @click="hadnleView(scope.row,1)">鏌ョ湅</el-link> - </div> - </template> - </el-table-column> - </el-table> - <!-- 鏌ョ湅淇敼椤甸潰 --> - <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate" - :title="updateFlag ? '淇敼搴楅摵淇℃伅' : '鏌ョ湅搴楅摵淇℃伅'" :before-close="handleClose"> - <updateUser :updateFlag="updateFlag" :userInfo=userInfo @handleUpdateData="handleUpdateData" /> - </el-dialog> - <!-- 鍒嗛〉 --> - <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> - </main> -</template> -<script> -import helper from '@/utils/mydate' -import updateUser from '../updateUser'; -export default { - components: { - updateUser - }, - data() { - return { - tableData: [ - { - id: 1, - storeNumber: '1002220212', - storeName: '搴楅摵1', - storeOwner: '寮犱笁', - storePhone: '17844631885', - storeAddress: '鐢滃績琛�12鍙�', - storeMoni: '鎽勫儚澶�1' - }, - { - id: 2, - storeNumber: '1002220213', - storeName: '搴楅摵2', - storeOwner: '寮犱笁', - storePhone: '17844631885', - storeAddress: '鐢滃績琛�13鍙�', - storeMoni: '鎽勫儚澶�1' - }, - { - id: 3, - storeNumber: '1002220214', - storeName: '搴楅摵3', - storeOwner: '寮犱笁', - storePhone: '17844631885', - storeAddress: '鐢滃績琛�14鍙�', - storeMoni: '鎽勫儚澶�1' - }, - { - id: 4, - storeNumber: '1002220215', - storeName: '搴楅摵4', - storeOwner: '寮犱笁', - storePhone: '17844631885', - storeAddress: '鐢滃績琛�15鍙�', - storeMoni: '鎽勫儚澶�1' - }, - { - id: 5, - storeNumber: '1002220216', - storeName: '搴楅摵5', - storeOwner: '寮犱笁', - storePhone: '17844631885', - storeAddress: '鐢滃績琛�16鍙�', - storeMoni: '鎽勫儚澶�1' - }, - ], - search: "111", - dialogUpdate: false, - updateFlag: false, - userInfo: '', - totalNum: 0, - pageSize: 10, - currentPage: 1, - renderFlag: false, - } - }, - created() { - }, - methods: { - // 鍒犻櫎鏁版嵁 - handleDelete(id){ - const {tableData} = this - let idx - for(let key in tableData){ - tableData[key].id === id ? idx = key :'' - } - this.tableData.splice(idx,1) - }, - // 鎵撳紑寮圭獥 - hadnleView(data,index){ - index === 0 ? this.updateFlag = true : this.updateFlag = false - this.userInfo = data - this.dialogUpdate = true - }, - // 鑷畾涔夊叧闂脊绐� - handleClose(done){ - if(this.updateFlag){ - this.$confirm('纭鍏抽棴?') - .then(_=>{ - done() - }) - }else{ - done() - } - }, - // 鏇存柊鏁版嵁 - handleUpdateData(obj){ - const {tableData} = this - let index = -1 - for(let item in tableData){ - if(tableData[item].id===obj.id){ - index = item - } - } - this.tableData.splice(index,1,obj) - this.dialogUpdate = false - }, - // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� - changeCurrentPage(page) { - this.currentPage = page; - }, - // 璁剧疆琛ㄦ牸鏂戦┈绾� - tableRowClassName({ row, rowIndex }) { - if ((rowIndex + 1) % 2 == 0) { - return 'warning-row'; - } else { - return 'success-row'; - } - return ''; - }, - }, - props: ['refresh', 'keyword', 'resetFresh'], - watch: { - refresh: { - handler(newValue, oldValue) { - if (newValue == true) { - this.search = ''; - if (this.keyword != '') { - this.search = this.keyword; - } - this.$emit('resetFresh', { flag: false }) - } - }, - immediate: true - }, - } -} -</script> -<style lang="scss" scoped> -main { - background-color: #09152f; - margin-top: 20px; - padding-bottom: 50px; - border: 1pox solid #fff; - - .mainTitle { - line-height: 60px; - } - - .el-link { - color: #4b9bb7; - } - - .leftPx { - margin-left: 10px; - } - - .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; - } - } - } - - .el-table { - color: #4b9bb7; - font-size: 10px; - - &::v-deep .el-table__empty-block { - background-color: #09152f; - color: #4b9bb7; - } - - .operation { - display: flex; - - .el-button { - // background-color: #fff; - border: none; - } - - 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; - } -} -</style> \ No newline at end of file diff --git a/src/views/operate/fivepack/threepack/components/updateUser/index.vue b/src/views/operate/fivepack/threepack/components/updateUser/index.vue index be671fd..2607fba 100644 --- a/src/views/operate/fivepack/threepack/components/updateUser/index.vue +++ b/src/views/operate/fivepack/threepack/components/updateUser/index.vue @@ -2,130 +2,89 @@ <div class="updateUser"> <main> <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules" + <el-form ref="store" label-width="140px" autoComplete="on" :model="store" :rules="rules" label-position="right"> <!-- 搴楅摵缂栧彿 --> <el-form-item class="optionItem" label="搴楅摵缂栧彿:" prop="storeNumber"> - <el-input v-model="user.storeNumber" placeholder="璇峰~鍐欏簵閾虹紪鍙�" :disabled="!updateFlag"></el-input> + <el-input v-model="store.storeNumber" placeholder="璇峰~鍐欏簵閾虹紪鍙�" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 搴楅摵鍚嶇О --> <el-form-item class="optionItem" label="搴楅摵鍚嶇О:" prop="storeName"> - <el-input v-model="user.storeName" placeholder="璇峰~鍐欏簵鍚嶇О" :disabled="!updateFlag"></el-input> + <el-input v-model="store.storeName" placeholder="璇峰~鍐欏簵鍚嶇О" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 搴楅摵鑱旂郴浜� --> - <el-form-item class="optionItem" label="搴楅摵鑱旂郴浜�:" prop="storeOwner"> - <el-input v-model="user.storeOwner" placeholder="璇峰~鍐欏簵閾鸿仈绯讳汉" :disabled="!updateFlag"></el-input> + <el-form-item class="optionItem" label="搴楅摵鑱旂郴浜�:" prop="owner"> + <el-input v-model="store.owner" placeholder="璇峰~鍐欏簵閾鸿仈绯讳汉" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 搴楅摵鑱旂郴鐢佃瘽 --> - <el-form-item class="optionItem" label="搴楅摵鑱旂郴鐢佃瘽:" prop="storePhone"> - <el-input v-model="user.storePhone" placeholder="璇峰~鍐欏簵閾鸿仈绯荤數璇�" :disabled="!updateFlag"></el-input> + <el-form-item class="optionItem" label="搴楅摵鑱旂郴鐢佃瘽:" prop="contact"> + <el-input v-model="store.contact" placeholder="璇峰~鍐欏簵閾鸿仈绯荤數璇�" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 搴楅摵璇︾粏鍦板潃 --> <el-form-item class="optionItem" label="搴楅摵璇︾粏鍦板潃:" prop="storeAddress"> - <el-input v-model="user.storeAddress" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�" :disabled="!updateFlag"></el-input> + <el-input v-model="store.storeAddress" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�" :disabled="!updateFlag"></el-input> </el-form-item> <!-- 鍏宠仈鎽勫儚鏈� --> - <el-form-item class="optionItem" label="鍏宠仈鎽勫儚鏈�:" prop="storeMoni"> - <el-input v-model="user.storeMoni" placeholder="璇峰~鍐欏叧鑱旀憚鍍忔満" :disabled="!updateFlag"></el-input> + <el-form-item class="optionItem" label="鍏宠仈鎽勫儚鏈�:" prop="relationVideo"> + <el-input v-model="store.relationVideo" placeholder="璇峰~鍐欏叧鑱旀憚鍍忔満" :disabled="!updateFlag"></el-input> </el-form-item> <el-form-item v-if="updateFlag"> <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 - </el-button> + <el-button type="primary" class="btn submit" @click.native.prevent="onSubmit">鎻愪氦</el-button> </div> </el-form-item> </el-form> - </div> </main> </div> </template> <script> +import { deepClone } from "@/utils/helper"; +import { updateStoreInfo } from "@/api/operate/storeManagement"; +import { SUCCESS_CODE } from "@/utils"; + export default { data() { - const validateNumber = (rule,value,callback)=>{ - if(value){ - callback() - }else{ - callback(new Error('搴楅摵缂栧彿涓嶈兘涓虹┖')) - } - } - const validateName = (rule,value,callback)=>{ - if(value){ - callback() - }else{ - callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖')) - } - } - const validateOwner = (rule,value,callback)=>{ - if(value){ - callback() - }else{ - callback(new Error('搴楅摵鑱旂郴浜轰笉鑳戒负绌�')) - } - } - const validatePhone = (rule,value,callback)=>{ - if(value){ - callback() - }else{ - callback(new Error('搴楅摵鑱旂郴鐢佃瘽涓嶈兘涓虹┖')) - } - } - const validateAddress = (rule,value,callback)=>{ - if(value){ - callback() - }else{ - callback(new Error('搴楅摵璇︾粏鍦板潃涓嶈兘涓虹┖')) - } - } - const validateMoni = (rule,value,callback)=>{ - if(value){ - callback() - }else{ - callback(new Error('搴楅摵鍏宠仈鎽勫儚鏈轰笉鑳戒负绌�')) - } - } return { - user: { + store: { storeNumber: '', storeName: '', - storeOwner: '', - storePhone: '', + owner: '', + contact: '', storeAddress: '', - storeMoni: '' + relationVideo: '' }, - createUserRules: { - storeNumber: [ - {trigger:'blur',validator:validateNumber} - ], - storeName: [ - {trigger:'blur',validator:validateName} - ], - storeOwner: [ - {trigger:'blur',validator:validateOwner} - ], - storePhone: [ - {trigger:'blur',validator:validatePhone} - ], - storeAddress: [ - {trigger:'blur',validator:validateAddress} - ], - storeMoni: [ - {trigger:'blur',validator:validateMoni} - ] + rules: { + storeNumber: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾虹紪鍙�' }], + storeName: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾哄悕绉�' }], + owner: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿仈绯讳汉' }], + contact: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿仈绯荤數璇�:' }], + storeAddress: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿缁嗗湴鍧�' }], + relationVideo: [{ required: false, trigger:'blur', message: '璇疯緭鍏ュ叧鑱旀憚鍍忔満' }] }, } }, created() { - const that = this; - this.user = JSON.parse(JSON.stringify(that.userInfo)); + this.store = deepClone(this.storeInfo); }, + methods: { - handleUser() { - this.$emit('handleUpdateData',this.user) - } + onSubmit() { + this.$refs.store.validate(valid => { + if (valid) { + updateStoreInfo(this.store) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.$emit('closeDialog'); + }) + .catch(err => this.$message({ type: 'error', message: err })); + } else { + this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' }); + } + }); + } }, - props: ['userInfo', 'updateFlag','handleUpdateData'] + props: ['storeInfo', 'updateFlag'] } </script> <style lang="scss" scoped> diff --git a/src/views/operate/fivepack/threepack/index.vue b/src/views/operate/fivepack/threepack/index.vue index af6d90e..7c4b16e 100644 --- a/src/views/operate/fivepack/threepack/index.vue +++ b/src/views/operate/fivepack/threepack/index.vue @@ -2,43 +2,153 @@ <div class="userList"> <myAside /> <div class="right"> - <myHeader @setDialog="changeDialog" @getSearch="getSearch"></myHeader> - <myMain :refresh="isFresh" :keyword="keyword" @resetFresh="resetFresh" /> + <header> + <div class="headerContent"> + <div class="find"> + <div class="search-item"> + <span>杈撳叆鏌ヨ:</span> + <el-input style="flex: 1" placeholder="璇疯緭鍏ュ簵閾虹紪鍙�" v-model="storeCode" slot="prefix"></el-input> + </div> + <div class="search-item"> + <span>搴楅摵鐘舵��:</span> + <el-select v-model="storeStatus" placeholder="閫夋嫨搴楅摵鐘舵��"> + <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> + </el-select> + </div> + <div class="findBtn"> + <el-button type="primary" @click="search" icon="el-icon-search">鏌ヨ</el-button> + <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button> + </div> + </div> + </div> + </header> + <main> + <!-- 鏁版嵁灞曠ず --> + <el-table ref="multipleTable" + :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','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="storeNumber" label="搴楅摵缂栧彿" min-width="10"> + </el-table-column> + <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10"> + </el-table-column> + <el-table-column prop="owner" label="搴楅摵鑱旂郴浜�" min-width="10"> + </el-table-column> + <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10"> + </el-table-column> + <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10"> + </el-table-column> + <el-table-column prop="relationVideo" label="鍏宠仈鎽勫儚鏈�" min-width="10"> + </el-table-column> + <el-table-column prop="operation" label="鎿嶄綔" min-width="20"> + <template slot-scope="scope"> + <div class="operation"> + <el-link icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'update')">缂栬緫</el-link> + <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete(scope.row.id)">鍒犻櫎</el-link> + <el-link class="leftPx" icon="el-icon-edit" :underline="false">鎺ㄩ�佷俊鎭�</el-link> + <el-link class="leftPx" icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'view')">鏌ョ湅</el-link> + </div> + </template> + </el-table-column> + </el-table> + <!-- 鏌ョ湅淇敼椤甸潰 --> + <el-dialog :visible.sync="dialogUpdate" width="45%" + :title="updateFlag ? '淇敼搴楅摵淇℃伅' : '鏌ョ湅搴楅摵淇℃伅'" :before-close="handleClose"> + <updateUser :updateFlag="updateFlag" :storeInfo="storeInfo" @closeDialog="closeDialog" /> + </el-dialog> + <!-- 鍒嗛〉 --> + <div class="pagination"> + <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum" + :page-size="pageSize" @current-change="changeCurrentPage"> + </el-pagination> + </div> + </main> </div> </div> </template> <script> -import myHeader from "./components/header" -import myAside from "./components/aside" -import myMain from "./components/main" +import myAside from "./components/aside"; +import updateUser from "@/views/operate/fivepack/threepack/components/updateUser"; +import { getStoreInfoList, deleteStoreInfo } from "@/api/operate/storeManagement"; +import { SUCCESS_CODE } from "@/utils"; + export default { - components: { - myHeader, - myMain, - myAside + components: { myAside, updateUser }, + + created() { + this.search(); }, + data() { - return { - isFresh: false, - keyword: '', - } - }, + return { + storeCode: null, + storeStatus: null, + options: [{ label: '缁忚惀', value: 1 }, { label: '鍊掗棴', value: 2 }], + tableData: [], + dialogUpdate: false, + currentPage: 1, + totalNum: 0, + pageSize: 10, + userInfo: null, + updateFlag: false, + storeInfo: null + } + }, + methods: { - // 鑾峰彇鎼滅储杩斿洖缁撴灉 - getSearch({ text }) { - this.keyword = text; - this.isFresh = true; - }, - // 鑾峰彇鍒锋柊缁撴灉 - changeDialog({ flag }) { - console.log(flag); - this.isFresh = flag; - }, - // 閲嶇疆isFresh - resetFresh({ flag }) { - this.isFresh = flag; - console.log(this.isFresh); + search() { + getStoreInfoList({ keyword: this.storeCode }) + .then(({ list, pageSize, totalPage }) => { + this.tableData = list; + this.pageSize = pageSize; + this.totalNum = totalPage; + }) + .catch(err => this.$message({ type: 'error', message: err })); + }, + + handleReset() { + this.storeCode = ''; + this.storeStatus = null; + this.search(); + }, + + handleView(row, type) { + this.dialogUpdate = true; + this.storeInfo = row; + this.updateFlag = type === 'update'; + }, + + handleDelete(id) { + deleteStoreInfo(id) + .then(() => { + this.$message({ type: 'success', message }); + this.search(); + }) + .catch(err => this.$message({ type: 'error', message: err })); + }, + + handleClose() { + this.dialogUpdate = false; + }, + + closeDialog() { + this.dialogUpdate = false; + this.search(); + }, + + changeCurrentPage(currentPage) { + this.currentPage = currentPage; + this.search(); + }, + + tableRowClassName({ row, rowIndex }) { + if ((rowIndex + 1) % 2 === 0) { + return "warning-row"; + } else { + return "success-row"; } + }, } } </script> @@ -49,10 +159,99 @@ color: #4b9bb7; display: flex; height: 100%; + .right{ flex: 1; height: 100%; padding-left: 20px; + + .headerContent { + display: flex; + line-height: 100px; + justify-content: space-between; + align-items: center; + + .find { + display: flex; + } + + .search-item { + display: flex; + padding: 10px; + } + + .findBtn { + line-height: 100px; + margin-left: 15px; + display: flex; + align-items: center; + + .el-button { + padding: 12px 25px; + } + } + + .addBtn { + padding: 12px 30px; + margin-left: 20%; + } + } + + main { + background-color: #09152f; + margin-top: 20px; + padding-bottom: 50px; + + .mainTitle { + line-height: 60px; + } + + .el-link { + color: #4b9bb7; + } + + .leftPx { + margin-left: 10px; + } + + .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; + } + } + } + + .el-table { + color: #4b9bb7; + font-size: 10px; + + &::v-deep .el-table__empty-block { + background-color: #09152f; + color: #4b9bb7; + } + + .operation { + display: flex; + + .el-button { + border: none; + } + + span:hover { + cursor: pointer; + } + } + } + } } &::v-deep .el-dialog__header, &::v-deep .el-dialog__body { diff --git a/src/views/operate/message/myIndex/createUser/index.vue b/src/views/operate/message/myIndex/createUser/index.vue deleted file mode 100644 index 2c25012..0000000 --- a/src/views/operate/message/myIndex/createUser/index.vue +++ /dev/null @@ -1,435 +0,0 @@ -<template> - <div class="createUser"> - <main> - <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" - label-position="right"> - <!-- 娑堟伅鏍忕洰 --> - <el-form-item class="optionItem" label="娑堟伅鏍忕洰:" prop="messageType"> - <div class="message-item"> - <div class="message-item__left"> - <el-select v-model="role.messageType" placeholder="璇烽�夋嫨娑堟伅鏍忕洰"> - <el-option v-for="item in colList" :key="item.id" :label="item.columnName" - :value="item.id"> - </el-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 node-key="id"> - </el-tree> - </el-option> - </el-select> - </div> - </el-form-item> - <!-- 娑堟伅鍐呭 --> - <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> - <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor> - <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> --> - </el-form-item> - <!-- 鎻愰啋鏂瑰紡 --> - <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode"> - <el-radio-group v-model="role.channelCode"> - <el-radio label="01">绔欏唴淇�</el-radio> - <el-radio label="02">閭欢</el-radio> - <el-radio label="03">鐭俊</el-radio> - </el-radio-group> - <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> - </el-form-item> - <el-form-item> - <div class="optionBtn"> - <el-button type="primary" @click.native.prevent="handleSubmit(0)" class="btn save">淇濆瓨 - </el-button> - <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷 - </el-button> - <el-button type="primary" @click.native.prevent="handleView" class="btn submit">棰勮 - </el-button> - <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button> - </div> - </el-form-item> - </el-form> - <!-- 鏂板鏍忕洰 --> - <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="60%" - :before-close="handleConfirmClose" append-to-body> - <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd> - </el-dialog> - <!-- 棰勮娑堟伅 --> - <el-dialog title="娑堟伅棰勮" :visible.sync="dialogView" v-if="dialogView" width="60%" - :before-close="handleConfirmClose" append-to-body> - <MyColView :info="info" @closeDialog="closeDialog"></MyColView> - </el-dialog> - </div> - </main> - </div> -</template> -<script> -import MyEditor from '@/components/edit' -import MyColumnAdd from '@/views/operate/message/mycontrol/createUser' -import MyColView from '../messageView' -export default { - components: { MyEditor, MyColumnAdd,MyColView }, - data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐秷鎭爮鐩�")); - } else { - callback(); - } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(); - } else { - callback(); - } - }; - const validateTruename = (rule, value, callback) => { - if (value.length !== 0) { - callback(); - } else { - callback(new Error('璇烽�夋嫨鎺ユ敹瀵硅薄')); - } - }; - return { - role: { - messageType: '', - head: '', - targetTo: '', - targetFrom: null, - body: '', - channelCode: '01', - }, - createRoleRules: { - messageType: [ - { required: true, trigger: "blur", validator: validateNickname }, - ], - head: [ - { required: false, trigger: "blur", validator: validatePass }, - ], - targetTo: [ - { required: false, trigger: "blur", validator: validateTruename }, - ], - }, - colList: [], - departList: [], - typeList: [], - dialogCreate: false, - dialogView: false, - defaultProps: { - children: 'children', - label: 'departName', - // disabled: function (data, node) { - // if (data.createTime) { - // return !data.leaf - // } - // } - }, - checkedList: [], - tempNameArr:[], - info:{}, - sendUser:"" - } - }, - created() { - this.setColumnList(); - this.setDepartList(); - this.getLoginUserInfo(); - }, - methods: { - // 鍏抽棴寮圭獥 - handleConfirmClose(done) { - this.$confirm('纭鍏抽棴?') - .then(_ => { - done(); - }) - }, - // 璁剧疆鏍忕洰 - async setColumnList() { - this.colList = await this.getColumnList(); - }, - // 鑾峰彇鏍忕洰 - async getColumnList() { - let arr; - await this.$axios({ - method: 'get', - url: 'sccg/message_column/getAllColumn' - }) - .then(res => { - console.log(res); - arr = res.data; - }) - return arr; - }, - // 鍏抽棴寮圭獥 - closeDialog({ flag, index }) { - this.dialogCreate = flag; - if (index === 1) { - // 閲嶆柊璁剧疆鏍忕洰 - this.setColumnList(); - } - }, - // 鑾峰彇閮ㄩ棬鏍� - async getDepartList() { - let arr - await this.$axios({ - method: 'get', - url: 'sccg/depart/tree' - }) - .then(res => { - arr = res.data - }) - return arr; - }, - // 璁剧疆閮ㄩ棬鏍� - async setDepartList() { - this.departList = await this.filterDepartList(); - }, - // 澶勭悊閮ㄩ棬鏍� - async filterDepartList() { - let arr = await this.getDepartList(); - const { setChildren } = this; - // console.log(setChildren); - arr.forEach(item => { - setChildren(item); - }) - return arr; - }, - // 閫掑綊children - setChildren(obj) { - if (obj.children !== null) { - if (obj.children.length !== 0) { - obj.children.forEach(item => { - return this.setChildren(item); - }) - } - } else { - if (obj.userInfoDTOS.length !== 0) { - obj.children = []; - obj.userInfoDTOS.forEach(item => { - obj.children.push({ id: item.userId, departName: item.username }) - }) - } - } - }, - // 閫変腑id - handleCheck(data, node) { - let arr = [],nameArr = [] - console.log(node.checkedNodes) - node.checkedNodes.forEach(item => { - if(!item.hasOwnProperty('departType')){ - arr.push(item.id) - nameArr.push(item.departName) - } - }) - this.checkedList = arr - this.tempNameArr = nameArr - console.log(this.tempNameArr) - this.role.targetTo = arr.length + '浜�' - }, - // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) - handleSubmit(mystatus) { - this.$refs.user.validate((valid) => { - if (valid) { - const { role, checkedList } = this; - console.log(checkedList); - this.$axios({ - method: 'post', - url: 'sccg/message/sendMessage', - data: { - body: role.body, - channelCode: `${role.channelCode}`, - head: role.head, - messageType: role.messageType, - sendTime: new Date(), - targetTo: checkedList.join(','), - targetFrom: `${role.targetFrom}`, - status: mystatus, - } - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: mystatus === 1 ? '鍙戦�佹垚鍔�' : '淇濆瓨鎴愬姛', - }) - this.$emit('closeMyDialog', { flag: false, index: 1 }); - } - }) - } else { - return false; - } - }) - }, - // 鑾峰緱娑堟伅浣� - getMyBody(obj) { - console.log(obj); - this.role.body = obj; - }, - // 閲嶇疆琛ㄥ崟 - handleReset() { - this.$refs.edit.editor.txt.clear(); - // this.$refs.edit.wangEditor.txt.html('<p><br></p>') - this.setDepartList(); - this.$refs.user.resetFields(); - }, - // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅 - getLoginUserInfo() { - const name = sessionStorage.getItem('name'); - this.$axios({ - method: 'get', - url: 'sccg/admin/info?name=' + name, - }) - .then(res => { - this.role.targetFrom = res.data.userId - this.sendUser = res.data.username - }) - }, - // 娑堟伅棰勮 - handleView() { - this.$refs.user.validate((valid) => { - if (valid) { - const { role,getColText,tempNameArr,sendUser } = this - this.dialogView = true; - let info = {} - // 鑾峰緱鏍忕洰娑堟伅 - info.channelCode = role.channelCode === '01'? '绔欏唴淇�': role.channelCode === '02' ? '閭欢':'鐭俊' - info.messageType = getColText(role.messageType) - info.body = role.body - info.head = role.head - info.targetTo = tempNameArr - info.targetFrom = sendUser - this.info = info - } else { - return false - } - }) - }, - // 鑾峰緱鏍忕洰娑堟伅 - getColText(id){ - console.log(id) - const {colList} = this - let str = '' - colList.forEach(item=>{ - item.id === id ? str = item.columnName : '' - }) - return str - } - }, - props: ['closeMyDialog'] -} -</script> -<style lang="scss" scoped> -.createUser { - border-radius: 1px; - background-color: #09152f; - - main { - text-align: left; - padding: 0 55px; - background-color: #09152f; - padding-bottom: 50px; - - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - &:deep(.el-dialog__title) { - color: #4b9bb7; - } - &::v-deep .el-form-item__label { - color: #4b9bb7; - } - - &::v-deep .el-input__inner { - width: 400px; - background-color: #09152f; - border: 1px solid #17324c; - } - - .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: #4b9bb7; - } - } - - .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> \ No newline at end of file diff --git a/src/views/operate/message/myIndex/index.vue b/src/views/operate/message/myIndex/index.vue index 6039ace..2cbc3ed 100644 --- a/src/views/operate/message/myIndex/index.vue +++ b/src/views/operate/message/myIndex/index.vue @@ -3,7 +3,7 @@ <header> <div class="header-nav"> <span class="nav-left">鏁版嵁绛涢��</span> - <span class="nav-right">楂樼骇鎼滅储</span> + <span class="nav-right" @click="showMoreParamsDialog">楂樼骇鎼滅储</span> </div> <div class="header-content"> <div class="search"> @@ -19,8 +19,8 @@ </div> <div class="message-kind"> <span>娑堟伅鍒嗙被:</span> - <el-select v-model="messageKind" placeholder="璇烽�夋嫨娑堟伅鍒嗙被"> - <el-option v-for="item in kindList" :key="item.id" :label="item.columnName" :value="item.id"> + <el-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> @@ -57,8 +57,7 @@ </el-table-column> <el-table-column prop="channelCode" label="娑堟伅鍒嗙被" min-width="10"> <template slot-scope="scope"> - <span>{{scope.row.channelCode === '01' ? '绔欏唴淇�':scope.row.channelCode - ==='02'?"閭欢":'鐭俊'}}</span> + <span>{{ getMessageType(scope.row.channelCode) }}</span> </template> </el-table-column> <el-table-column prop="status" label="鍙戝竷鐘舵��" min-width="5"> @@ -80,17 +79,17 @@ <!-- 鏂板缓娑堟伅 --> <el-dialog title="鏂板缓娑堟伅" :visible.sync="dialogCreate" v-if="dialogCreate" width="80%" :before-close="handleConfirmClose"> - <MyCreate @closeMyDialog="closeDialog"></MyCreate> + <MyEdit @closeMyDialog="closeDialog" :type="'create'" :myDataRow="null"></MyEdit> </el-dialog> <!-- 娑堟伅璇︽儏 --> <el-dialog title="娑堟伅璇︽儏" :visible.sync="dialogView" v-if="dialogView" width="45%" :before-close="handleClose"> - <MyView @closeDialog="closeDialog" :myinfo="info">></MyView> + <MyView @closeDialog="closeDialog" :myDataRow="tableRowData">></MyView> </el-dialog> <!-- 缂栬緫椤甸潰 --> <el-dialog title="缂栬緫娑堟伅" :visible.sync="dialogEdit" v-if="dialogEdit" width="80%" :before-close="handleClose"> - <MyEdit @closeDialog="closeDialog" :myDataRow="info"></MyEdit> + <MyEdit @closeDialog="closeDialog" :myDataRow="tableRowData" :type="'update'"></MyEdit> </el-dialog> <!-- tools --> <div class="tools"> @@ -111,30 +110,37 @@ </div> <div class="pagination"> <el-pagination background :current-page="currentPage" layout="prev, pager, next" - :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" - > + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> </el-pagination> </div> </div> </div> + + <el-dialog + title="楂樼骇鍙傛暟" + :visible.sync="isShowMoreParams" + width="30%" + :before-close="handleClose"> + </el-dialog> </main> </div> </template> <script> import helper from '@/utils/mydate' import MyView from './myview' -import MyCreate from './createUser' -// 寮曞叆缂栬緫缁勪欢 import MyEdit from './update' +import { deleteMessage, getMessageById, getMessageList } from "@/api/operate/messageManagement"; +import {SUCCESS_CODE} from "@/utils"; + export default { - components: { - MyView, MyCreate,MyEdit - }, + components: { MyView, MyEdit }, data() { return { tableData: [], - context: "", - dialogEdit:false, + tableRowData: null, + isShowMoreParams: false, + context: '', + dialogEdit: false, dialogCreate: false, dialogView: false, totalNum: null, @@ -165,7 +171,7 @@ ], tempList: [], messageStatus: 2, - messageKind: '00', + messageType: '00', statusList: [ { label: '鍏ㄩ儴', @@ -180,7 +186,7 @@ value: 1, } ], - kindList: [ + typeList: [ { id:'00', columnName:'鍏ㄩ儴', @@ -201,89 +207,71 @@ } }, created() { - const {setTableData} = this - setTableData(); + this.getMessageList(); }, + methods: { // 鏌ヨ handleSearch(){ - this.setTableData(); + this.getMessageList(); }, + // 閲嶇疆 handleReset(){ - + this.messageStatus = 2; + this.messageType = '00'; + this.context = ''; }, + // 鏌ョ湅 handleView(data){ - this.info = data; - this.dialogView = true; + this.tableRowData = data; + this.dialogView = true; }, + // 缂栬緫 handleEdit(data){ - this.info = data; - this.dialogEdit = true; + this.tableRowData = data; + this.dialogEdit = true; }, + // 鍒犻櫎淇℃伅 handleDelete(idarr) { this.$confirm('纭鍒犻櫎?') - .then(_ => { - this.$axios({ - method: 'post', - url: 'sccg/message/delete?ids=' + idarr, - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: '鍒犻櫎鎴愬姛', - }) - this.setTableData(); - } else { - this.$message({ - type: 'error', - message: res.message - }) - } - }) + .then(() => { + deleteMessage(idarr) + .then(({ code, message }) => { + if (code === SUCCESS_CODE) { + this.getMessageList(); + this.$message({ type: 'success', message }); + } else { + this.$message({ type: 'error', message }); + } + }) + .catch(err => { this.$message({ type: 'error', message: err }) }); }) }, - // 璁剧疆琛ㄦ牸鏁版嵁 - async setTableData() { - const arr = await this.getMessageList(); - this.tableData = arr.records; - this.totalNum = arr.total - }, + // 鑾峰彇娑堟伅鏁版嵁 - async getMessageList() { - let arr = []; - const { currentPage, pageSize,context,messageStatus,messageKind } = this; - await this.$axios({ - method: 'post', - url: 'sccg/message/list', - data: { - body: "", - channelCode: messageKind === '00' ?'':messageKind, - createUser: '', - current: currentPage, - head: context, - messageType: "", - pageSize: pageSize, - randomCode: "", - remark: "", - sendTime: "", - status: messageStatus === 2 ? '':messageStatus, - targetFrom: "", - targetTo: "" - } - }) - .then(res => { - arr = res.data; - }) - return arr; + getMessageList() { + const messageParam = { + current: this.currentPage, + size: this.pageSize, + channelCode: this.messageType, + status: this.messageStatus, + head: this.context + } + getMessageList(messageParam) + .then(({ data }) => { + this.tableData = []; + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); }, + // 鎵归噺涓嬫媺妗嗘搷浣� async selectChange(list) { - console.log(this.tempList); if (this.tempList.length !== 0) { this.preMyIdx = list; if (list === 3) { @@ -302,6 +290,7 @@ }) } }, + // 鎵归噺鎿嶄綔 mulUpdateStatus(idArr, flag) { this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤瑙掕壊鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤瑙掕壊鍚�?') @@ -323,55 +312,61 @@ message: res.message }) } - console.log(res); }) }) .catch(err => { console.log(err) }) }, + // 琛ㄦ牸鐩戝惉 tableChange(list) { this.tempList = []; list.forEach(item => { this.tempList.push(item.id); }) - if (list.length === this.tableData.length) { - this.all = true; - } else { - this.all = false - } + this.all = list.length === this.tableData.length; }, + // 淇敼鏃堕棿鏍煎紡 changeTime({ updateTime }) { 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) { + if ((rowIndex + 1) % 2 === 0) { return 'warning-row'; } else { return 'success-row'; } - return ''; }, + // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.setTableData(); + this.getMessageList(); }, + + showMoreParamsDialog() { + this.isShowMoreParams = true; + }, + // 鍏抽棴寮圭獥 handleClose(done) { done(); }, + // 纭鍏抽棴寮圭獥 handleConfirmClose(done) { this.$confirm('纭鍏抽棴?') @@ -382,13 +377,19 @@ console.log(err); }) }, + // 鑷畾涔夊叧闂脊绐� closeDialog({ flag, index }) { this.dialogCreate = flag; this.dialogView = flag; if (index === 1) { - this.setTableData(); + this.getMessageList(); } + }, + + getMessageType(id) { + const result = this.typeList.find(item => item.id === id); + return result.columnName; } } } @@ -401,7 +402,6 @@ header { background-color: #09152f; - border: 1pox solid #fff; .header-nav { line-height: 40px; @@ -459,7 +459,6 @@ background-color: #09152f; margin-top: 20px; padding-bottom: 50px; - border: 1pox solid #fff; .el-link { color: #4b9bb7; diff --git a/src/views/operate/message/myIndex/myview/index.vue b/src/views/operate/message/myIndex/myview/index.vue index 93b3484..0c944c7 100644 --- a/src/views/operate/message/myIndex/myview/index.vue +++ b/src/views/operate/message/myIndex/myview/index.vue @@ -23,15 +23,15 @@ } }, created() { - this.info = this.myinfo; - this.title = this.info.head; - this.sendTime = this.info.sendTime; - this.body = this.info.body; + const { head, sendTime, body } = this.tableRowData; + this.title = head; + this.sendTime = sendTime; + this.body = body; }, methods: { }, - props: ['closeMyDialog','myinfo'] + props: ['tableRowData'] } </script> <style lang="scss" scoped> diff --git a/src/views/operate/message/myIndex/update/index.vue b/src/views/operate/message/myIndex/update/index.vue index 2899450..dd2555d 100644 --- a/src/views/operate/message/myIndex/update/index.vue +++ b/src/views/operate/message/myIndex/update/index.vue @@ -1,481 +1,393 @@ <template> - <div class="createUser"> - <main> - <div class="mainContent"> - <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" - label-position="right"> - <!-- 娑堟伅鏍忕洰 --> - <el-form-item class="optionItem" label="娑堟伅鏍忕洰:" prop="messageType"> - <div class="message-item"> - <div class="message-item__left"> - <el-select v-model="role.messageType" placeholder="璇烽�夋嫨娑堟伅鏍忕洰"> - <el-option v-for="item in colList" :key="item.id" :label="item.columnName" - :value="item.id"> - </el-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 node-key="id"> - </el-tree> - </el-option> - </el-select> - </div> - </el-form-item> - <!-- 娑堟伅鍐呭 --> - <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> - <MyEditor ref="edit" @getMyBody="getMyBody" :mybody='role.body'></MyEditor> - <!-- <el-input type="textarea" v-model="role.description" placeholder="璇疯緭鍏ユ弿杩板唴瀹�200瀛椾互鍐�"></el-input> --> - </el-form-item> - <!-- 鎻愰啋鏂瑰紡 --> - <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode"> - <el-radio-group v-model="role.channelCode"> - <el-radio label="01">绔欏唴淇�</el-radio> - <el-radio label="02">閭欢</el-radio> - <el-radio label="03">鐭俊</el-radio> - </el-radio-group> - <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> - </el-form-item> - <el-form-item> - <div class="optionBtn"> - <el-button type="primary" @click.native.prevent="handleSubmit(0)" class="btn save">淇濆瓨 - </el-button> - <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷 - </el-button> - <el-button type="primary" @click.native.prevent="handleView" class="btn submit">棰勮 - </el-button> - <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button> - </div> - </el-form-item> - </el-form> - <!-- 鏂板鏍忕洰 --> - <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="60%" - :before-close="handleConfirmClose" append-to-body> - <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd> - </el-dialog> - <!-- 棰勮娑堟伅 --> - <el-dialog title="娑堟伅棰勮" :visible.sync="dialogView" v-if="dialogView" width="60%" - :before-close="handleConfirmClose" append-to-body> - <MyColView :info="info" @closeDialog="closeDialog"></MyColView> - </el-dialog> + <div class="createUser"> + <main> + <div class="mainContent"> + <el-form ref="user" label-width="140px" autoComplete="on" :model="role" :rules="createRoleRules" + label-position="right"> + <!-- 娑堟伅鏍忕洰 --> + <el-form-item class="optionItem" label="娑堟伅鏍忕洰:" prop="messageType"> + <div class="message-item"> + <div class="message-item__left"> + <el-select v-model="role.messageType" placeholder="璇烽�夋嫨娑堟伅鏍忕洰"> + <el-option v-for="item in colList" :key="item.id" :label="item.columnName" + :value="item.id"> + </el-option> + </el-select> + </div> + <span class="message-add" @click='dialogCreate = true'> 娣诲姞鏍忕洰</span> </div> - </main> - </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 node-key="id"> + </el-tree> + </el-option> + </el-select> + </div> + </el-form-item> + <!-- 娑堟伅鍐呭 --> + <el-form-item class="optionItem" label="娑堟伅鍐呭:" prop="body"> + <MyEditor ref="edit" @getMyBody="getMyBody"></MyEditor> + </el-form-item> + <!-- 鎻愰啋鏂瑰紡 --> + <el-form-item class="optionItem" label="鎻愰啋鏂瑰紡:" prop="channelCode"> + <el-radio-group v-model="role.channelCode"> + <el-radio label="01">绔欏唴淇�</el-radio> + <el-radio label="02">閭欢</el-radio> + <el-radio label="03">鐭俊</el-radio> + </el-radio-group> + <span class="message-tip">(鐭俊鍙敤鏁�: 1000鏉�)</span> + </el-form-item> + <el-form-item> + <div class="optionBtn"> + <el-button type="primary" @click.native.prevent="handleSubmit(0)" class="btn save">淇濆瓨 + </el-button> + <el-button type="primary" @click.native.prevent="handleSubmit(1)" class="btn submit">鍙戝竷 + </el-button> + <el-button type="primary" @click.native.prevent="handleView" class="btn submit">棰勮 + </el-button> + <el-button class="btn cancel" @click.native.prevent="handleReset">閲嶇疆</el-button> + </div> + </el-form-item> + </el-form> + <!-- 鏂板鏍忕洰 --> + <el-dialog title="娣诲姞鏍忕洰" :visible.sync="dialogCreate" v-if="dialogCreate" width="60%" + :before-close="handleConfirmClose" append-to-body> + <MyColumnAdd @closeDialog="closeDialog"></MyColumnAdd> + </el-dialog> + <!-- 棰勮娑堟伅 --> + <el-dialog title="娑堟伅棰勮" :visible.sync="dialogView" v-if="dialogView" width="60%" + :before-close="handleConfirmClose" append-to-body> + <MyColView :info="info" @closeDialog="closeDialog"></MyColView> + </el-dialog> + </div> + </main> + </div> </template> <script> import MyEditor from '@/components/edit' import MyColumnAdd from '@/views/operate/message/mycontrol/createUser' import MyColView from '../messageView' +import { sendMessage, updateMessage } from "@/api/operate/messageManagement"; + export default { - components: { MyEditor, MyColumnAdd,MyColView }, - data() { - const validateNickname = (rule, value, callback) => { - if (!value) { - callback(new Error("璇峰~鍐欐秷鎭爮鐩�")); - } else { - callback(); - } - }; - const validatePass = (rule, value, callback) => { - if (!value) { - callback(); - } else { - callback(); - } - }; - const validateTruename = (rule, value, callback) => { - if (value.length !== 0) { - callback(); - } else { - callback(new Error('璇烽�夋嫨鎺ユ敹瀵硅薄')); - } - }; - return { - role: { - messageType: '', - head: '', - targetTo: '', - targetFrom: null, - body: '', - channelCode: '01', - }, - createRoleRules: { - messageType: [ - { required: true, trigger: "blur", validator: validateNickname }, - ], - head: [ - { required: false, trigger: "blur", validator: validatePass }, - ], - targetTo: [ - { required: false, trigger: "blur", validator: validateTruename }, - ], - }, - colList: [], - departList: [], - typeList: [], - dialogCreate: false, - dialogView: false, - defaultProps: { - children: 'children', - label: 'departName', - // disabled: function (data, node) { - // if (data.createTime) { - // return !data.leaf - // } - // } - }, - checkedList: [], - tempNameArr:[], - info:{}, - sendUser:"" + components: { MyEditor, MyColumnAdd,MyColView }, + props: ['type', 'myDataRow'], + data() { + return { + role: { + messageType: '', + head: '', + targetTo: '', + targetFrom: null, + body: '', + channelCode: '01', + }, + createRoleRules: { + messageType: [ + { required: true, trigger: ['blur', 'change'], message: '璇疯緭鍏ユ秷鎭爮鐩�' }, + ], + head: [ + { required: false, trigger: "blur" }, + ], + targetTo: [ + { required: false, trigger: "blur" }, + ], + }, + 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 === 'update' && this.myDataRow) { + this.role = this.myDataRow; + } + }, + methods: { + // 鍏抽棴寮圭獥 + handleConfirmClose(done) { + this.$confirm('纭鍏抽棴?') + .then(_ => { + done(); + }) + }, + + // 鑾峰彇鏍忕洰 + async getColumnList() { + await this.$axios({ + method: 'get', + url: 'sccg/message_column/getAllColumn' + }) + .then(res => { + this.colList = res.data; + }) + }, + // 鍏抽棴寮圭獥 + closeDialog({ flag, index }) { + this.dialogCreate = flag; + if (index === 1) { + // 閲嶆柊璁剧疆鏍忕洰 + this.getColumnList(); + } + }, + + // 鑾峰彇閮ㄩ棬鏍� + 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); + }) } - }, - created() { - this.setColumnList(); - this.setDepartList(); - this.getLoginUserInfo(); - this.role = this.myDataRow; - console.log(this.role); - }, - methods: { - // 鍏抽棴寮圭獥 - handleConfirmClose(done) { - this.$confirm('纭鍏抽棴?') - .then(_ => { - done(); - }) - }, - // 璁剧疆鏍忕洰 - async setColumnList() { - this.colList = await this.getColumnList(); - }, - // 鑾峰彇鏍忕洰 - async getColumnList() { - let arr; - await this.$axios({ - method: 'get', - url: 'sccg/message_column/getAllColumn' - }) - .then(res => { - console.log(res); - arr = res.data; - }) - return arr; - }, - // 鍏抽棴寮圭獥 - closeDialog({ flag, index }) { - this.dialogCreate = flag; - if (index === 1) { - // 閲嶆柊璁剧疆鏍忕洰 - this.setColumnList(); - } - }, - // 鑾峰彇閮ㄩ棬鏍� - async getDepartList() { - let arr - await this.$axios({ - method: 'get', - url: 'sccg/depart/tree' - }) - .then(res => { - arr = res.data - }) - return arr; - }, - // 璁剧疆閮ㄩ棬鏍� - async setDepartList() { - this.departList = await this.filterDepartList(); - }, - // 澶勭悊閮ㄩ棬鏍� - async filterDepartList() { - let arr = await this.getDepartList(); - const { setChildren } = this; - // console.log(setChildren); - arr.forEach(item => { - setChildren(item); - }) - return arr; - }, - // 閫掑綊children - setChildren(obj) { - if (obj.children !== null) { - if (obj.children.length !== 0) { - obj.children.forEach(item => { - return this.setChildren(item); - }) - } - } else { - if (obj.userInfoDTOS.length !== 0) { - obj.children = []; - obj.userInfoDTOS.forEach(item => { - obj.children.push({ id: item.userId, departName: item.username }) - }) - } - } - }, - // 閫変腑id - handleCheck(data, node) { - let arr = [],nameArr = [] - console.log(node.checkedNodes) - node.checkedNodes.forEach(item => { - if(!item.hasOwnProperty('departType')){ - arr.push(item.id) - nameArr.push(item.departName) - } - }) - this.checkedList = arr - this.tempNameArr = nameArr - console.log(this.tempNameArr) - this.role.targetTo = arr.length + '浜�' - }, - // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) - handleSubmit(mystatus) { - console.log(mystatus); - if(mystatus===0){ - this.updateMessage(mystatus); - }else{ - this.newsMessage(mystatus); - } - }, - //淇敼娑堟伅 - updateMessage(mystatus){ - this.$refs.user.validate((valid) => { - if (valid) { - const { role, checkedList } = this; - console.log(checkedList); - this.$axios({ - method: 'post', - url: `sccg/message/update/${this.role.id}`, - data: { - body: role.body, - channelCode: `${role.channelCode}`, - head: role.head, - messageType: role.messageType, - sendTime: new Date(), - targetTo: checkedList.join(','), - targetFrom: `${role.targetFrom}`, - status: mystatus, - } - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: mystatus === 1 ? '鍙戝竷鎴愬姛' : '淇濆瓨鎴愬姛', - }) - this.$emit('closeMyDialog', { flag: false, index: 1 }); - } - }) - } else { - return false; - } - }) - }, - //鍙戝竷娑堟伅 - newsMessage(mystatus){ - this.$refs.user.validate((valid) => { - if (valid) { - const { role, checkedList } = this; - console.log(checkedList); - this.$axios({ - method: 'post', - url: 'sccg/message/sendMessage', - data: { - id:role.id, - body: role.body, - channelCode: `${role.channelCode}`, - head: role.head, - messageType: role.messageType, - sendTime: new Date(), - targetTo: checkedList.join(','), - targetFrom: `${role.targetFrom}`, - status: mystatus, - } - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message: mystatus === 1 ? '鍙戝竷鎴愬姛' : '淇濆瓨鎴愬姛', - }) - this.$emit('closeMyDialog', { flag: false, index: 1 }); - } - }) - } else { - return false; - } - }) - }, - // 鑾峰緱娑堟伅浣� - getMyBody(obj) { - console.log(obj); - this.role.body = obj; - }, - // 閲嶇疆琛ㄥ崟 - handleReset() { - this.$refs.edit.editor.txt.clear(); - // this.$refs.edit.wangEditor.txt.html('<p><br></p>') - this.setDepartList(); - this.$refs.user.resetFields(); - }, - // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅 - getLoginUserInfo() { - const name = sessionStorage.getItem('name'); - this.$axios({ - method: 'get', - url: 'sccg/admin/info?name=' + name, - }) - .then(res => { - this.role.targetFrom = res.data.userId - this.sendUser = res.data.username - }) - }, - // 娑堟伅棰勮 - handleView() { - this.$refs.user.validate((valid) => { - if (valid) { - const { role,getColText,tempNameArr,sendUser } = this - this.dialogView = true; - let info = {} - // 鑾峰緱鏍忕洰娑堟伅 - info.channelCode = role.channelCode === '01'? '绔欏唴淇�': role.channelCode === '02' ? '閭欢':'鐭俊' - info.messageType = getColText(role.messageType) - info.body = role.body - info.head = role.head - info.targetTo = tempNameArr - info.targetFrom = sendUser - this.info = info - } else { - return false - } - }) - }, - // 鑾峰緱鏍忕洰娑堟伅 - getColText(id){ - console.log(id) - const {colList} = this - let str = '' - colList.forEach(item=>{ - item.id === id ? str = item.columnName : '' - }) - return str + } else { + if (obj.userInfoDTOS.length !== 0) { + obj.children = []; + obj.userInfoDTOS.forEach(item => { + obj.children.push({ id: item.userId, departName: item.username }) + }) } + } + return obj; }, - props: ['closeMyDialog','myDataRow'] + + // 閫変腑id + handleCheck(data, node) { + node.checkedNodes.forEach(item => { + if(!item.hasOwnProperty('departType')){ + this.checkedList.push(item.id) + this.tempNameArr.push(item.departName) + } + }) + this.role.targetTo = this.checkedList.length + '浜�' + }, + + // 鏂板缓/淇濆瓨娑堟伅(1:鏂板缓,0淇濆瓨娑堟伅) + handleSubmit(mystatus) { + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, messageType, targetFrom, channelCode } = this.role; + const params = { + body, + head, + messageType, + channelCode: `${channelCode}`, + sendTime: new Date(), + targetTo: this.checkedList.join(','), + targetFrom: `${targetFrom}`, + status: mystatus, + } + if (this.type === 'create') { + sendMessage(params) + .then(() => { + this.$emit('closeMyDialog'); + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + }) + .catch(err => this.$message({ type: 'error', message: err })); + } else { + updateMessage(params) + .then(() => { + this.$emit('closeMyDialog'); + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + }) + .catch(err => this.$message({ type: 'error', message: err })); + } + } else { + this.$message.error({ type: 'warning', message: '璇锋鏌ュ繀濉」' }); + } + }) + }, + + // 鑾峰緱娑堟伅浣� + getMyBody(obj) { + this.role.body = obj; + }, + + // 閲嶇疆琛ㄥ崟 + handleReset() { + this.$refs.edit.editor.txt.clear(); + this.setDepartList(); + this.$refs.user.resetFields(); + }, + + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛淇℃伅 + getLoginUserInfo() { + const name = sessionStorage.getItem('name'); + this.$axios({ + method: 'get', + url: 'sccg/admin/info?name=' + name, + }) + .then(res => { + this.role.targetFrom = res.data.userId + this.sendUser = res.data.username + }) + }, + + // 娑堟伅棰勮 + handleView() { + this.$refs.user.validate((valid) => { + if (valid) { + const { body, head, channelCode } = this.role; + this.dialogView = true; + this.info = { + body, + head, + channelCode: channelCode === '01'? '绔欏唴淇�': channelCode === '02' ? '閭欢':'鐭俊', + messageType: this.getColText(this.role.messageType), + targetTo: this.tempNameArr, + targetFrom: this.sendUser + } + } else { + this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' }); + } + }) + }, + + // 鑾峰緱鏍忕洰娑堟伅 + getColText(id){ + let str = '' + this.colList.forEach(item=>{ + item.id === id ? str = item.columnName : '' + }) + return str; + } + }, } </script> <style lang="scss" scoped> .createUser { - border-radius: 1px; + border-radius: 1px; + background-color: #09152f; + + main { + text-align: left; + padding: 0 55px; background-color: #09152f; - main { - text-align: left; - padding: 0 55px; + .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; - padding-bottom: 50px; + border: 1px solid #17324c; + } - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - &:deep(.el-dialog__title) { - color: #4b9bb7; - } - &::v-deep .el-form-item__label { - color: #4b9bb7; - } + .message-item__left { + width: 400px; + } - &::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: #4b9bb7; - } - } - - .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; - } - } - + .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: #4b9bb7; + } + } + + .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> \ No newline at end of file diff --git a/src/views/operate/viewEvent/index.vue b/src/views/operate/viewEvent/index.vue index 76194d5..fea39e0 100644 --- a/src/views/operate/viewEvent/index.vue +++ b/src/views/operate/viewEvent/index.vue @@ -28,14 +28,9 @@ </div> </div> <div class="date-search contentItem"> - <!-- <span>鎸夌被鍨�:</span> - <div class="search"> - <el-input placeholder="璇疯緭鍏ョ紪鍙�"></el-input> - </div> --> <div class="btn"> <el-button icon="el-icon-plus" type="primary">鎼滅储</el-button> - <!-- <el-button icon="el-icon-delete">閲嶇疆</el-button> --> - </div> + </div> </div> </div> <div class="headerContent"> @@ -99,17 +94,6 @@ <el-table-column :prop="myproblem === 1 ? 'continueTime' : 'materials'" :label="myproblem === 1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'" min-width="15"> </el-table-column> - <!-- <el-table-column prop="operation" label="鎿嶄綔" min-width="15"> - <template slot-scope="scope"> - <div class="btn"> - <!-- v-if="instatus===7 ? true : false" --> - <!-- <span @click="handleExamine(scope.row)" v-if="instatus===7">瀹℃牳</span> - <span @click="handleClosure(scope.row)" v-if="instatus===8">缁撴</span> - <span class="line" v-if="instatus !==9">|</span> - <span @click="JumpView(scope.row)">鏌ョ湅</span> - </div> - </template> - </el-table-column> --> </el-table> <!-- 瀹℃牳椤甸潰 --> <el-dialog :visible.sync="dialogExamine" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogExamine" @@ -126,7 +110,7 @@ <!-- 璇︽儏椤甸潰 --> <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" :before-close="handleNoClose"> - <MyDetail :info=info v-if="myproblem == 1 ? true : false" :mycode='code'></MyDetail> + <MyDetail :info=info v-if="myproblem === 1" :mycode='code'></MyDetail> <MyIllDetail :info=info v-else :mycode="code"></MyIllDetail> </el-dialog> <!-- tools --> diff --git a/src/views/systemSetting/platform/cockpitManage/createUser/index.vue b/src/views/systemSetting/platform/cockpitManage/createUser/index.vue deleted file mode 100644 index d57c21e..0000000 --- a/src/views/systemSetting/platform/cockpitManage/createUser/index.vue +++ /dev/null @@ -1,411 +0,0 @@ -<template> - <div class="createUser"> - <main> - <div class="mainContent"> - <el-form - ref="user" - label-width="140px" - autoComplete="on" - :model="depart" - :rules="departRules" - label-position="right" - > - <!-- 閮ㄩ棬鍚嶇О --> - <span style="heght:18px;display:block;line-height: 14px;"> - 鎵ф硶浜哄憳缁撴瀯 - </span> - <el-form-item class="optionItem" label="閮ㄩ棬鍚嶇О:" prop="name"> - <el-input v-model="depart.name" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"></el-input> - </el-form-item> - <!-- 涓婄骇閮ㄩ棬 --> - <el-form-item class="optionItem" label="閮ㄩ棬浜烘暟:" prop="peopleNumber"> - <el-input v-model="depart.peopleNumber" placeholder="璇疯緭鍏ラ儴闂ㄤ汉鏁�"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="杈栧尯绠$悊:" prop="regionIds"> - <el-input v-model="depart.regionIds" placeholder="璇疯緭鍏ヨ緰鍖虹鐞�"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="鏈瀛﹀巻浠ヤ笂浜烘暟:" prop="upUndergraduatePeopleNumber"> - <el-input v-model="depart.upUndergraduatePeopleNumber" placeholder="璇疯緭鍏ユ湰绉戝鍘嗕互涓婁汉鏁�"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="鎸佽瘉浜哄憳鏁�:" prop="holderNumber"> - <el-input v-model="depart.holderNumber" placeholder="璇疯緭鍏ユ寔璇佷汉鍛樻暟"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="45宀佷互涓嬩汉鏁�:" prop="underFortyFivePeopleNumber"> - <el-input v-model="depart.underFortyFivePeopleNumber" placeholder="璇疯緭鍏�45宀佷互涓嬩汉鏁�"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="鎸佹硶寰嬭亴涓氳祫鏍艰瘉涔︿汉鏁�:" prop="legalProfessionalQualificationCertificatePeopleNumber"> - <el-input v-model="depart.legalProfessionalQualificationCertificatePeopleNumber" placeholder="璇疯緭鍏ユ寔娉曞緥鑱屼笟璧勬牸璇佷功浜烘暟"></el-input> - </el-form-item> - <span> - 浣滈绾緥 - </span> - <el-form-item class="optionItem" label="閫氭姤鏁伴噺:" prop="reportNumber"> - <el-input v-model="depart.reportNumber" placeholder="璇疯緭鍏ラ�氭姤鏁伴噺"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="杩濈邯琛屼负鏁伴噺:" prop="disciplinaryOffenceNumber"> - <el-input v-model="depart.disciplinaryOffenceNumber" placeholder="璇疯緭鍏ヨ繚绾涓烘暟閲�"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="杩濇硶鐘姜琛屼负鏁伴噺:" prop="criminalOffenseNumber"> - <el-input v-model="depart.criminalOffenseNumber" placeholder="璇疯緭鍏ヨ繚娉曠姱缃涓烘暟閲�"></el-input> - </el-form-item> - <span>妗堜欢鍔炵悊</span> - <el-form-item class="optionItem" label="姣忔湀妗堜欢鍔炵悊閲�:" prop="monthCaseNumber"> - <el-input v-model="depart.monthCaseNumber" placeholder="璇疯緭鍏ユ瘡鏈堟浠跺姙鐞嗛噺"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="鏈秴鏃舵浠堕噺:" prop="noTimeoutCaseNumber"> - <el-input v-model="depart.noTimeoutCaseNumber" placeholder="璇疯緭鍏ユ湭瓒呮椂妗堜欢閲�"></el-input> - </el-form-item> - <el-form-item class="optionItem" label="澶嶈鎴栬瘔璁兼暟:" prop="reviewOrLawsuitNumber"> - <el-input v-model="depart.reviewOrLawsuitNumber" placeholder="璇疯緭鍏ュ璁垨璇夎鏁�"></el-input> - </el-form-item> - </el-form> - </div> - </main> - <footer> - <div class="optionBtn"> - <el-button @click="handleClose">鍙栨秷</el-button> - <el-button type="primary" class="btn submit" @click="handleUser()">纭畾</el-button> - </div> - </footer> - </div> -</template> -<script> -import { getTypeList } from "@/utils/helper"; -import { addTeam } from "@/api/system/portal/teamConstruction"; -import { SUCCESS_CODE } from "@/utils"; - -export default { - data() { - return { - depart: { - - // 鎵ф硶浜哄憳缁撴瀯 - name: '', - peopleNumber: '', - regionIds: '', - upUndergraduatePeopleNumber: '', - holderNumber: '', - underFortyFivePeopleNumber: '', - legalProfessionalQualificationCertificatePeopleNumber: '', - - // 浣滈绾緥 - reportNumber: null, - disciplinaryOffenceNumber: null, - criminalOffenseNumber: null, - - // 妗堜欢鍔炵悊 - monthCaseNumber: null, - noTimeoutCaseNumber: null, - reviewOrLawsuitNumber: null - }, - departRules: { - name: [{ required: true, trigger: "blur", message: '閮ㄩ棬鍚嶇О蹇呭~' }], - peopleNumber: [{ required: true, trigger: "blur", message: '閮ㄩ棬浜烘暟蹇呭~' }], - regionIds: [{ required: true, trigger: "blur", message: '杈栧尯绠$悊蹇呭~' }], - upUndergraduatePeopleNumber: [{ required: true, trigger: "blur", message: '鏈瀛﹀巻浠ヤ笂浜烘暟蹇呭~' }], - holderNumber: [{ required: true, trigger: "blur", message: '鎸佽瘉浜哄憳鏁板繀濉�' }], - underFortyFivePeopleNumber: [{ required: true, trigger: "blur", message: '45宀佷互涓嬩汉鏁板繀濉�' }], - legalProfessionalQualificationCertificatePeopleNumber: [{ required: true, trigger: "blur", message: '鎸佹硶寰嬭亴涓氳祫鏍艰瘉涔︿汉鏁板繀濉�' }], - reportNumber: [{ required: true, trigger: "blur", message: '閫氭姤鏁伴噺蹇呭~' }], - disciplinaryOffenceNumber: [{ required: true, trigger: "blur", message: '杩濈邯琛屼负鏁伴噺:蹇呭~' }], - criminalOffenseNumber: [{ required: true, trigger: "blur", message: '杩濇硶鐘姜琛屼负鏁伴噺蹇呭~' }], - monthCaseNumber: [{ required: true, trigger: "blur", message: '姣忔湀妗堜欢鍔炵悊閲忓繀濉�' }], - noTimeoutCaseNumber: [{ required: true, trigger: "blur", message: '鏈秴鏃舵浠堕噺蹇呭~' }], - reviewOrLawsuitNumber: [{ required: true, trigger: "blur", message: '澶嶈鎴栬瘔璁兼暟蹇呭~' }] - }, - userList: [], - departList: [], - checkedUser: [], - checkedList: [], - openUser: false, - departTypeList: [], - selectOrg: { - orgsid: [], - }, - mylabel: "", - defaultProps: { - children: "children", - label: "name", - }, - }; - }, - created() { - // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥� - this.getDepartTree(); - - // 鑾峰彇鐢ㄦ埛鍒楄〃 - this.getUserList(); - - // 鑾峰彇閮ㄩ棬绫诲瀷鍒楄〃 - this.getDepartTypeList(); - }, - methods: { - handleUser() { - this.$refs.user.validate((valid) => { - if (valid) { - addTeam(this.depart) - .then(({ code, message }) => { - if (code === SUCCESS_CODE) { - this.$message({ type: 'success', message }); - this.$emit('closeUpdateDialog'); - } else { - this.$message({ type: 'warning', message }); - } - }) - .catch(err => { - this.$message({ type: 'error', message: err }); - }); - } else { - this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' }); - } - }); - }, - - // 鑾峰彇閮ㄩ棬鏍戝舰缁撴瀯鍥� - getDepartTree() { - this.$axios({ - method: "get", - url: "sccg/depart/tree", - }).then((res) => { - this.departList = res.data; - }); - }, - - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - getUserList() { - - // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) - this.$axios.get(`/sccg/depart/query_surplus_user`).then((res) => { - if (res.code === 200) { - this.userList = res.data; - } - }); - }, - - addUser() { - this.checkedList = []; - this.userList.forEach((item) => { - this.checkedUser.forEach((child) => { - if (item.id === child) { - this.checkedList.push({ - id: item.id, - username: item.username, - leader: false, - }); - } - }); - }); - this.checkedList[0].leader = true; - this.openUser = false; - }, - - handleClose() { - this.$emit("changMyDialog", { flag: false }); - }, - - // 鑾峰彇閮ㄩ棬绫诲瀷 - async getDepartTypeList() { - this.departTypeList = await getTypeList(1, "08"); - }, - - handleCheck(data, checked) { - this.depart.parentId = data.name; - - // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮� - const indexs = this.selectOrg.orgsid.indexOf(data.id); - - // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆� - if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) { - this.$message({ - message: "鍙兘閫夋嫨涓�涓儴闂紒", - type: "warning", - showClose: true, - }); - - // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕� - this.$refs.tree.setChecked(data, false); - } else if (this.selectOrg.orgsid.length === 0 && checked) { - - // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨 - // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push - this.selectOrg.orgsid = []; - this.selectOrg.orgsid.push(data.id); - } else if ( - indexs >= 0 && - this.selectOrg.orgsid.length === 1 && - !checked - ) { - - // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣� - this.selectOrg.orgsid = []; - this.depart.parentId = ""; - } - }, - - // 璁剧疆棰嗗 - setLeader(idx) { - this.checkedList.forEach((item, index) => { - item.leader = index === idx; - }); - }, - }, - props: ["refresh", "changMyDialog"], -}; -</script> -<style lang="scss" scoped> -.createUser { - border-radius: 1px; - background-color: #09152f; - - main { - text-align: left; - padding: 0 55px; - background-color: #09152f; - padding-bottom: 50px; - - .mainContent { - display: flex; - justify-content: center; - padding-top: 50px; - line-height: 40px; - - &::v-deep .el-form-item__label { - color: #4b9bb7; - } - - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - &::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } - - .addPerson { - display: flex; - list-style: none; - padding: 0; - flex-wrap: wrap; - max-width: 280px; - li { - color: #fff; - text-align: center; - font-size: 30px; - margin-left: 10px; - } - } - .li-icon { - background-color: #cccccc; - width: 36px; - height: 36px; - border-radius: 50%; - margin: 0 auto; - } - .li-btn { - background-color: #cccccc; - width: 36px; - height: 36px; - border-radius: 50%; - } - .el-form-item__content { - width: 400px; - - .el-select { - width: 100%; - } - } - - .optionHandleSp { - display: flex; - - .areaNumber, - .moreNumber { - flex: 1; - } - - .telNumber { - flex: 2; - } - } - } - - .add { - position: relative; - - .card { - position: absolute; - z-index: 2000; - right: 0; - - .box-card { - min-height: 240px; - max-height: 260px; - overflow: hidden; - background-color: #09152f; - position: relative; - max-width: 220px; - - .scrollWrap { - overflow: scroll; - height: 180px; - position: relative; - color: #4b9bb7; - - .el-checkbox-group { - display: flex; - flex-direction: column; - - .el-checkbox { - line-height: 20px; - } - } - } - - .myclear { - width: 100%; - line-height: 20px; - color: #4b9bb7; - display: flex; - justify-content: space-between; - } - - .hidebar { - position: absolute; - top: 77px; - right: 20px; - width: 20px; - height: 180px; - background-color: #09152f; - } - - .item { - line-height: 40px; - } - } - } - } - } - - .li-item { - display: flex; - flex-direction: column; - } - - .leader { - color: red; - } - .el-input { - width: 280px !important; - } - footer { - border-top: 1px solid #fff; - height: 80px; - display: flex; - align-items: center; - justify-content: flex-end; - padding-right: 20px; - } -} -</style> \ No newline at end of file diff --git a/src/views/systemSetting/platform/cockpitManage/detailUser/index.vue b/src/views/systemSetting/platform/cockpitManage/detailUser/index.vue index 74e5f29..f4a9f49 100644 --- a/src/views/systemSetting/platform/cockpitManage/detailUser/index.vue +++ b/src/views/systemSetting/platform/cockpitManage/detailUser/index.vue @@ -31,122 +31,20 @@ </div> </template> <script> -import { getTypeList } from "@/utils/helper"; export default { data() { return { imagedata: { - code: "SJ202211010001", - questionType: "杩濊", - bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", - smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", - imagesId: "1", - uploadTime: "2022-10-31 20:20:01", - imageUrl:"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.fabao365.xuanfa.cn%2Fimage%2F202107%2F130f9d19f204302f.jpg&refer=http%3A%2F%2Fimg.fabao365.xuanfa.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1670034077&t=974b018f9e27023a01d2d8ad3c7c44f2" }, } }, created() { - // const that = this; - // this.user = JSON.parse(JSON.stringify(that.userInfo)); - // console.log(this.user); - // this.user.parentId = this.user.parentId === 0 ? '鏆傛棤涓婄骇閮ㄩ棬' : this.user.parentId; - // this.checkedList = this.user.userInfoDTOS; - // this.checkedList.forEach((e) => { - // this.checkedUser.push(e.userId); - // }); - // console.log(this.checkedUser) - // this.$axios({ - // method: "get", - // url: "sccg/depart/tree", - // }).then((res) => { - // that.departList = res.data; - // }); - // this.getUserList(this.user.id); - // // 鑾峰彇閮ㄩ棬绫诲瀷 - // this.getDepartType(); + }, methods: { - // handleUser() { - // this.$refs["user"].validate((valid) => { - // if (valid) { - // const { user, checkedList } = this; - // const arr = []; - // checkedList.forEach((item) => { - // arr.push({ leader: item.leader, userId: item.id ? item.id : item.userId }); - // }); - // if (arr.length === 0) { - // this.$message({ - // type: 'warning', - // message: '璇烽�夋嫨閮ㄩ棬浜哄憳', - // }) - // } else { - // this.$axios - // .post("sccg/depart/update", { - // id: user.id, - // departName: user.departName, - // parentId: user.parentId === '鏆傛棤涓婄骇閮ㄩ棬' ? 0 : user.parentId, - // departDes: user.departDes, - // departManagerList: arr, - // }) - // .then((res) => { - // this.$message({ - // message: res.message, - // type: res.code === 200 ? "success" : "warning", - // }); - // this.$emit("changeDialog", { flag: false }); - // this.getDepartList(); - // }); - // } - // } else { - // return false; - // } - // }); - // }, - // // 鑾峰彇閮ㄩ棬绫诲瀷 - // async getDepartType() { - // this.typeList = await getTypeList(1, "08"); - // }, - // // 璁剧疆棰嗗 - // setLeader(idx) { - // if (this.updateFlag) { - // this.checkedList.forEach((item, index) => { - // item.leader = index === idx; - // }); - // } - // }, - - // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - // getUserList(id) { - // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) - // this.$axios.get(`/sccg/depart/query_surplus_exist_user?id=`+id).then((res) => { - // if (res.code === 200) { - // this.userList = res.data; - // } - // }); - // }, - // addUser() { - // this.checkedList = []; - // this.userList.forEach((item) => { - // this.checkedUser.forEach((child) => { - // if (item.id == child) { - // this.checkedList.push({ - // id: item.id, - // username: item.username, - // leader: false, - // }); - // } - // }); - // }); - // this.checkedList[0].leader = true; - // console.log(this.checkedList); - // this.openUser = false; - // }, - // }, - // props: ["userInfo", "updateFlag", "getDepartList", "changeDialog"], }, props: ['updateFlag'] }; @@ -159,16 +57,8 @@ main { // border: 1px solid #fff; text-align: left; - padding: 0 55px; background-color: #09152f; padding-bottom: 50px; - - // .mainTitle { - // color: #4b9bb7; - // font-weight: 600; - // line-height: 100px; - // font-size: 14px; - // } .mainContent { display: flex; diff --git a/src/views/systemSetting/platform/cockpitManage/index.vue b/src/views/systemSetting/platform/cockpitManage/index.vue index 9ed5f84..80b04b9 100644 --- a/src/views/systemSetting/platform/cockpitManage/index.vue +++ b/src/views/systemSetting/platform/cockpitManage/index.vue @@ -16,7 +16,7 @@ </div> </div> <div class="findBtn"> - <el-button type="primary" @click="getUserList">鏌ヨ</el-button> + <el-button type="primary" @click="getDepartmentList">鏌ヨ</el-button> </div> </div> </div> @@ -79,25 +79,30 @@ </el-table-column> </el-table> <!-- 璇︽儏椤靛睍绀� --> - <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" v-if="dialogView" + <el-dialog :visible.sync="dialogView" width="80%" title="鍩虹淇℃伅(浜哄伐)" :before-close="handleClose"> <MyDetail :info=info v-if="mystatus === 1"></MyDetail> <MyIllDetail :info=info v-else></MyIllDetail> </el-dialog> - <el-dialog :visible.sync="dialogUpdate" width="40%" title="淇敼閮ㄩ棬" v-if="dialogUpdate" + <el-dialog :visible.sync="dialogUpdate" width="40%" title="淇敼閮ㄩ棬" :before-close="handleClose"> - <updateUser @closeUpdateDialog="closeUpdateDialog()" :updateDepartmentData="updateDepartmentData" /> - + <update-user @closeUpdateDialog="closeUpdateDialog()" + :updateDepartmentData="updateDepartmentData" + :isUpdate="dialogType === 'update'" + /> </el-dialog> - <el-dialog :visible.sync="dialogcheck" width="40%" title="鏌ョ湅" v-if="dialogcheck" + <el-dialog :visible.sync="dialogcheck" width="40%" title="鏌ョ湅" :before-close="handleClose" > <detailUser /> </el-dialog> - <el-dialog :visible.sync="dialogAdd" width="40%" title="娣诲姞閮ㄩ棬" v-if="dialogAdd" + <el-dialog :visible.sync="dialogAdd" width="40%" title="娣诲姞閮ㄩ棬" :before-close="handleClose"> - <createUser @closeUpdateDialog="closeUpdateDialog()" /> + <update-user @closeUpdateDialog="closeUpdateDialog()" + :updateDepartmentData="updateDepartmentData" + :isUpdate="dialogType === 'add'" + /> </el-dialog> <div class="tools"> @@ -118,8 +123,7 @@ </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"> + :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage"> </el-pagination> </div> </div> @@ -128,16 +132,13 @@ </div> </template> <script> -import createUser from "./createUser"; import updateUser from "./updateUser"; import detailUser from "./detailUser"; import { deleteTeam, exportTeamInfo, importTeamInfo, searchTeamInfo } from "@/api/system/portal/teamConstruction"; import {SUCCESS_CODE} from "@/utils"; export default { - components: { - updateUser, createUser, detailUser - }, + components: { updateUser, detailUser }, data() { return { @@ -153,7 +154,7 @@ updateFlag: false, userInfo: {}, info: {}, - totalNum: 5, + totalNum: 1, pageSize: 10, currentPage: 1, all: false, @@ -197,6 +198,7 @@ caseId: '', caseCode: null, dialogAdd: false, + dialogType: 'update' } }, @@ -206,8 +208,8 @@ if (item.checked) { this.statusArr[1] = item.value; } - }) - this.getUserList(); + }); + this.getDepartmentList(); }, methods: { @@ -226,6 +228,7 @@ // 娣诲姞鐣岄潰 showAddDialog() { this.dialogAdd = true; + this.dialogType = 'add'; }, // 瀵煎嚭 @@ -255,14 +258,10 @@ // 瀵煎叆 importTable(file) { importTeamInfo({ 'multipartFile': file.file }) - .then(({ code, message }) => { - if (code === SUCCESS_CODE) { - this.$message({ type: 'success', message }); - this.getUserList(); + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.getDepartmentList(); this.$refs.uploadFile.clearFiles(); - } else { - this.$message({ type: 'error', message }); - } }) .catch(err => { this.$message({ type: 'error', message: err }); @@ -272,14 +271,14 @@ closeUpdateDialog() { this.dialogAdd = false; this.dialogUpdate = false; - this.getUserList(); + this.getDepartmentList(); }, // 椤堕儴涓嬫媺妗� - setMystatus(value) { + setMyStatus(value) { this.statusArr[1] = value; this.changeTypeChecked(value - 1); - this.getUserList(); + this.getDepartmentList(); }, // 鎵归噺鍒犻櫎 @@ -288,7 +287,7 @@ method: 'delete', url: 'sccg/violations/batch_delete?ids=' + idArr, }).then(res => { - this.getUserList(); + this.getDepartmentList(); this.$message({ message: res.message, type: res.code === 200 ? 'success' : 'warning' @@ -341,7 +340,7 @@ .then(({ code, message }) => { if (code === SUCCESS_CODE) { this.$message({ type: 'success', message }); - this.getUserList(); + this.getDepartmentList(); } else { this.$message({ type: 'error', message }); } @@ -353,17 +352,17 @@ }, // 鑾峰彇鐢ㄦ埛鍒楄〃 - getUserList() { + getDepartmentList() { const searchInfo = { current: this.currentPage, size: this.pageSize, departName: this.searchDepartment, status: this.searchStatus }; searchTeamInfo(searchInfo) - .then(({ data }) => { - this.tableData = data.records; - this.totalNum = data.total; + .then(({ records, total }) => { + this.tableData = records; + this.totalNum = total; }) .catch(err => { - console.log(err); + this.$message({ type: 'error', message: err }); }); }, @@ -374,7 +373,7 @@ }) this.mystatus = idx + 1; this.statusArr[1] = this.typeList[idx].value; - this.getUserList(); + this.getDepartmentList(); }, // 璁剧疆琛ㄦ牸鏂戦┈绾� @@ -389,19 +388,7 @@ // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠� changeCurrentPage(page) { this.currentPage = page; - this.getUserList(); - }, - - // 涓婁竴椤电偣鍑讳簨浠� - handlePrev(page) { - this.currentPage = page; - this.getUserList(); - }, - - // 涓嬩竴椤电偣鍑讳簨浠� - handleNext(page) { - this.currentPage = page; - this.getUserList(); + this.getDepartmentList(); }, handleClose(done) { @@ -438,12 +425,7 @@ // 鍏抽棴涓婁紶鐣岄潰 closeDialog({ flag }) { this.dialogUpload = flag; - this.getUserList(); - }, - - // 澶勭悊鏃堕棿 - filterTime(time) { - return helper(time); + this.getDepartmentList(); } } } diff --git a/src/views/systemSetting/platform/cockpitManage/updateUser/index.vue b/src/views/systemSetting/platform/cockpitManage/updateUser/index.vue index a26873b..9aaa8a0 100644 --- a/src/views/systemSetting/platform/cockpitManage/updateUser/index.vue +++ b/src/views/systemSetting/platform/cockpitManage/updateUser/index.vue @@ -11,7 +11,7 @@ label-position="right" > <!-- 閮ㄩ棬鍚嶇О --> - <span style="heght:18px;display:block;line-height: 14px;"> + <span style="height:18px;display:block;line-height: 14px;"> 鎵ф硶浜哄憳缁撴瀯 </span> <el-form-item class="optionItem" label="閮ㄩ棬鍚嶇О:" prop="name"> @@ -71,12 +71,10 @@ </template> <script> import { deepClone } from "@/utils/helper"; -import { updateTeamInfo } from "@/api/system/portal/teamConstruction"; -import { SUCCESS_CODE } from "@/utils"; +import {addTeam, updateTeamInfo} from "@/api/system/portal/teamConstruction"; export default { data() { - return { updateData: null, rules: { @@ -103,18 +101,25 @@ submitUpdate() { this.$refs.user.validate((valid) => { if (valid) { - updateTeamInfo(this.updateData) - .then(({ code, message }) => { - if (code === SUCCESS_CODE) { - this.$emit('closeUpdateDialog'); - this.$message({ type: 'success', message }); - } else { - this.$message({ type: 'error', message }); - } - }) - .catch(err => { - this.$message({ type: 'error', message: err }); - }); + if (this.isUpdate) { + updateTeamInfo(this.updateData) + .then(() => { + this.$emit('closeUpdateDialog'); + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + } else { + addTeam(this.depart) + .then(() => { + this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' }); + this.$emit('closeUpdateDialog'); + }) + .catch(err => { + this.$message({ type: 'error', message: err }); + }); + } } else { this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' }); } @@ -125,7 +130,7 @@ this.$emit('closeUpdateDialog'); } }, - props: ['updateDepartmentData'] + props: ['updateDepartmentData', 'isUpdate'] }; </script> <style lang="scss" scoped> -- Gitblit v1.8.0