From a6ad430fbe12bd634304abbca659605c32df348c Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期一, 10 十月 2022 16:02:51 +0800
Subject: [PATCH] 1

---
 src/views/userManage/authorityManage.vue |  487 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 374 insertions(+), 113 deletions(-)

diff --git a/src/views/userManage/authorityManage.vue b/src/views/userManage/authorityManage.vue
index a4234a1..2d30d6c 100644
--- a/src/views/userManage/authorityManage.vue
+++ b/src/views/userManage/authorityManage.vue
@@ -8,19 +8,43 @@
     ></My-bread>
     <el-divider />
     <div class="power_quire">
-      <el-form ref="form" :model="form" label-width="100px" :inline="true">
+      <el-form ref="form" :model="ruleForm" label-width="100px" :inline="true">
         <el-form-item :label="$t('common.username')">
-          <el-input v-model="form.name"></el-input>
+          <el-input v-model="ruleForm.name"></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button icon="el-icon-search" type="primary" plain>{{
+          <el-button  @click="submitForm('ruleForm')"  icon="el-icon-search" type="primary">{{
             $t('common.iquery')
           }}</el-button>
+          <el-button
+            @click="resetForm('ruleForm')"
+            icon="el-icon-refresh"
+            type="info"
+            >{{ $t('common.empty') }}</el-button
+          >
+          <el-button
+            @click="InsertFormdialog = true"
+            icon="el-icon-edit"
+            type="success"
+            >{{ $t('common.append') }}</el-button
+          >
+          <el-button
+            @click="DelFromData"
+            icon="el-icon-delete"
+            type="danger"
+            >{{ $t('common.delete') }}</el-button
+          >
         </el-form-item>
       </el-form>
     </div>
     <div class="table_box">
-      <el-table :data="tableData" border style="width: 100%">
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        fit
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55" />
         <el-table-column
           align="center"
           type="index"
@@ -28,39 +52,47 @@
           width="70px"
         />
         <el-table-column
-          prop="date"
-          align="center"
-          :label="$t('userManage.userInfoObj.username')"
-        >
-        </el-table-column>
-        <el-table-column
           prop="name"
           align="center"
-          :label="$t('userManage.userInfoObj.affiliatedUnit')"
+          :label="$t('userManage.userInfoObj.name')"
         >
         </el-table-column>
         <el-table-column
-          prop="province"
+          prop="tag"
           align="center"
-          :label="$t('userManage.userInfoObj.mobileNumber')"
+          :label="$t('userManage.userInfoObj.tag')"
         >
         </el-table-column>
         <el-table-column
-          prop="city"
+          prop="createUser"
           align="center"
-          :label="$t('userManage.userInfoObj.post')"
+          :label="$t('userManage.userInfoObj.createUser')"
         >
         </el-table-column>
         <el-table-column
-          prop="address"
+          prop="createTime"
           align="center"
-          :label="$t('userManage.userInfoObj.userstate')"
+          :label="$t('userManage.userInfoObj.createTime')"
+          :formatter="formatTime"
         >
         </el-table-column>
         <el-table-column
-          prop="zip"
+          prop="updateUser"
           align="center"
-          :label="$t('userManage.userInfoObj.addtime')"
+          :label="$t('userManage.userInfoObj.updateUser')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="updateTime"
+          align="center"
+          :label="$t('userManage.userInfoObj.updateTime')"
+          :formatter="formatTime"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="bak"
+          align="center"
+          :label="$t('userManage.userInfoObj.bak')"
         >
         </el-table-column>
         <el-table-column
@@ -70,14 +102,19 @@
         >
           <template slot-scope="scope">
             <el-button
-              @click="handleClick(scope.row)"
+              @click="showDetail(scope.$index, scope.row)"
+              type="primary"
+              plain
+              size="small"
+              >{{ $t('common.see') }}</el-button
+            >
+            <el-button
+              @click="handleEdit(scope.$index, scope.row)"
               type="warning"
               size="small"
+              plain
               >{{ $t('common.edit') }}</el-button
             >
-            <el-button type="danger" size="small">{{
-              $t('common.delete')
-            }}</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -86,15 +123,63 @@
       <el-pagination
         @size-change="handleSizeChange"
         @current-change="handleCurrentChange"
-        :current-page="currentPage"
+        :current-page="listData.pageIndex"
         :page-sizes="[10, 20, 30, 40]"
-        :page-size="10"
+        :page-size="listData.pageSize"
         layout="total, sizes, prev, pager, next, jumper"
-        :total="9"
+        :total="count"
       >
       </el-pagination>
     </div>
-
+    <div class="infoBox" v-show="showinfoBox">
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>{{ $t('dataManage.styleObj.deInformation') }}</span>
+          <div style="float: right; cursor: pointer"  @click="closeDetial" >
+            <i class="el-icon-close"></i>
+          </div>
+        </div>
+               <div class="contentBox">
+          <p>
+            <label> {{ $t('userManage.userInfoObj.name') }}:</label>
+            <label class="boxlabel">{{ itemdetail.name }}</label>
+          </p>
+          <el-divider></el-divider>
+          <p>
+           <p>
+            <label> {{ $t('userManage.userInfoObj.tag') }}:</label>
+            <label class="boxlabel">{{ itemdetail.tag }}</label>
+          </p>
+          </p>
+          <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.userInfoObj.createUser') }}:</label>
+            <label class="boxlabel">{{ itemdetail.createUser }}</label>
+          </p>
+          <el-divider></el-divider>
+           <p>
+            <label> {{ $t('userManage.userInfoObj.createTime') }}:</label>
+            <label class="boxlabel">{{ itemdetail.createTime }}</label>
+          </p>
+          <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.userInfoObj.updateUser') }}:</label>
+            <label class="boxlabel">{{ itemdetail.updateUser }}</label>
+          </p>
+          <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.userInfoObj.updateTime') }}:</label>
+            <label class="boxlabel">{{ itemdetail.updateTime }}</label>
+          </p>
+ <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.userInfoObj.bak') }}:</label>
+            <label class="boxlabel">{{ itemdetail.bak }}</label>
+          </p>
+           <el-divider></el-divider>
+        </div>
+      </el-card>
+    </div>
     <el-dialog
       :title="dialogTitle"
       :visible.sync="isTransfer"
@@ -115,111 +200,234 @@
       }}</el-button>
       <el-button type="info" size="small">{{ $t('common.close') }}</el-button>
     </el-dialog>
+    <el-dialog
+      :title="$t('userManage.userInfoObj.addPermission')"
+      style="overflow: hidden"
+      :visible.sync="InsertFormdialog"
+      width="30%"
+    >
+      <el-form :model="insertform">
+        <el-form-item
+          :label="$t('userManage.userInfoObj.name')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="insertform.name" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          :label="$t('userManage.userInfoObj.tag')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="insertform.tag" autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item
+          :label="$t('userManage.userInfoObj.bak')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="insertform.bak" autocomplete="off"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="insertFromDataClose">{{
+          $t('common.close')
+        }}</el-button>
+        <el-button type="primary" @click="insertFromData">{{
+          $t('common.confirm')
+        }}</el-button>
+      </div>
+    </el-dialog>
+      <el-dialog
+      :title="$t('userManage.userInfoObj.editPermission')"
+      style="overflow: hidden"
+      :visible.sync="EditFormdialog"
+      :before-close="EditFromDataClose"
+      width="30%"
+    >
+      <el-form :model="upform">
+        <el-form-item
+          :label="$t('userManage.userInfoObj.name')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.name"  ></el-input>
+        </el-form-item>
+        <el-form-item
+          :label="$t('userManage.userInfoObj.tag')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.tag"  ></el-input>
+        </el-form-item>
+        <el-form-item
+          :label="$t('userManage.userInfoObj.bak')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.bak" ></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button  @click="EditFromDataClose" >{{
+          $t('common.close')
+        }}</el-button>
+        <el-button  @click="EditFromData" type="primary"  >{{
+          $t('common.confirm')
+        }}</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import moment from 'moment';
 import MyBread from '../../components/MyBread.vue';
+import { select_Auth_ByPageAndCount, insertAuth,updateAuth,deleteAuths } from '../../api/api.js';
 export default {
   components: { MyBread },
   data() {
     return {
-      form: {},
+      formLabelWidth: '100px',
+      ruleForm: {},
       isTransfer: false,
       dialogTitle: '',
-      data: [
-        {
-          id: 1,
-          label: '涓�绾� 1',
-          children: [
-            {
-              id: 4,
-              label: '浜岀骇 1-1',
-              children: [
-                {
-                  id: 9,
-                  label: '涓夌骇 1-1-1',
-                },
-                {
-                  id: 10,
-                  label: '涓夌骇 1-1-2',
-                },
-              ],
-            },
-          ],
-        },
-        {
-          id: 2,
-          label: '涓�绾� 2',
-          children: [
-            {
-              id: 5,
-              label: '浜岀骇 2-1',
-            },
-            {
-              id: 6,
-              label: '浜岀骇 2-2',
-            },
-          ],
-        },
-        {
-          id: 3,
-          label: '涓�绾� 3',
-          children: [
-            {
-              id: 7,
-              label: '浜岀骇 3-1',
-            },
-            {
-              id: 8,
-              label: '浜岀骇 3-2',
-            },
-          ],
-        },
-      ],
-      tableData: [
-        {
-          date: '2016-05-02',
-          name: '鐜嬪皬铏�',
-          province: '涓婃捣',
-          city: '鏅檧鍖�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
-          zip: 200333,
-        },
-        {
-          date: '2016-05-04',
-          name: '鐜嬪皬铏�',
-          province: '涓婃捣',
-          city: '鏅檧鍖�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�',
-          zip: 200333,
-        },
-        {
-          date: '2016-05-01',
-          name: '鐜嬪皬铏�',
-          province: '涓婃捣',
-          city: '鏅檧鍖�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�',
-          zip: 200333,
-        },
-        {
-          date: '2016-05-03',
-          name: '鐜嬪皬铏�',
-          province: '涓婃捣',
-          city: '鏅檧鍖�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�',
-          zip: 200333,
-        },
-      ],
+      data: [],
+      InsertFormdialog: false,
+      showinfoBox: false,
+      EditFormdialog: false,
+      insertform: {},
+      tableData: [],
+      itemdetail: {},
+      upform: {},
+        multipleSelection: [],
+      count: 0,
+      listData: {
+        name: null,
+        pageIndex: 1,
+        pageSize: 10,
+      },
     };
   },
   defaultProps: {
     children: 'children',
     label: 'label',
   },
+  created() {
+    this.getRoleTabelData();
+  },
   methods: {
+   async DelFromData(){
+      var std = [];
+      for (var i in this.multipleSelection) {
+        std.push(this.multipleSelection[i].id);
+      }
+      const data = await deleteAuths({ ids: std.toString() });
+      if (data.code == 200) {
+        this.$message({
+          message: '鍒犻櫎鎴愬姛锛�',
+          type: 'success',
+        });
+        this.getRoleTabelData();
+      } else {
+        this.$message({
+          message: '鍒犻櫎澶辫触锛�',
+          type: 'warning',
+        });
+      }
+    },
+     handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    submitForm(formName) {
+      this.getRoleTabelData()
+
+    },
+    resetForm(formName) {
+      this.ruleForm ={}
+      this.getRoleTabelData();
+    },
+     EditFromDataClose(){
+      this.EditFormdialog = false;
+      this.upform ={};
+     },
+    async EditFromData(){
+        const data = await updateAuth(this.upform);
+        if (data.code == 200) {
+        this.EditFormdialog = false;
+        this.upform = {};
+        this.$message({
+          message: '淇敼鎴愬姛锛�',
+          type: 'success',
+        });
+        this.getRoleTabelData();
+      } else {
+        this.$message({
+          message: '淇敼澶辫触锛�',
+          type: 'warning',
+        });
+      }
+
+    },
+    showDetail(index, row) {
+      this.showinfoBox = true;
+      this.itemdetail = row;
+    },
+    handleEdit(index, row) {
+      this.EditFormdialog = true;
+      this.upform = row;
+    },
+    closeDetial() {
+      this.showinfoBox = false;
+      this.itemdetail = {};
+    },
+    handleSizeChange(val) {
+      this.listData.pageSize = val;
+      this.getRoleTabelData();
+    },
+    handleCurrentChange(val) {
+      this.listData.pageIndex = val;
+      this.getRoleTabelData();
+    },
+    insertFromDataClose() {
+      this.InsertFormdialog = false;
+      this.insertform = {};
+    },
+    async insertFromData() {
+      const data = await insertAuth(this.insertform);
+      if (data.code == 200) {
+        this.InsertFormdialog = false;
+        this.insertform = {};
+        this.$message({
+          message: '娣诲姞鎴愬姛锛�',
+          type: 'success',
+        });
+        this.getRoleTabelData();
+      } else {
+        this.$message({
+          message: '娣诲姞澶辫触锛�',
+          type: 'warning',
+        });
+      }
+    },
+    async getRoleTabelData() {
+      if (this.listData.tab == '') {
+        delete this.listData.tab;
+      }
+    this.listData.name = this.ruleForm.name;
+      const data = await select_Auth_ByPageAndCount(this.listData);
+      if (data.code != 200) {
+        this.$message.error('鍒楄〃璋冪敤澶辫触');
+      }
+      console.log(data.result);
+      this.tableData = data.result;
+      this.count = data.count;
+    },
+    formatTime(row, column) {
+      let date = row[column.property];
+      return this.formomentTime(date);
+    },
+    formomentTime(date) {
+      if (date === undefined || date === null) {
+        return;
+      }
+      return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss');
+    },
     handleClick(row) {
-      console.log(row);
       this.dialogTitle = row.name;
       this.isTransfer = true;
     },
@@ -257,5 +465,58 @@
   .pagination_box {
     margin-top: 20px;
   }
+  .infoBox {
+    width: 500px;
+    border: 1px solid #eee;
+    position: absolute;
+    z-index: 100;
+    top: 25%;
+    right: 12%;
+    background-color: #fff;
+    .el-card {
+      background-color: transparent;
+      span {
+        font-size: 16px;
+        font-weight: 600;
+      }
+    }
+    .contentBox {
+      margin: 0 aotu 10px;
+      height: 485px;
+      overflow: auto;
+      p {
+        // background-color: #bfa;
+        // margin-bottom: 10px;
+        font-size: 14px;
+      }
+      .boxlabel {
+        margin-left: 10px;
+      }
+    }
+    /* 鏁翠綋鏍峰紡 */
+    .contentBox::-webkit-scrollbar {
+      width: 6px;
+      height: 6px;
+    }
+
+    /* 婊氬姩鏉� */
+    .contentBox::-webkit-scrollbar-thumb {
+      background-color: #b3d8ff;
+      border-radius: 6px;
+    }
+
+    /* 婊氬姩鏉¢紶鏍囩粡杩囨牱寮� */
+    .contentBox::-webkit-scrollbar-thumb:hover {
+      background-color: #b3d8ff;
+      border-radius: 6px;
+    }
+
+    /* 婊氬姩鏉¤建閬� */
+    .contentBox::-webkit-scrollbar-track-piece {
+      -webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+      border-radius: 10px;
+      background: #ededed;
+    }
+  }
 }
 </style>

--
Gitblit v1.9.3