田源
2023-09-12 ade4735384aa2b35f54799c64973342d6ab76b9a
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -8,37 +8,38 @@
<script>
import {getTreeList} from "@/api/MasterData/master";
import {mapMutations, mapState} from "vuex";
import {TableData,MasterTable} from "@/api/GetItem";
import {TableData, MasterTable} from "@/api/GetItem";
export default {
  name: "MasterTree",
  props:{
    pageSize:{
      type:String,
      default:"10"
  props: {
    pageSize: {
      type: String,
      default: "100"
    },
    currentPage:{
      type:String,
      default:"1"
    currentPage: {
      type: String,
      default: "1"
    },
    templateOid:{
      type:String,
      default:''
    templateOid: {
      type: String,
      default: ''
    },
  },
  data(){
    return{
      masterVrBtnList:[],
      tableHeadFindData:[],
      tableHeadDataFateher:[],
      templateOids:"",
      tableDataArray:[],
      codeClassifyOid:"",
      coderuleoid:"",
      CloneTreeAvueform:{},
      loading:false,
      Treedata:[],
  data() {
    return {
      TreeValue:'',
      idData: '',
      masterVrBtnList: [],
      tableHeadFindData: [],
      tableHeadDataFateher: [],
      templateOids: "",
      tableDataArray: [],
      codeClassifyOid: "",
      coderuleoid: "",
      CloneTreeAvueform: {},
      loading: false,
      Treedata: [],
      nodeClickList: "",
      Treeoption: {
        addBtn: false,
@@ -51,15 +52,15 @@
        //   console.log(node)
        //   console.log(resolve)
        // }
        treeLoad:function (node, resolve){
          if(node.data != false){
        treeLoad: function (node, resolve) {
          if (node.data != false) {
            const parentId = (node.level === 0) ? 0 : node.data.oid;
            const parentBtmName = node.data.attributes.btmname
            getTreeList({parentOid:parentId,parentBtmName:parentBtmName}).then(res=>{
              resolve(res.data.map(item=>{
            getTreeList({parentOid: parentId, parentBtmName: parentBtmName}).then(res => {
              resolve(res.data.map(item => {
                return {
                  ...item,
                  label:item.text
                  label: item.text
                }
              }))
            })
@@ -71,22 +72,32 @@
  created() {
    this.getTreeLists()
  },
  computed:{
   },
  methods:{
  computed: {},
  methods: {
    //获取数据
    getTreeLists(){
      const fullPath = this.$route.fullPath
      const queryString = fullPath.split('?')[1];
      getTreeList({'conditionMap[id]': 'wupin'}).then(res=>{
        this.Treedata=res.data
        this.ModifyProperties(this.Treedata, 'text', 'label');
        this.codeClassifyOid=res.data[0].oid;
        this.coderuleoid=res.data[0].attributes.coderuleoid;
        this.$emit("coderuleoid", this.coderuleoid )
      }).catch(res=>{
    getTreeLists() {
      const index = this.$route.query.id.indexOf('@');
      const result = this.$route.query.id.substring(0, index);
      this.idData = result
      // console.log(this.$route)
      getTreeList({'conditionMap[id]': this.idData}).then(res => {
        if(res){
          if(res.data.length === 0){
            this.$message.error("主数据分类查询为空!");
          }else{
            this.Treedata = res.data;
            const [firstProperty] = res.data;
            this.ModifyProperties(this.Treedata, 'text', 'label');
            this.codeClassifyOid = firstProperty.oid;
            this.coderuleoid = firstProperty.attributes.coderuleoid;
            this.$emit("coderuleoid", this.coderuleoid)
            this.$emit('Treedata', this.Treedata)
          }
        }
      }).catch(res => {
        console.log(res)
      })
        this.$message.error(res)
      });
    },
    //定义一个修改数据属性名的方法
@@ -102,27 +113,28 @@
      }
    },
    //表格刷新
    TableRend(){
    TableRend() {
      TableData({
        templateOid: this.templateOids,
        codeClassifyOid: this.nodeClickList.oid,
        page: this.currentPage,
        limit: this.pageSize,
      }).then(res => {
        this.tableDataArray=res.data.data;
        this.$emit('tableDataArray',this.tableDataArray)
        this.$emit('total',res.data.total)
        console.log('table',this.tableDataArray)
        this.tableDataArray = res.data.data;
        this.$emit('tableDataArray', this.tableDataArray)
        this.$emit('total', res.data.total)
      })
    },
    //表格头部
    TableHeadRend() {
      const index = this.$route.query.id.indexOf('@');
      const result = this.$route.query.id.substring(0, index);
      return new Promise((resolve, reject) => {
        MasterTable({
          codeClassifyOid: this.nodeClickList.oid,
          functionId: 5,
          functionId: result,
        }).then(res => {
          const flagsToDeleteBtn = ["CODEIMPORTHISTORY", "CODEEXPORT", "CODEQUERY","batchApplyCode"];
          const flagsToDeleteBtn = ["CODEIMPORTHISTORY", "CODEEXPORT", "CODEQUERY", "batchApplyCode"];
          //不同节点显示不同按钮
          if (!res.data.leaf) {
            this.masterVrBtnList = res.data.buttons.filter(obj => flagsToDeleteBtn.includes(obj.uniqueFlag));
@@ -131,7 +143,7 @@
          }
          this.tableHeadDataFateher = res.data;
          this.templateOids = res.data.tableDefineVO.oid;
          let List = res.data.tableDefineVO.cols[0];
          const [List] = res.data.tableDefineVO.cols;
          List.forEach(item => {
            let columnItem = {
              label: item.title,
@@ -154,13 +166,16 @@
    //树点击事件
    async nodeClick(data) {
      try {
        console.log(data)
        this.TreeValue=data.label.split(" ")[0].trim();
        this.$emit('TreeValue',this.TreeValue)
        this.nodeClickList = data;
        this.tableHeadDataFateher=[]
        this.tableHeadFindData=[]
        this.tableHeadDataFateher = []
        this.tableHeadFindData = []
        await this.TableHeadRend(); // 先执行 TableHeadRend()
        this.TableRend(); // TableHeadRend() 方法完成后再执行 TableRend()
        this.$emit('nodeClick',this.templateOids)
        this.$emit("codeClassifyOid", this.nodeClickList.oid )
        this.$emit('nodeClick', this.templateOids)
        this.$emit("codeClassifyOid", this.nodeClickList.oid)
      } catch (error) {
        // 处理错误
        this.$message.error(error)