From 9ce29c536ba2a636416c618761985e2b9a711ee6 Mon Sep 17 00:00:00 2001
From: lxl <lixuliang_hd@126.com>
Date: 星期四, 27 十月 2022 14:17:45 +0800
Subject: [PATCH] user

---
 src/views/userManage/resourceManage.vue |  416 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 361 insertions(+), 55 deletions(-)

diff --git a/src/views/userManage/resourceManage.vue b/src/views/userManage/resourceManage.vue
index b7a3294..5ec2010 100644
--- a/src/views/userManage/resourceManage.vue
+++ b/src/views/userManage/resourceManage.vue
@@ -23,14 +23,14 @@
                         size="small"
             >{{ $t('common.empty') }}</el-button
           >
-          <el-button
+          <el-button v-if="menuStatus.insert"
             @click="InsertFormdialog = true"
             icon="el-icon-edit"
             type="success"
                         size="small"
             >{{ $t('common.append') }}</el-button
           >
-          <el-button
+          <el-button  v-if="menuStatus.delete"
             @click="DelFromData"
             icon="el-icon-delete"
             type="danger"
@@ -73,13 +73,13 @@
         >
         </el-table-column>
         <el-table-column
-          prop="depid"
+          prop="depName"
           align="center"
           :label="$t('userManage.resManageObj.depid')"
         >
         </el-table-column>
         <el-table-column
-          prop="dirid"
+          prop="dirName"
           align="center"
           :label="$t('userManage.resManageObj.dirid')"
         >
@@ -91,19 +91,19 @@
 
         >
         </el-table-column>
-        <el-table-column
+        <!-- <el-table-column
           prop="img"
           align="center"
           :label="$t('userManage.resManageObj.img')"
         >
-        </el-table-column>
-         <el-table-column
+        </el-table-column> -->
+         <!-- <el-table-column
           prop="createUser"
           align="center"
           :label="$t('userManage.resManageObj.createUser')"
         >
-        </el-table-column>
-         <el-table-column
+        </el-table-column> -->
+         <!-- <el-table-column
           prop="createTime"
           align="center"
           :label="$t('userManage.resManageObj.createTime')"
@@ -122,7 +122,7 @@
           :label="$t('userManage.resManageObj.updateTime')"
             :formatter="formatTime"
         >
-        </el-table-column>
+        </el-table-column>-->
          <el-table-column
           prop="bak"
           align="center"
@@ -142,7 +142,7 @@
               size="small"
               >{{ $t('common.see') }}</el-button
             >
-            <el-button
+            <el-button v-if="menuStatus.update"
               @click="handleEdit(scope.$index, scope.row)"
               type="warning"
               size="small"
@@ -175,39 +175,68 @@
         </div>
                <div class="contentBox">
           <p>
-            <label> {{ $t('userManage.userInfoObj.name') }}:</label>
+            <label> {{ $t('userManage.resManageObj.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>
+            <label> {{ $t('userManage.resManageObj.server') }}:</label>
+            <label class="boxlabel">{{ itemdetail.server }}</label>
           </p>
           </p>
           <el-divider></el-divider>
           <p>
-            <label> {{ $t('userManage.userInfoObj.createUser') }}:</label>
-            <label class="boxlabel">{{ itemdetail.createUser }}</label>
+            <label> {{ $t('userManage.resManageObj.source') }}:</label>
+            <label class="boxlabel">{{ itemdetail.source }}</label>
           </p>
           <el-divider></el-divider>
            <p>
-            <label> {{ $t('userManage.userInfoObj.createTime') }}:</label>
+            <label> {{ $t('userManage.resManageObj.depid') }}:</label>
+            <label class="boxlabel">{{ itemdetail.depName }}</label>
+          </p>
+          <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.resManageObj.dirid') }}:</label>
+            <label class="boxlabel">{{ itemdetail.dirName }}</label>
+          </p>
+          <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.resManageObj.descr') }}:</label>
+            <label class="boxlabel">{{ itemdetail.descr }}</label>
+          </p>
+          <el-divider></el-divider>
+          <p>
+            <label> {{ $t('userManage.resManageObj.img') }}:</label>
+            <label class="boxlabel">
+              <div style="width:440px;height:200px;">
+                <img style="width:100%; height:100%" :src="itemdetail.imageFile" alt=""/>
+              </div>
+            </label>
+          </p>
+           <el-divider></el-divider>
+             <p>
+            <label> {{ $t('userManage.resManageObj.createUser') }}:</label>
+            <label class="boxlabel">{{ itemdetail.createUser }}</label>
+          </p>
+           <el-divider></el-divider>
+             <p>
+            <label> {{ $t('userManage.resManageObj.createTime') }}:</label>
             <label class="boxlabel">{{ itemdetail.createTime }}</label>
           </p>
-          <el-divider></el-divider>
-          <p>
-            <label> {{ $t('userManage.userInfoObj.updateUser') }}:</label>
+           <el-divider></el-divider>
+             <p>
+            <label> {{ $t('userManage.resManageObj.updateUser') }}:</label>
             <label class="boxlabel">{{ itemdetail.updateUser }}</label>
           </p>
-          <el-divider></el-divider>
-          <p>
-            <label> {{ $t('userManage.userInfoObj.updateTime') }}:</label>
+           <el-divider></el-divider>
+             <p>
+            <label> {{ $t('userManage.resManageObj.updateTime') }}:</label>
             <label class="boxlabel">{{ itemdetail.updateTime }}</label>
           </p>
-          <el-divider></el-divider>
-          <p>
-            <label> {{ $t('userManage.userInfoObj.bak') }}:</label>
+           <el-divider></el-divider>
+             <p>
+            <label> {{ $t('userManage.resManageObj.bak') }}:</label>
             <label class="boxlabel">{{ itemdetail.bak }}</label>
           </p>
            <el-divider></el-divider>
@@ -263,7 +292,7 @@
           :label="$t('userManage.resManageObj.depid')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="insertform.depid" disabled autocomplete="off"></el-input>
+          <el-input v-model="insertform.depValue" disabled autocomplete="off"></el-input>
             <el-link
             :underline="false"
             @click="showDepTree(0)"
@@ -275,10 +304,10 @@
           :label="$t('userManage.resManageObj.dirid')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="insertform.dirid" disabled autocomplete="off"></el-input>
+          <el-input v-model="insertform.dirValue" disabled autocomplete="off"></el-input>
             <el-link
             :underline="false"
-            @click="showDepTree(0)"
+            @click="showDirTree(0)"
             style="margin-left: 10px"
             ><i class="el-icon-plus"></i
           ></el-link>
@@ -289,16 +318,32 @@
         >
           <el-input v-model="insertform.descr" autocomplete="off"></el-input>
         </el-form-item>
-                 <el-form-item
+         <el-form-item
           :label="$t('userManage.resManageObj.img')"
           :label-width="formLabelWidth"
-        >
-          <el-input v-model="insertform.img" autocomplete="off"></el-input>
+        >    <el-input v-model="insertform.img" disabled autocomplete="off"></el-input>
+         <input
+            name="file1"
+            :accept="'.jpg,.png'"
+            type="file"
+            id="imageFile"
+            multiple="multiple"
+            style="display: none"
+            @change="insertFile"
+          />
             <el-link
+            :title="$t('common.append')"
             :underline="false"
-
+            @click="getIsertFile"
             style="margin-left: 10px"
             ><i class="el-icon-plus"></i
+          ></el-link>
+           <el-link
+           :title="$t('common.upload')"
+            :underline="false"
+            @click="setUploadFile(0)"
+            style="margin-left: 10px"
+            ><i class="el-icon-upload2"></i
           ></el-link>
         </el-form-item>
          <el-form-item
@@ -323,26 +368,90 @@
       style="overflow: hidden"
       :visible.sync="EditFormdialog"
       :before-close="EditFromDataClose"
-      width="30%"
     >
-      <el-form :model="upform">
+       <el-form :model="upform">
         <el-form-item
-          :label="$t('userManage.userInfoObj.name')"
+          :label="$t('userManage.resManageObj.name')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="upform.name"  ></el-input>
+          <el-input v-model="upform.name" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item
-          :label="$t('userManage.userInfoObj.tag')"
+          :label="$t('userManage.resManageObj.server')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="upform.tag"  ></el-input>
+          <el-input v-model="upform.server" autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item
-          :label="$t('userManage.userInfoObj.bak')"
+          :label="$t('userManage.resManageObj.source')"
           :label-width="formLabelWidth"
         >
-          <el-input v-model="upform.bak" ></el-input>
+          <el-input v-model="upform.source" autocomplete="off"></el-input>
+        </el-form-item>
+          <el-form-item
+          :label="$t('userManage.resManageObj.depid')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.depValue" disabled autocomplete="off"></el-input>
+            <el-link
+            :underline="false"
+            @click="showDepTree(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+        </el-form-item>
+                 <el-form-item
+          :label="$t('userManage.resManageObj.dirid')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.dirValue" disabled autocomplete="off"></el-input>
+            <el-link
+            :underline="false"
+            @click="showDirTree(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+        </el-form-item>
+                 <el-form-item
+          :label="$t('userManage.resManageObj.descr')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.descr" autocomplete="off"></el-input>
+        </el-form-item>
+                 <el-form-item
+          :label="$t('userManage.resManageObj.img')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.img" disabled autocomplete="off"></el-input>
+             <input
+            name="file1"
+            :accept="'.jpg,.png'"
+            type="file"
+            id="editimageFile"
+            multiple="multiple"
+            style="display: none"
+            @change="updateFile"
+          />
+            <el-link
+            :underline="false"
+            @click="getupdateFile"
+            style="margin-left: 10px"
+            ><i class="el-icon-plus"></i
+          ></el-link>
+           <el-link v-if="menuStatus.upload"
+           :title="$t('common.upload')"
+            :underline="false"
+            @click="setUploadFile(1)"
+            style="margin-left: 10px"
+            ><i class="el-icon-upload2"></i
+          ></el-link>
+        </el-form-item>
+         <el-form-item
+          :label="$t('userManage.resManageObj.bak')"
+          :label-width="formLabelWidth"
+        >
+          <el-input v-model="upform.bak" autocomplete="off"></el-input>
+
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -354,17 +463,56 @@
         }}</el-button>
       </div>
     </el-dialog>
+    <div class="leftTree" v-if="showDirCata">
+      <div class="treeBox">
+        <style-dir-tree></style-dir-tree>
+      </div>
+      <div class="btnBox">
+        <el-button type="primary" size="small" @click="selectDirCataName">{{
+          $t('common.confirm')
+        }}</el-button>
+        <el-button type="primary" size="small" @click="showDirCata = false">{{
+          $t('common.close')
+        }}</el-button>
+      </div>
+    </div>
+    <div class="leftTree" v-if="showDepCata">
+      <div class="treeBox">
+        <style-dep-tree></style-dep-tree>
+      </div>
+      <div class="btnBox">
+        <el-button type="primary" size="small" @click="selectDepCataName">{{
+          $t('common.confirm')
+        }}</el-button>
+        <el-button type="primary" size="small" @click="showDepCata = false">{{
+          $t('common.close')
+        }}</el-button>
+      </div>
+    </div>
   </div>
 </template>
 
 <script>
+import $ from 'jquery';
+import {
+  getToken
+} from '../../utils/auth.js'
 import moment from 'moment';
 import MyBread from '../../components/MyBread.vue';
-import { select_Res_ByPageAndCount, insertAuth, updateAuth, deleteAuths } from '../../api/api.js';
+import { select_Res_ByPageAndCount, insertRes, updateRes, deleteRess, upload_res }
+  from '../../api/api.js';
+import styleDirTree from '../datamanage/styleDirTree.vue';
+import styleDepTree from '../datamanage/styleDepTree.vue';
 export default {
-  components: { MyBread },
+  components: { MyBread, styleDirTree, styleDepTree },
   data() {
     return {
+        menuStatus: {
+        delete: false,
+        insert: false,
+        update: false,
+        upload:false,
+      },
       formLabelWidth: '130px',
       ruleForm: {},
       isTransfer: false,
@@ -373,10 +521,18 @@
       InsertFormdialog: false,
       showinfoBox: false,
       EditFormdialog: false,
-      insertform: {},
+      showDirCata: false,
+      showDepCata: false,
+      dirFlag: null,
+      depFlag: null,
+      ImageFile: null,
+      uploadFile: null,
+      insertform: {
+        img: ''
+      },
       tableData: [],
       itemdetail: {},
-      upform: {},
+      upform: { img: '' },
       multipleSelection: [],
       count: 0,
       listData: {
@@ -391,15 +547,116 @@
     label: 'label',
   },
   created() {
-    this.getRoleTabelData();
+    var val = this.$store.state.currentPerms;
+    var permsEntity = this.$store.state.permsEntity;
+    for (var i = 0; i < permsEntity.length; i++) {
+      if (permsEntity[i].perms == val) {
+        this.showPermsMenu(permsEntity[i]);
+      }
+    }
+     this.getRoleTabelData();
   },
   methods: {
+     showPermsMenu(res) {
+      switch (res.tag) {
+        case '/delete':
+          this.menuStatus.delete = true;
+          break;
+        case '/insert':
+          this.menuStatus.insert = true;
+          break;
+        case '/update':
+          this.menuStatus.update = true;
+          break;
+            case '/upload':
+          this.menuStatus.upload = true;
+          break;
+      }
+    },
+    getIsertFile() {
+      $('#imageFile').click();
+    },
+    getupdateFile() {
+      $('#editimageFile').click();
+    },
+    async setUploadFile(res) {
+      var fs;
+      if (res == 0) {
+       fs = document.getElementById("imageFile");
+
+      }else if (res ==1) {
+        fs = document.getElementById("editimageFile");
+        if(fs.files.length == 0){
+          return;
+        }
+      }
+      var formData = new FormData();
+      formData.append("file", fs.files[0]);
+      var val_data = await upload_res(formData);
+      if (val_data.code == 200) {
+        this.uploadFile = val_data.result;
+        this.$message({
+          message: '涓婁紶鎴愬姛锛�',
+          type: 'success',
+        });
+      } else {
+        this.$message({
+          message: '涓婁紶澶辫触锛�',
+          type: 'warning',
+        });
+      }
+    },
+    insertFile() {
+      var val = document.getElementById('imageFile').files;
+      if (!val || !val.length) return;
+      this.insertform.img = val[0].name;
+    },
+    updateFile() {
+      var val = document.getElementById('editimageFile').files;
+      if (!val || !val.length) return;
+      this.upform.img = val[0].name;
+    },
+    showDirTree(res) {
+      this.dirFlag = res;
+      this.showDirCata = true;
+    },
+    showDepTree(res) {
+      this.depFlag = res;
+      this.showDepCata = true;
+    },
+    selectDepCataName() {
+      this.showDepCata = false;
+      switch (this.depFlag) {
+        case 0:
+          this.insertform.depValue = this.$store.state.styleDepCateNodes.name;
+          this.insertform.depid = this.$store.state.styleDepCateNodes.id;
+          break;
+        case 1:
+          this.upform.depValue = this.$store.state.styleDepCateNodes.name;
+          this.upform.depid = this.$store.state.styleDepCateNodes.id;
+          break;
+      }
+    },
+    selectDirCataName() {
+      this.showDirCata = false;
+      switch (this.dirFlag) {
+        case 0:
+          // var data = this.$store.state.styleDirCateNodes;
+          this.insertform.dirValue = this.$store.state.styleDirCateNodes.name;
+          this.insertform.dirid = this.$store.state.styleDirCateNodes.id;
+          break;
+        case 1:
+          this.upform.dirValue = this.$store.state.styleDirCateNodes.name;
+          this.upform.dirid = this.$store.state.styleDirCateNodes.id;
+          break;
+      }
+    },
     async DelFromData() {
       var std = [];
       for (var i in this.multipleSelection) {
         std.push(this.multipleSelection[i].id);
       }
-      const data = await deleteAuths({ ids: std.toString() });
+      const data = await deleteRess({ ids: std.toString() });
       if (data.code == 200) {
         this.$message({
           message: '鍒犻櫎鎴愬姛锛�',
@@ -429,10 +686,16 @@
       this.upform = {};
     },
     async EditFromData() {
-      const data = await updateAuth(this.upform);
+
+
+       if (this.uploadFile != null) {
+        this.upform.img = this.uploadFile;
+      }
+      const data = await updateRes(this.upform);
       if (data.code == 200) {
         this.EditFormdialog = false;
         this.upform = {};
+        this.uploadFile = null;
         this.$message({
           message: '淇敼鎴愬姛锛�',
           type: 'success',
@@ -448,11 +711,17 @@
     },
     showDetail(index, row) {
       this.showinfoBox = true;
+      var token = getToken();
       this.itemdetail = row;
+      this.itemdetail.createTime = this.formomentTime(this.itemdetail.createTime);
+      this.itemdetail.updateTime = this.formomentTime(this.itemdetail.updateTime);
+      this.itemdetail.imageFile = BASE_URL + "/res/download?guid=" + row.img + "&token=" + token
     },
     handleEdit(index, row) {
       this.EditFormdialog = true;
       this.upform = row;
+      this.upform.depValue = row.depName;
+      this.upform.dirValue = row.dirName;
     },
     closeDetial() {
       this.showinfoBox = false;
@@ -471,10 +740,23 @@
       this.insertform = {};
     },
     async insertFromData() {
-      const data = await insertAuth(this.insertform);
+      if (this.insertform.dirid == null || this.insertform.depid == null) {
+        this.$message({
+          message: '璇烽�夋嫨璧勬簮鎵�灞炵殑鐩綍鎴栧崟浣�',
+          type: 'warning',
+        });
+        return;
+      }
+      if (this.uploadFile != null) {
+        this.insertform.img = this.uploadFile;
+      }
+      const data = await insertRes(this.insertform);
       if (data.code == 200) {
         this.InsertFormdialog = false;
-        this.insertform = {};
+        this.insertform= {
+        img: ''
+      };
+        this.uploadFile = null;
         this.$message({
           message: '娣诲姞鎴愬姛锛�',
           type: 'success',
@@ -493,10 +775,11 @@
       }
       this.listData.name = this.ruleForm.name;
       const data = await select_Res_ByPageAndCount(this.listData);
+
       if (data.code != 200) {
         this.$message.error('鍒楄〃璋冪敤澶辫触');
       }
-      console.log(data.result);
+
       this.tableData = data.result;
       this.count = data.count;
     },
@@ -526,15 +809,15 @@
   padding: 10px;
   box-sizing: border-box;
   .el-input {
-     width: 745px;
+    width: 730px;
   }
   .power_quire {
-   margin: 10px auto;
+    margin: 10px auto;
     background: #fff;
     border-radius: 5px;
     border: 1px solid rgb(202, 201, 204);
     margin-bottom: 10px;
-      .el-form-item {
+    .el-form-item {
       margin: 5px;
     }
     .el-input {
@@ -542,7 +825,7 @@
     }
   }
   .table_box {
-    height:76%;
+    height: 76%;
     padding: 10px;
     background: #fff;
     border-radius: 5px;
@@ -551,6 +834,29 @@
   .pagination_box {
     margin-top: 20px;
   }
+  .leftTree {
+    position: absolute;
+    z-index: 10;
+    z-index: 9999;
+    top: 100px;
+    left: 800px;
+    width: 400px;
+    height: 600px;
+    background: #f0f2f5;
+    border: 1px solid #000;
+    .treeBox {
+      height: 550px;
+      overflow: auto;
+      /deep/ .el-tree-node__content:hover {
+        background-color: rgb(153, 153, 153);
+      }
+    }
+    .btnBox {
+      width: 160px;
+      margin: 10px auto 0;
+      // background-color: red;
+    }
+  }
   .infoBox {
     width: 500px;
     border: 1px solid #eee;

--
Gitblit v1.9.3