From 2abaf1a68cc38303724d7aa74d2d3ed81af6466f Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期日, 31 三月 2024 22:09:30 +0800
Subject: [PATCH] bug修改
---
src/views/systemSetting/device/grid/components/main/index.vue | 656 ++++++++++++++++++++++++++++-------------------------------
1 files changed, 309 insertions(+), 347 deletions(-)
diff --git a/src/views/systemSetting/device/grid/components/main/index.vue b/src/views/systemSetting/device/grid/components/main/index.vue
index 77560a4..bcf583b 100644
--- a/src/views/systemSetting/device/grid/components/main/index.vue
+++ b/src/views/systemSetting/device/grid/components/main/index.vue
@@ -1,356 +1,237 @@
<template>
- <div class="mainContent">
- <!-- <div class="aside">
- <department-aside />
- </div> -->
- <div class="grid-content">
- <!-- 鏁版嵁灞曠ず -->
- <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"
- @selection-change="tableChange">
- <el-table-column type="selection" min-width="5">
- </el-table-column>
- <el-table-column label="鐢ㄦ埛ID" min-width="6">
- <template slot-scope="scope">{{ scope.row.id }}</template>
- </el-table-column>
- <el-table-column prop="nickName" label="鐢ㄦ埛鍚嶇О" min-width="10">
- </el-table-column>
- <el-table-column prop="username" label="鎵�灞炲鍚�" min-width="8">
- </el-table-column>
- <el-table-column prop="mobile" label="鑱旂郴鏂瑰紡" min-width="7">
- </el-table-column>
- <el-table-column prop="note" label="鎵�灞炶鑹�" min-width="8">
- <template slot-scope="scope">
- <span>{{filterRole(scope.row.roles)}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="jobTitle" label="鎵�灞炶亴鍔�" min-width="8">
- </el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="10">
- <template slot-scope="scope">
- <span>{{changeTime(scope.row)}}</span>
- </template>
- </el-table-column>
- <el-table-column prop="status" label="鍚敤" min-width="5">
- <template slot-scope="scope">
- <!-- @change="handleChangeStatus(scope.row)" -->
- <el-switch class="switchStyle" v-model="scope.row.status"
- active-color="#3fef9a" inactive-color="#000212" disabled>
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
- </el-table-column>
- </el-table>
- <!-- 鏌ョ湅椤甸潰 -->
- <el-dialog :visible.sync="dialogView" width="45%" v-if="dialogView"
- title="鏌ョ湅鐢ㄦ埛淇℃伅">
- <MyView :userInfo=userInfo></MyView>
- </el-dialog>
- <!-- 淇敼椤甸潰 -->
- <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate"
- :title="updateFlag ? flag.role ? '淇敼鐢ㄦ埛瑙掕壊淇℃伅' : flag.depart ? '淇敼鐢ㄦ埛閮ㄩ棬淇℃伅': '淇敼鐢ㄦ埛瀵嗙爜' :''"
- :before-close="handleClose">
- <updateUser :updateFlag="updateFlag" :userInfo=userInfo :flag=flag @closeDialog="closeDialog"
- :getUserList="getUserList" v-if="!flag.password" />
- <MyPwd v-else :userInfo=userInfo @closeDialog="closeDialog"></MyPwd>
- </el-dialog>
- <!-- tools -->
- <div class="tools">
- <div class="funs">
- <el-checkbox v-model="all" @change="selectAll()">鍏ㄩ��</el-checkbox>
- <el-checkbox v-model="unsame" @change="disSame(tableData)">鍙嶉��</el-checkbox>
- <el-select v-model="myIdx" placeholder="鎵归噺鎿嶄綔" @change="selectChange">
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"
- :disabled="item.disabled">
- </el-option>
- </el-select>
+ <div class="mainContent">
+ <!-- <div class="aside">
+ <department-aside />
+ </div> -->
+ <div class="grid-content">
+ <header>
+ <div class="headerContent">
+ <div class="search">
+ <span>绛涢�夋潯浠�:</span>
+ <el-input v-model="context" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+ <div class="findBtn">
+ <el-button type="primary" @click="getList()">鏌ヨ</el-button>
+ </div>
</div>
- <el-pagination class="pagination" background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
- :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
- @next-click="handleNext">
+ </div>
+ <div class="main-title">
+ <el-button
+ class="el-icon-plus button-addition"
+ type="primary"
+ @click="handleAdd()"
+ >娣诲姞</el-button
+ >
+ </div>
+ </header>
+ <!-- 鏁版嵁灞曠ず -->
+ <el-table
+ border
+ stripe
+ ref="multipleTable"
+ :header-cell-style="{
+ background: '#F5F5F5',
+ 'font-weight': '650',
+ 'line-height': '45px',
+ }"
+ :data="tableData"
+ style="width: 100%"
+ :row-class-name="tableRowClassName"
+ @selection-change="tableChange"
+ >
+ <el-table-column type="selection" min-width="5"> </el-table-column>
+
+ <el-table-column prop="name" label="鍖哄煙鍚嶇О" min-width="10">
+ </el-table-column>
+ <el-table-column prop="worker" label="鎵�灞炵綉鏍煎憳" min-width="8">
+ </el-table-column>
+ <el-table-column prop="contact" label="鑱旂郴鏂瑰紡" min-width="7">
+ </el-table-column>
+ <el-table-column prop="area" label="璐d换鍖哄煙" min-width="8">
+ </el-table-column>
+ <el-table-column prop="description" label="鎻忚堪" min-width="20">
+ </el-table-column>
+ <el-table-column prop="operation" label="鎿嶄綔" min-width="5">
+ <template slot-scope="scope">
+ <div class="operation">
+ <span @click="handleEdit(scope.row)">缂栬緫</span>
+ <span class="line">|</span>
+ <span @click="handleDelete(scope.row)">鍒犻櫎</span>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-dialog
+ :visible.sync="dialogUpdate"
+ width="45%"
+ v-if="dialogUpdate"
+ title="缃戞牸淇℃伅"
+ :before-close="handleClose"
+ >
+ <MyView :info="handheldGrid" @closeDialog="handleCallBack"></MyView>
+ </el-dialog>
+
+ <!-- tools -->
+ <div class="tools">
+ <div class="funs"></div>
+ <div class="pagination">
+ <el-pagination
+ background
+ :current-page="currentPage"
+ layout="prev, pager, next"
+ :total="totalNum"
+ :page-size="pageSize"
+ @current-change="changeCurrentPage"
+ @prev-click="handlePrev"
+ @next-click="handleNext"
+ >
</el-pagination>
</div>
</div>
</div>
+ </div>
</template>
<script>
-import helper from '@/utils/mydate'
+import helper from "@/utils/mydate";
+import { createNamespacedHelpers } from "vuex";
import departmentAside from "@/views/operate/fivepack/threepack/components/aside";
+import MyView from "../components/dialogForm.vue";
+const { mapActions } = createNamespacedHelpers("orgGrid");
export default {
- components: { departmentAside },
- data() {
- return {
- tableData: [],
- search: "",
- dialogUpdate: false,
- dialogView:false,
- updateFlag: false,
- userInfo: '',
- totalNum: 0,
- pageSize: 10,
- currentPage: 1,
- renderFlag: false,
- flag: {
- role: false,
- password: false,
- depart: false,
- },
- all: false,
- unsame: false,
- myIdx: 0,
- preMyIdx: 0,
- options: [
- {
- value: 0,
- label: '鎵归噺鎿嶄綔',
- disabled: true,
- },
- {
- value: 1,
- label: '鎵归噺鍚敤',
- },
- {
- value: 2,
- label: '鎵归噺绂佺敤',
- },
- {
- value: 3,
- label: '鎵归噺鍒犻櫎',
- }
- ],
- tempList: []
- }
+ components: { departmentAside, MyView },
+ data() {
+ return {
+ tableData: [],
+ context: "",
+ dialogUpdate: false,
+ dialogView: false,
+ updateFlag: false,
+ userInfo: "",
+ totalNum: 0,
+ pageSize: 10,
+ currentPage: 1,
+ renderFlag: false,
+ flag: {
+ role: false,
+ password: false,
+ depart: false,
+ },
+ all: false,
+ unsame: false,
+ myIdx: 0,
+ preMyIdx: 0,
+ tempList: [],
+ handheldGrid: {},
+ };
+ },
+ created() {
+ this.getList();
+ },
+ methods: {
+ ...mapActions(["getOrgGridList", "deleteOrgGrid"]),
+ tableChange(list) {
+ this.tempList = [];
+ list.forEach((item) => {
+ this.tempList.push(item.id);
+ });
+ this.all = list.length === this.tableData.length;
},
- created() {
- this.getUserList();
+ changeTime({ createTime }) {
+ return helper(createTime);
},
- methods: {
- async selectChange(list) {
- if (this.tempList.length !== 0) {
- this.preMyIdx = list;
- if (list === 3) {
- await this.mulDelte(this.tempList);
- } else if (list === 2) {
- await this.mulUpdateStatus(this.tempList, 0);
- } else {
- await this.mulUpdateStatus(this.tempList, 1);
- }
- this.myIdx = 0;
- } else {
- this.myIdx = this.preMyIdx;
- this.$message({
- type: 'warning',
- message: '鎮ㄨ繕娌¢�変腑浠讳綍鏁版嵁',
- })
- }
- },
- tableChange(list) {
- this.tempList = [];
- list.forEach(item => {
- this.tempList.push(item.id);
- })
- this.all = list.length === this.tableData.length;
- },
- // 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅
- mulDelte(idArr) {
- this.$confirm("鎮ㄧ‘瀹氳杩涜鎵归噺鍒犻櫎鐢ㄦ埛鍚�?")
- .then(_ => {
- this.$axios({
- method: 'post',
- url: 'sccg/admin/deleteBatch?ids=' + idArr,
- })
- .then(res => {
- if (res.code === 200) {
- this.$message({
- type: 'success',
- message: '鍒犻櫎鐢ㄦ埛淇℃伅鎴愬姛',
- })
- this.getUserList();
- } else {
- this.$message({
- type: 'error',
- message: res.message
- })
- }
- })
- })
- .catch(err => { })
- },
- // 鎵归噺淇敼璐﹀彿
- mulUpdateStatus(idArr, flag) {
- this.$confirm(flag === 1 ? "鎮ㄧ‘瀹氳杩涜鎵归噺鍚敤鐢ㄦ埛鍚�?" : '鎮ㄧ‘瀹氳杩涜鎵归噺绂佺敤鐢ㄦ埛鍚�?')
- .then(_ => {
- this.$axios({
- method: 'post',
- url: 'sccg/admin/updateStatusBatch?ids=' + idArr + '&status=' + flag,
- })
- .then(res => {
- if (res.code === 200) {
- this.$message({
- type: 'success',
- message: '鏇存敼鐢ㄦ埛鐘舵�佹垚鍔�',
- })
- this.getUserList();
- } else {
- this.$message({
- type: 'error',
- message: res.message
- })
- }
- })
- })
- .catch(err => { })
- },
- changeTime({ createTime }) {
- return helper(createTime);
- },
- selectAll() {
- this.$refs.multipleTable.toggleAllSelection();
- },
- disSame(list) {
- list.forEach(row => {
- this.$refs.multipleTable.toggleRowSelection(row)
- })
- },
- // 鍒犻櫎鐢ㄦ埛
- handleDelete({ id }) {
- this.$confirm('纭鍒犻櫎锛�').then(_ => {
- this.$axios({
- method: 'post',
- url: 'sccg/admin/delete/' + id,
- }).then(res => {
- this.$message({
- message: res.message,
- type: 'success'
- })
- this.getUserList();
- })
- }).catch(_ => { })
- },
- closeDialog({ flag }) {
- this.dialogUpdate = flag;
- this.getUserList();
- },
- handleClose(done) {
- if (this.updateFlag) {
- this.$confirm('纭鍏抽棴锛�')
- .then(_ => {
- this.dialogUpdate = false;
- this.updateFlag = false;
- done();
- })
- .catch(_ => { });
- }else{
- done();
- }
- },
- // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
- changeCurrentPage(page) {
- this.currentPage = page;
- this.getUserList();
- },
- // 涓婁竴椤电偣鍑讳簨浠�
- handlePrev(page) {
- this.currentPage = page;
- this.getUserList();
- },
- // 涓嬩竴椤电偣鍑讳簨浠�
- handleNext(page) {
- this.currentPage = page;
- this.getUserList();
- },
- // 淇敼瑙掕壊
- handleChangeRole(obj, mykey) {
- this.dialogUpdate = true;
- this.updateFlag = true;
- for (let key in this.flag) {
- if (key === mykey) {
- this.flag[key] = true;
- } else {
- this.flag[key] = false;
- }
- }
- this.userInfo = obj;
- },
- // 淇敼鐢ㄦ埛鐘舵��
- handleChangeStatus(obj) {
- let { id, status } = obj;
- status === true ? status = 1 : status = 0;
- this.$axios.post(`sccg/admin/updateStatus/` + id + '?status=' + status).then(res => {
- })
- },
- // 鑾峰彇鐢ㄦ埛鍒楄〃
- getUserList() {
- const that = this;
- const { currentPage, pageSize, search } = this;
- // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜)
- this.$axios.get(`sccg/admin/list?keyword=${search}¤t=${currentPage}&pageSize=${pageSize}`).then(res => {
- if (res.code === 200) {
- res.data.records.forEach(item => {
- item.status === 1 ? item.status = true : item.status = false;
- })
- that.totalNum = res.data.total;
- that.tableData = res.data.records;
- this.renderFlag = true;
- }
- })
- },
- // 鏌ョ湅鐢ㄦ埛淇℃伅(涓嶅彲淇敼)
- handleFind(rowData) {
- this.dialogView = true;
- this.userInfo = rowData;
- },
- // 璁剧疆琛ㄦ牸鏂戦┈绾�
- tableRowClassName({ row, rowIndex }) {
- if ((rowIndex + 1) % 2 === 0) {
- return 'warning-row';
- } else {
- return 'success-row';
- }
- },
- // 澶勭悊鐢ㄦ埛鎵�灞炶鑹�
- filterRole(arr){
- let str = '';
- if(arr.length === 0){
- return;
- }
- arr.forEach((item,index)=>{
- if(item!==null){
- if(index<arr.length-1){
- str+=item.name +',';
- }else{
- str+=item.name;
- }
- }
- })
- return str;
- }
+ disSame(list) {
+ list.forEach((row) => {
+ this.$refs.multipleTable.toggleRowSelection(row);
+ });
},
- props: ['refresh', 'keyword', 'resetFresh'],
- watch: {
- refresh: {
- handler(newValue, oldValue) {
- if (newValue) {
- this.search = '';
- if (this.keyword !== '') {
- this.search = this.keyword;
- }
- this.currentPage = 1;
- this.getUserList();
- this.$emit('resetFresh', { flag: false })
- }
- },
- immediate: true
- }
- }
-}
+ handleCallBack({ flag }) {
+ this.dialogUpdate = false;
+ this.getList();
+ },
+ handleClose(done) {
+ if (this.updateFlag) {
+ this.$confirm("纭鍏抽棴锛�")
+ .then((_) => {
+ this.dialogUpdate = false;
+ this.updateFlag = false;
+ done();
+ })
+ .catch((_) => {});
+ } else {
+ done();
+ }
+ },
+ // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+ changeCurrentPage(page) {
+ this.currentPage = page;
+ this.getList();
+ },
+ // 涓婁竴椤电偣鍑讳簨浠�
+ handlePrev(page) {
+ this.currentPage = page;
+ this.getList();
+ },
+ // 涓嬩竴椤电偣鍑讳簨浠�
+ handleNext(page) {
+ this.currentPage = page;
+ this.getList();
+ },
+ // 鑾峰彇鍒楄〃
+ getList() {
+ const that = this;
+ const { currentPage, pageSize, context } = this;
+ this.getOrgGridList({
+ currentPage,
+ pageSize,
+ name: context,
+ }).then((res) => {
+ that.totalNum = res.total;
+ that.tableData = res.records;
+ this.renderFlag = true;
+ });
+ },
+ handleAdd() {
+ this.handheldGrid = {
+ id: 0,
+ name: "",
+ worker: "",
+ contact: "",
+ area: "",
+ description: "",
+ region: "",
+ };
+ this.dialogUpdate = true;
+ },
+ handleEdit(row) {
+ this.handheldGrid = row;
+ this.dialogUpdate = true;
+ },
+ handleDelete(row) {
+ this.$confirm("纭鍒犻櫎锛�").then((_) => {
+ this.deleteOrgGrid(row.id).then((res) => {
+ this.$message({
+ type: "success",
+ message: "鍒犻櫎鎴愬姛锛�",
+ });
+ this.getList();
+ });
+ });
+ },
+ // 璁剧疆琛ㄦ牸鏂戦┈绾�
+ tableRowClassName({ row, rowIndex }) {
+ if ((rowIndex + 1) % 2 === 0) {
+ return "warning-row";
+ } else {
+ return "success-row";
+ }
+ },
+ },
+};
</script>
<style lang="scss" scoped>
.mainContent {
display: flex;
- justify-content: start;
+ justify-content: flex-start;
flex-wrap: nowrap;
.grid-content {
@@ -366,19 +247,100 @@
}
.el-pagination {
- &::v-deep li,
- &::v-deep .btn-prev,
- &::v-deep .btn-next {
- background-color: #071f39;
- color: #4b9bb7;
- }
+ // &::v-deep li,
+ // &::v-deep .btn-prev,
+ // &::v-deep .btn-next {
+ // background-color: #071f39;
+ // color: #4b9bb7;
+ // }
- &::v-deep .active {
- background-color: #409eff;
- color: #fff;
- }
+ // &::v-deep .active {
+ // background-color: #409eff;
+ // color: #fff;
+ // }
}
}
}
}
-</style>
\ No newline at end of file
+
+header {
+ // background-color: white;
+ display: flex;
+ .headerContent {
+ padding: 10px 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .search {
+ display: flex;
+ justify-content: flex-start;
+ line-height: 2;
+
+ span {
+ flex: 1;
+ }
+
+ .el-input {
+ flex: 2;
+ color: #1d3f57;
+ }
+ .el-select {
+ flex: 1;
+ }
+ .el-date-editor {
+ flex: 1;
+ }
+ }
+
+ .findBtn {
+ line-height: 100px;
+ margin-left: 15px;
+ display: flex;
+ align-items: center;
+ margin-top: -2px;
+
+ .el-button {
+ padding: 12px 25px;
+ //border-radius: 20px;
+ }
+ }
+ ::v-deep .el-form {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+
+ .el-form-item {
+ width: 30%;
+ }
+
+ .el-form-item__label {
+ color: #4b9bb7;
+ }
+ }
+ }
+}
+
+.operation {
+ display: flex;
+ color: var(--operation-color);
+ .line {
+ padding: 0 5px;
+ }
+
+ span:hover {
+ cursor: pointer;
+ }
+}
+
+.main-title {
+ line-height: 20px;
+ padding: 10px 20px;
+ margin-left: auto;
+ //border-radius: 20px;
+ .el-button {
+ padding: 12px 25px;
+ //border-radius: 20px;
+ }
+}
+</style>
--
Gitblit v1.8.0