实习项目总结-Pandroid仿真数据管理平台

目录

一. 主页

(一). 实现功能

主页配置:

我的数据:

(二). 实现效果

1.主页配置

1.1主页配置弹窗

1.2拖拽排序

1.3模块订阅

1.4列数更改

1.5重置订阅

2.我的数据

2.1主页数据展示

2.2查看全部跳转

2.3主页链接跳转

2.4查看全部链接跳转

2.5echarts展示数据

(二). 实现代码

1.主页+订阅弹窗页面

2.订阅模块

点击查看订阅模块实现代码

3.订阅模块配置文件

4.查看全部(组件复用)

二. 更改所有者

(一)实现功能

(二)实现效果

 (三)实现代码

1.dialog

2.code值

3.按钮


一. 主页

(一). 实现功能

主页配置:

动态更改订阅模块的顺序、显示。

数据库添加字段,设置部分模块重置效果。

我的数据:

根据用户需求选择各个模块配置。存在配置文件。根据用户需求动态化设计。

模块数据部分展示,展示前十条。

模块位置动态展示。

模块内容关键字跳转。

查看全部按钮,展示全部数据。

(二). 实现效果

1.主页配置

1.1主页配置弹窗

1.2拖拽排序

1.3模块订阅

1.4列数更改

1.5重置订阅

2.我的数据

2.1主页数据展示

2.2查看全部跳转

2.3主页链接跳转

2.4查看全部链接跳转

2.5echarts展示数据

(二). 实现代码

1.主页+订阅弹窗页面

dashboard文件夹=>index.vue

<template>
  <div class="dashboard-container firstPage">
    <div class="dashboard-text">
      <el-card style="min-height: calc(100vh - 120px)">
        <div slot="header" class="card-title">
          <span>我的数据</span>
          <el-button type="primary" @click="showSubscribe" style="float: right"
            >主页配置</el-button
          >
        </div>
        <el-row :gutter="15" v-loading="pageLoading">
          <el-col
            :span="24 / subscribe.layoutCols"
            class="dataBox align-center"
            v-for="item in subscribe.sortedItems"
            :key="item.name"
          >
            <component
              :is="item.name"
              :user="user"
              :colNum="subscribe.layoutCols"
            >
            </component>
          </el-col>
        </el-row>
      </el-card>
    </div>

    <!-- 订阅的弹窗 -->
    <el-dialog
      title="主页配置"
      :visible.sync="subscribe.show"
      width="40%"
      :before-close="closedia"
      class="a1"
    >
      <el-form style="height:600px,overflow:hidden">
        <el-form-item label="布局列数:">
          <el-select v-model="subscribe.colNum" placeholder="请选择布局列数">
            <el-option label="2列" value="2"> </el-option>
            <el-option label="3列" value="3"> </el-option>
            <el-option label="4列" value="4"> </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="订阅模块:">
          <div class="drags">
            <div
              class="item"
              :class="'item' + subscribe.colNum"
              v-for="(item, index) in subscribe.items"
              :key="item + index + 'key'"
              draggable
              @dragstart="startDrag($event, item)"
              @dragover.prevent="handDragOver($event, item)"
              @dragenter="handDragEnter($event, item)"
              @dragend="endDrag($event, item)"
              :style="{ background: item.color }"
              :ref="item.color"
            >
              <div class="bc">
                <div class="item-title">{{ item.cname }}</div>
                <el-switch
                  v-model="item.subscribed"
                  inactive-color="#ff4949"
                  active-text="订阅"
                  inactive-text="取消"
                >
                </el-switch>
              </div>
            </div>
          </div>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button type="success" @click="updateConfigurationListByRole"
          >重 置</el-button
        >
        <el-button type="primary" @click="updateUserConfiguration"
          >确 定</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>

<script>
import { mapGetters, mapState } from "vuex";
import MyCounts from "./components/statisticsAnalysis/myCount";
import FileCount from "./components/statisticsAnalysis/fileCount";
import MyMessages from "./components/statisticsAnalysis/MyMsgs";
import MyAssigns from "./components/statisticsAnalysis/TaskCount";
import MyDataStatistics from "./components/statisticsAnalysis/dataCount";
import MyOperations from "./components/statisticsAnalysis/myOperates";
import MyTools from "./components/statisticsAnalysis/toolsRunning";

import MyProjects from "./components/myDatas/myProjects";
import MyItems from "./components/myDatas/myAnalysisTargets";
import MyVersions from "./components/myDatas/myVersions";
import MyModels from "./components/myDatas/myModels";
import MySolvingFiles from "./components/myDatas/mySolvingFiles";
import MyReports from "./components/myDatas/myReports";
import MyResults from "./components/myDatas/myReuslts";
import MyAllKeyResults from "./components/myDatas/myAllKeyResult";
import MyToDoTaskNode from "./components/myDatas/myToDoTaskNode";
import MyApproval from "./components/myDatas/myApply";
import MyTasks from "./components/myDatas/myWork";
import MyCreateTask from "./components/myDatas/myCreateTask";
import MyPersonInfo from "./components/myDatas/myPersonInfo";

import { getUserConfiguration } from "@/api/statistics";
import { getAllConfiguration } from "@/api/statistics";
import { updateUserConfiguration } from "@/api/statistics";
import { findConfigurationListByRole } from "@/api/statistics";

export default {
  name: "Dashboard",
  computed: {
    ...mapGetters(["name"]),
    ...mapState({
      user: (state) => state.user.user,
    }),
  },
  components: {
    // CountTo,
    MyCounts,
    FileCount,
    MyMessages,
    MyAssigns,
    MyDataStatistics,
    MyOperations,
    MyTools,

    MyProjects,
    MyItems,
    MyVersions,
    MyModels,
    MySolvingFiles,
    MyReports,
    MyResults,
    MyAllKeyResults,
    MyToDoTaskNode,
    MyTasks,
    MyCreateTask,
    MyApproval,
    MyPersonInfo,
  },
  data() {
    return {
      pageLoading: false,
      subscribe: {
        colNum: 3,
        layoutCols: 3,
        objectid: "",
        show: false,
        ending: null,
        dragging: null,
        items: [],
        sortedItems: [],
        cacheItems: [],
        cacheCols: 3,
      },
      defaultConfig: {
        column: 4,
        default: [],
      },
      allConfig: [],
    };
  },

  methods: {
    // 获取个人主页配置
    getUserConfiguration() {
      return getUserConfiguration();
    },
    // 获取全部主页配置
    getAllConfiguration() {
      return getAllConfiguration();
    },
    // 根据用户角色获取默认配置
    findConfigurationListByRole() {
      return findConfigurationListByRole();
    },
    async configuration() {
      let UserConfiguration = await this.getUserConfiguration();
      let AllConfiguration = await this.getAllConfiguration();
      let DefaultConfiguration = await this.findConfigurationListByRole();
      let userConfig = UserConfiguration.data;
      let allConfig = AllConfiguration.data;
      let defaultConfig = DefaultConfiguration.data;
      console.log(userConfig);
      console.log(allConfig);

      this.allConfig = JSON.parse(JSON.stringify(allConfig));
      this.defaultConfig = defaultConfig;

      let subscribeid =
        userConfig.subscribe.length != 0
          ? userConfig.subscribe
          : defaultConfig.default;

      var subed = [];
      for (var item of subscribeid) {
        for (var allItem of allConfig) {
          if (allItem.objectid == item) {
            allItem.subscribed = true;
            subed.push(allItem);
            break;
            
          }
        }
      }
      var notSub = allConfig.filter((item) => {
        if (!subscribeid.includes(item.objectid)) {
          item.subscribed = false;
          return item
        }
      });
      var config = [...subed, ...notSub];
      console.log(config);
      // var config = allConfig.map((item) => {
      //   item.subscribed = subscribeid.includes(item.objectid) ? true : false;
      //   return item;
      // });

      this.subscribe.items = JSON.parse(JSON.stringify(config));
      console.log(this.subscribe.items);
      this.subscribe.colNum =
        userConfig.column.length != 0
          ? userConfig.column
          : defaultConfig.column;

      // this.subscribe.objectid = userconfig.objectid;
      this.sortConfirm();
      this.pageLoading = false;
    },
    // 更新个人主页
    updateUserConfiguration() {
      var user = JSON.parse(localStorage.getItem("user")); //数组对象
      let userId = user.objectid;
      var subids = [];
      for (var item of this.subscribe.items) {
        if (item.subscribed == true) {
          subids.push(item.objectid);
        }
      }

      let data = {
        user: userId,
        column: this.subscribe.colNum,
        subscribeList: subids,
      };
      updateUserConfiguration(data).then((res) => {
        if (res) {
          console.log(res);
          this.sortConfirm();
        }
      });
    },
    // 根据用户角色获取默认配置
    updateConfigurationListByRole() {
      let arr = this.allConfig.map((item) => {
        item.subscribed = this.defaultConfig.default.includes(item.objectid)
          ? true
          : false;
        return item;
      });
      this.subscribe.items = JSON.parse(JSON.stringify(arr));
      this.subscribe.colNum = this.defaultConfig.column;
    },
    startDrag(e, item) {
      console.log(e, item);
      this.subscribe.dragging = item;
      console.log(this.$refs[item.color]);
    },
    handDragOver(e, item) {
      console.log(e, item);
      e.dataTransfer.dropEffect = "move";
    },
    handDragEnter(e, item) {
      console.log(e, item);
      e.dataTransfer.effectAllowed = "move";
      this.subscribe.ending = item;
    },
    endDrag(e, item) {
      console.log(e, item);
      if (this.subscribe.ending.name === this.subscribe.dragging.name) {
        return;
      }
      let newItems = [...this.subscribe.items];
      const src = newItems.indexOf(this.subscribe.dragging);
      const dst = newItems.indexOf(this.subscribe.ending);

      newItems.splice(src, 1);
      newItems.splice(dst, 0, this.subscribe.dragging);
      this.subscribe.items = newItems;
      this.$nextTick(() => {
        this.subscribe.dragging = null;
        this.subscribe.ending = null;
      });
    },
    showSubscribe() {
      this.subscribe.show = true;
    },
    sortConfirm() {
      this.subscribe.sortedItems = this.subscribe.items.filter((v) => {
        return v.subscribed;
      });
      this.subscribe.layoutCols = this.subscribe.colNum;
      this.subscribe.cacheItems = this.subscribe.items;
      this.subscribe.cacheCols = this.subscribe.colNum;
      this.subscribe.show = false;
    },
    closedia(done) {
      this.subscribe.items = this.subscribe.cacheItems;
      this.subscribe.colNum = this.subscribe.cacheCols;
      if (done) {
        done();
      }
    },
  },
  created() {
    this.pageLoading = true;
    this.configuration();
  },
  mounted() {},
};
</script>

<style lang="scss" scoped>
.a1{
  height: 100%;
  ::v-deep .el-dialog__body{
    height: 40rem;
    overflow: auto;
  }
}
.dashboard {
  &-container {
    margin: 30px;
  }
}
.firstPage {
  .card-title {
    font-size: 20px;
    font-weight: bold;
  }
  ::v-deep .dataBox {
    height: calc(50vh - 150px);
    margin-bottom: 15px;
    .border-box {
      border: 1px solid #eef;
      border-radius: 5px;
      height: calc(50vh - 150px);
      box-sizing: border-box;
      padding: 15px 0;
    }
    #smChart {
      height: 100px;
      width: 200px;
    }
    .readBox {
      line-height: 28px;
    }
    .card-sub-title {
      font-size: 18px;
      font-weight: bold;
      line-height: 20px;
      .messageIcon {
        color: #409eff;
        font-size: 18px;
        display: inline-block;
        vertical-align: middle;
        margin: 0 5px;
      }
      .messageNum {
        display: inline-block;
        vertical-align: middle;
        font-size: 14px;
        color: #679;
        margin: 0 5px;
      }
    }
    .chartTitle {
      font-size: 18px;
      font-weight: bold;
      padding-left: 15px;
    }
    .middleChartBox {
      height: 300px;
    }
    .chartBox {
      height: 300px;
    }
    .label {
      color: #999;
    }
    .bo {
      font-size: 30px;
    }
    .card-panel-num {
      font-size: 40px;
      line-height: 200px;
    }
  }

  ::v-deep .drags {
    display: flex;
    flex-wrap: wrap;
    .item {
      height: 100px;
      // width: 200px;
      // background: #f5f9ff;
      margin-right: 20px;
      margin-bottom: 20px;
      text-align: center;
      .bc {
        width: calc(100% -20px);
        background: #f5f9ff;
      }
      .item-title {
        line-height: 60px;
      }
      &.item2 {
        width: calc(50% - 20px);
      }
      &.item3 {
        width: calc(33% - 20px);
      }
      &.item4 {
        width: calc(25% - 20px);
      }
    }

    .el-switch__label--left {
      &.is-active {
        color: #ff4949;
      }
    }
    .el-switch__label--right.is-active {
      &.is-active {
        color: #1890ff;
      }
    }
  }
}
</style>

2.订阅模块

点击查看订阅模块实现代码

3.订阅模块配置文件

{
    "myAllKeyResult": {
        "label": [
            "名称",
            "性能结果类型",
            "创建者",
            "所有者",
            "创建时间",
            "结果",
            "描述"
        ]
    },
    "myAnalysisTargets": {
        "label": [
            "对象名称",
            "项目",
            "分析对象定义",
            "上层分析对象",
            "创建者",
            "所有者",
            "创建时间",
            "描述"
        ]
    },
    "myApply": {
        "label": [
            "名称",
            "审批对象名称",
            "类型",
            "申请时间",
            "状态"
        ]
    },
    "myCreateTask": {
        "label": [
            "任务名称",
            "项目",
            "版本",
            "阶段",
            "类型",
            "上层任务",
            "任务负责人",
            "创建时间",
            "任务状态"
        ]
    },
    "myModels": {
        "label": [
            "模型名称",
            "版本方案",
            "项目",
            "分析对象",
            "阶段",
            "模型定义",
            "模型实例类型",
            "上层模型",
            "格式",
            "密级",
            "创建者",
            "所有者",
            "创建时间",
            "描述"
        ]
    },
    "myProjects": {
        "label": [
            "项目名称",
            "项目长名",
            "项目类型",
            "上层项目",
            "创建者",
            "所有者",
            "创建时间",
            "项目状态",
            "描述"
        ]
    },
    "myReports": {
        "label": [
            "名称",
            "项目",
            "关联数据",
            "密级",
            "报告类型",
            "创建者",
            "所有者",
            "创建时间",
            "描述"
        ]
    },
    "myReuslts": {
        "label": [
            "名称",
            "项目",
            "分析对象",
            "版本",
            "模型定义",
            "结果类型",
            "分析类型",
            "计算文件",
            "格式",
            "研制阶段",
            "创建者",
            "所有者",
            "创建时间",
            "结果描述"
        ]
    },
    "mySolvingFiles": {
        "label": [
            "模型名称",
            "项目",
            "分析对象",
            "版本方案",
            "模型实例类型",
            "模型定义",
            "分析类型",
            "分析工具",
            "格式",
            "密级",
            "阶段",
            "创建者",
            "所有者",
            "创建时间",
            "描述"
        ]
    },
    "myToDoTaskNode": {
        "label": [
            "名称",
            "审批对象名称",
            "申请人",
            "类型",
            "申请时间"
        ]
    },
    "myVersions": {
        "label": [
            "版本名称",
            "分析对象",
            "项目",
            "分析对象定义",
            "版本方案定义",
            "上层版本方案",
            "阶段",
            "创建者",
            "所有者",
            "创建时间",
            "描述"
        ]
    },
    "myWork": {
        "label": [
            "任务名称",
            "项目",
            "版本",
            "阶段",
            "类型",
            "上层任务",
            "任务负责人",
            "创建时间",
            "任务状态"
        ]
    }
}

4.查看全部(组件复用)

myDatasList文件夹=>index.vue

<template>
  <div class="dashboard-container firstPage">
    <div class="dashboard-text">
      <el-card class="box-card" style="min-height: calc(100vh - 80px)">
        <div slot="header" class="clearfix">
          <span>{{$route.query.title}}</span>
        </div>
        <!-- 我的项目 -->
        <myProjects :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的项目' "></myProjects>
        <!-- 我的分析对象 -->
        <myItems :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的分析对象' "></myItems>
        <!-- 我的版本方案 -->
        <myVersions :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的版本方案' "></myVersions>
        <!-- 我的模型 -->
        <myModels :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title==='我的模型'"></myModels>
        <!-- 我的求解文件 -->
        <mySolvingFiles :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的求解文件'" ></mySolvingFiles>
        <!-- 我的分析报告 -->
        <myReports :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的分析报告' "></myReports>
        <!-- 我的仿真结果 -->
        <myResults :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的仿真结果'" ></myResults>
        <!-- 我的性能结果 -->
        <myAllKeyResults :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的性能结果' "></myAllKeyResults>
        <!-- 我的任务 -->
        <myTasks :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的任务' "></myTasks>
        <!-- 我创建的任务 -->
        <myCreateTask :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我创建的任务' "></myCreateTask>
        <!-- 我的审批申请 -->
        <myApproval :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的审批申请' "></myApproval>
        <!-- 我的代办审批 -->
        <myToDoTaskNode :page='currentPage' :pagesize="pagesize" @retotal="totalChange" v-if=" $route.query.title === '我的代办审批'"></myToDoTaskNode>
        <div class="mt15" style="text-align: right">
          <el-pagination
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :current-page="currentPage"
            :page-sizes="[10, 20, 30, 40]"
            :page-size="pagesize"
            layout="total, prev, pager, next, sizes, jumper"
            :total="total"
          >
          </el-pagination>
        </div>
      </el-card>
    </div>
  </div>
</template>
<script>
import MyProjects from "../dashboard/components/myDatas/myProjects";
import MyItems from "../dashboard/components/myDatas/myAnalysisTargets";
import MyVersions from "../dashboard/components/myDatas/myVersions";
import MyModels from "../dashboard/components/myDatas/myModels";
import MySolvingFiles from "../dashboard/components/myDatas/mySolvingFiles";
import MyReports from "../dashboard/components/myDatas/myReports";
import MyResults from "../dashboard/components/myDatas/myReuslts";
import MyAllKeyResults from "../dashboard/components/myDatas/myAllKeyResult";
import MyToDoTaskNode from "../dashboard/components/myDatas/myToDoTaskNode";
import MyApproval from "../dashboard/components/myDatas/myApply";
import MyTasks from "../dashboard/components/myDatas/myWork";
import MyCreateTask from "../dashboard/components/myDatas/myCreateTask";

export default {
  name: "myDatasList",
  components: {
    MyProjects,
    MyItems,
    MyVersions,
    MyModels,
    MySolvingFiles,
    MyReports,
    MyResults,
    MyAllKeyResults,
    MyToDoTaskNode,
    MyApproval,
    MyTasks,
    MyCreateTask,
  },
  data(){
    return{
			currentPage:1,
			pagesize:10,
			total:0,
		}
  },
  methods:{
    totalChange(val){
      this.total  = val;
      this.prev = val
    },
    handleSizeChange(val){
      this.pagesize = val
      this.$emit("add",this.page)
      this.$emit("add",this.pagesize)
		},
    handleCurrentChange(val){
			this.currentPage = val
		},
  },
};
</script>

二. 更改所有者

(一)实现功能

校验登录用户身份,校验不同文件类型,更改所对应所有者。

(二)实现效果

 (三)实现代码

1.dialog

<template>
  <div class="updateOwner">
    <el-dialog
      title="更改所有者"
      :visible.sync="value"
      width="500px"
      :before-close="handleClose"
      :close-on-click-modal="false"
      @close="handleAssignUserClose"
    >
      <el-form
        :inline="true"
        ref="assignUserForm"
        :model="formInline"
        class="demo-form-inline"
      >
        <el-form-item label="项目" required>
          <el-cascader
            v-model="formInline.project"
            :options="projectData"
            :props="projectProps"
            placeholder="请选择项目"
            clearable
            :disabled="true"
          >
          </el-cascader>
        </el-form-item>
      </el-form>
      <div class="projectBox">
        <el-tag style="margin: 2px" size="small">
          {{ currentowner.name }}
        </el-tag>
      </div>
      <el-table
        :data="tableData"
        border
        style="width: 100%"
        class="mt15"
        size="mini"
      >
        <el-table-column prop="realName" label="用户名"> </el-table-column>
        <!-- <el-table-column prop="name" label="账户"> </el-table-column> -->
        <el-table-column label="操作" width="100">
          <template slot-scope="scope">
            <el-button
              type="text"
              size="mini"
              v-if="!(scope.row.userId==currentowner.id)"
              @click="handleAdd(scope.row)"
              >更改</el-button
            >
          </template>
        </el-table-column>
      </el-table>
      <div class="mt15 align-right clear">
        <el-pagination
          @current-change="handleCurrentChange"
          :current-page.sync="currentPage"
          :page-size="10"
          layout="total, prev, pager, next, jumper"
          :total="total"
          size="mini"
        >
        </el-pagination>
      </div>

      <span slot="footer" class="dialog-footer">
        <el-button @click="handleAssignUserClose">取 消</el-button>
        <el-button type="primary" @click="assignProjectForUser"
          >提 交</el-button
        >
      </span>
    </el-dialog>
  </div>
</template>

<script>
import { updateAuth } from '@/utils/statusCode'
import { findAllRole } from "@/api/authorization/role";
import { getUserListByPage } from "@/api/authorization/user";
import request from "@/utils/request";
import { mapState } from "vuex";
export default {
  name: "updateOwner",
  computed: {
    ...mapState({
      user: (state) => state.user.user,
    }),
  },
  props: {
    value: {
      type: Boolean,
      default: false,
      required: true,
    },
    projectData: {
      type: Array,
    },
    updateAcObj: {
      type: Object,
    },
    // ownerId: { type: String },
  },
  data() {
    return {
      projectProps: {
        value: "objectid",
        label: "name",
        children: "children",
        checkStrictly: true,
      },
      updateAuth,
      tableData: [],
      currentPage: 1,
      total: 0,
      formInline: {},
      userList: [],
      expirationDate: "",
      roleList: [],
      associatedUserList: [],
      projectUserList: [],
      currentowner: { name: "", id: "" },
    };
  },
  methods: {
    initForm(projectDetail) {
      // debugger 
      this.currentowner.id = this.updateAcObj.ownerId;

      this.formInline.project = projectDetail.objectid;
      this.formInline.parentProject = projectDetail.parent;
      this.getUsersByProjectId(this.formInline.project);
      this.$emit("input", true);
    },

    assignProjectForUser() {
      let typeObj = {
        project: 1,
        item: 2,
        version: 3,
        model: 4,
        inputDeck: 5,
        result: 6,
        report: 7,
        imageResult: 9,
        valueResult: 10,
        docResult: 11,
        movieResult: 12,
        curveResult: 13, 
        itemDef: 15,
        versionDef: 16,
        Scenario: 17,
        modelDef: 18,
        studyDoc:19,
        studyDocTag:20
      };
      let data = {
        objectId: this.updateAcObj.objectId,
        type: typeObj[this.updateAcObj.type],
        owner: this.currentowner.id,
      };

      console.log(data);
      request({
        url: "/datamanager/updateAuth/updateOwner",
        method: "get",
        params: data,
      })
        .then((res) => {
          this.$message.success("分配成功");
          this.handleClose();
          this.$emit("refreshBasic", {
            owner: this.currentowner.name,
            ownerId: this.currentowner.id,
          });
        })
        .catch((err) => {
          this.$message.error("请添加用户!");
        });
      return;
    },
    getUsersByProjectId(projectId) {
      this.getUserListByPage();
    },
    handleAdd(row) {
      // debugger
      this.currentowner.name = row.realName;
      this.currentowner.id = row.userId;
    },

    handleCurrentChange(val) {
      this.currentPage = val;
      this.getUserListByPage();
    },

    getUserListByPage() {
      var self = this;
      let data = {
        start: this.currentPage,
        limit: 10,
        userRealName: this.formInline.userRealName || "",
      };
      getUserListByPage(data).then((res) => {
        if (res) {
          this.tableData = res.data.records;
          for (let i = 0; i < this.tableData.length; i++) {
            this.tableData[i].dis = false;
            this.tableData[i].roleId = this.roleList[0].ownerid;
            for (let j = 0; j < this.associatedUserList.length; j++) {
              if (
                this.associatedUserList[j].objectid == this.tableData[i].userId
              ) {
                this.tableData[i].transmit =
                  this.associatedUserList[j].transmit;
                this.tableData[i].dis = true;
                this.tableData[i].roleId = this.associatedUserList[j].role;
              }
            }
            this.tableData[i].realName =
              "" + self.tableData[i].lastname + self.tableData[i].firstname;
            if (this.tableData[i].userId === this.currentowner.id) {
              this.currentowner.name = this.tableData[i].realName;
            }
          }
          this.total = res.data.total;
        }
      });
    },
    findAllRole() {
      findAllRole().then((res) => {
        if (res) {
          res.data.forEach((item) => {
            if (item.type == 2) {
              this.roleList.push(item);
            }
          });
        }
      });
    },

    handleAssignUserClose() {
      this.associatedUserList = [];
      this.currentPage = 1;
      this.formInline = {
        realName: null,
      };
      this.$emit("input", false);
    },
    async handleClose(done) {
      await this.$emit("input", false);
      done();
    },
  },
  created() {
    this.findAllRole();

  },
};
</script>
<style lang="scss" scoped>
.assignUser {
  .label {
    line-height: 40px;
    width: 100px;
  }
}
</style>

2.code值

export var updateAuth = {
	"item": '202',//分析对象更改所有者' 
	"version": '205',//'版本方案更改所有者' 
	"model": '208',//:'模型更改所有者' 
	"inputDeck": '211',//:'计算文件更改所有者' 
	"result": '214',//:'结果更改所有者' 
	"keyResult": '217',//:'性能结果更改所有者' 
	"report": '220',//:'报告更改所有者' 
	"docTags":"223",//文档分类更改所有者 
	"docs":"226",//知识文档更改所有者 
	"project":"227",//项目更改所有者 
	"itemDef":"228",//对象定义更改所有者
	"versionDef":"229",//版本方案定义更改所有者 
	"modelDef":"230",//模型定义更改所有者 
	"scenario":"231",//分析类型更改所有者 
}

3.按钮

<div class="fl btnItem" :class="{ disabled: editStatus }" @click="!editStatus ? updateOwner() : null"  v-if="updateAcObj.showBtn">
    <svg-icon icon-class="user" class="btnIcon" />
    <p>更改所有者</p>
    <i class="el-icon-setting smIcon"></i>
</div>
<!-- 更改所有者 -->
    <updateOwner
      ref="updateOwner"
      v-model="updateOwnerVisible"
      :updateAcObj="updateAcObj"
      :projectData="projectData"
      @refreshBasic="updOwner"
    ></updateOwner>
import updateOwner from "@/components/project/updateOwner";
updateOwner() {
      this.$refs.updateOwner.initForm(this.projectDetail);
    },

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值