Surpriseplus
2022-10-26 62ae55ae397b7997b147a7b946f7ad5f1c78a45d
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;