田源
2023-06-06 9405101d4700f4273dcf66442e380733dc33db26
分类树联调
已修改4个文件
已添加1个文件
352 ■■■■ 文件已修改
Source/UBCS-WEB/src/api/MasterData/master.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/Crud.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/items.vue 221 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/MasterData/master.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
import request from "@/router/axios";
//获取树形组件数据
export const getTreeList = (params) => {
  return request({
    url: '/api/ubcs-code/codeClassify/referTree',
    method: 'get',
    params:{
      ...params
    }
  })
}
Source/UBCS-WEB/src/components/Crud/Crud.vue
@@ -1,45 +1,28 @@
<template>
  <basic-container>
<!--    <avue-crud ref="crud"-->
<!--               v-loading="loading"-->
<!--               :data="data"-->
<!--               :option="option"-->
<!--               :page="page"-->
<!--               @sort-change="sortChange"-->
<!--               @selection-change="selectionChange"-->
<!--               @on-load="onLoad">-->
<!--      <template slot="menu">-->
<!--        <el-button type="text">文字按钮</el-button>-->
<!--      </template>-->
<!--      <template slot="menuLeft">-->
<!--      </template>-->
<!--    </avue-crud>-->
    <div class="testbox">
      <div style="margin-top: 10px;display: flex;flex-wrap: wrap;width: 100%;">
        <el-button size="small" type="primary" plain @click="addvisible=true">增加
          <FormTemplateDialog
            :visible.sync="addvisible"
            :type="add"
            :templateOid="this.templateOid"
            :codeClassifyOid="this.codeClassifyOid"
            :templateOid="this.templateOids"
            :codeClassifyOid="this.codeClassifyOids"
            :codeRuleOid="this.codeRuleOid"
            :disabledProp="disabledProp"
            :rowOid="rowOid"
          >
          </FormTemplateDialog></el-button>
        <el-button size="small" type="primary" plain @click="editvisible=true">编辑
          <FormTemplateDialog
            :visible.sync="editvisible"
            :type="edit"
            :templateOid="this.templateOid"
            :codeClassifyOid="this.codeClassifyOid"
            :templateOid="this.templateOids"
            :codeClassifyOid="this.codeClassifyOids"
            :codeRuleOid="this.codeRuleOid"
            :disabledProp="disabledProp"
            :rowOid="rowOid"
          ></FormTemplateDialog></el-button>
        <el-button size="small" type="primary" plain>批量导入申请</el-button>
        <el-button size="small" type="primary" plain>历史数据导入</el-button>
        <el-button size="small" type="primary" plain>批量申请编码</el-button>
@@ -87,22 +70,14 @@
              </template>
            </el-table-column>
          </div>
<!--          <el-table-column fixed="right" label="操作" width="120" >-->
<!--            <template slot-scope="scope" >-->
<!--              <el-button size="small" type="text" @click.native.prevent="enumDeleteRow(scope.$index, tableData)">-->
<!--                ç§»é™¤-->
<!--              </el-button>-->
<!--            </template>-->
<!--          </el-table-column>-->
        </el-table>
      </el-row>
    </div>
    <div class="block" style="display: flex;justify-content: flex-end">
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage4"
        :current-page="page.currentPage"
        :page-sizes="page.pageSizes"
        :page-size="page.pageSizes"
        layout="total, sizes, prev, pager, next, jumper"
@@ -111,18 +86,33 @@
    </div>
  </basic-container>
</template>
<script>
import {MasterTable, TableData} from "@/api/GetItem";
export default {
  name: "Crud.vue",
  props:{
    page:{
      type: Object,
      default: ()=>{
        return {}
      }
    },
    templateOid:{
      type:String,
      default:""
    },
    codeClassifyOid:{
      type:String,
      default:""
    }
  },
  data() {
    return {
      addvisible:false,
      editvisible:false,
      findvisible:false,
      templateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A",
      codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
      templateOids: "78B8C7C5-A042-0B96-FE6D-65421451782A",
      codeClassifyOids: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
      codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96",
      rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9',
      disabledProp: ["id"],
@@ -133,14 +123,6 @@
      data: [],
      options:{},
      option: {
        //默认高度,
        align: 'center',
        menuAlign: 'center',
        addBtn: false,
        editBtn: false,
        selection: true,
        selectionFixed: false,
        index: true,
        column: []
      },
      List: [],
@@ -150,12 +132,6 @@
        truefalse: "switch",
        number: "number",
        datetime: "datetime",
      },
      page: {
        total: 0,
        currentPage: 1,
        pageSize: 10,
        pageSizes: [10, 30, 50, 100, 200],
      },
      tableData:[],
      tableHeadData:[],
@@ -174,7 +150,12 @@
  },
  methods: {
    handleSizeChange(val){
      console.log(val)
      this.page.pageSize=val
      this.CrudRend()
    },
    handleCurrentChange(val){
      this.page.currentPage=val
      this.CrudRend()
    },
    // ç›‘听单元格点击事件并存储正在编辑的行
    handleCellClick(row, column) {
@@ -220,11 +201,10 @@
    //表格数据
    CrudRend() {
      TableData({
        templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F",
        codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        page: this.page.currentPage,
        limit:9,
        _: 1685089123575
        limit:this.page.pageSize,
      }).then(res => {
        this.page.total = res.data.total;
        this.data = res.data.data;
@@ -241,8 +221,8 @@
        order = "desc";
      }
      TableData({
        templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F",
        codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        order: order,
        sort: val.prop,
        page: this.page.currentPage,
@@ -257,11 +237,10 @@
    //分页刷新
    async onLoad(val) {
      await TableData({
        templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F",
        codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        page: val.currentPage,
        limit: val.pageSize,
        _: 1685089123575
      }).then(res => {
        this.data = res.data.data;
      })
Source/UBCS-WEB/src/components/Tree/classifyTrees.vue
@@ -187,7 +187,6 @@
  TreeObjcet,
  TreeEnable,
  TreeDeactivate,
  importClassify,
  gridCodeClassifyTemplate,
  getObjectByOid,
  gridCodeClassifyTemplateAttr,
@@ -197,7 +196,6 @@
  editSave,
  copy
} from "@/api/template/templateAttr";
import done from "@/views/work/done";
export default {
  name: "classifyTrees.vue",
@@ -406,7 +404,7 @@
      getAtrrList().then(res => {
        this.Treedata = res.data;
        this.CloneTreedata = res.data;
        this.Treedata.forEach((item) => {
        this.Treedata.forEach(() => {
          for (let i = 0; i < this.Treedata.length; i++) {
            this.Treedata[i].value = i;
          }
@@ -546,7 +544,7 @@
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          TreeEnable(this.nodeClickList).then((res) => {
          TreeEnable(this.nodeClickList).then(() => {
            this.$message({
              type: 'success',
              message: '启用成功!'
@@ -574,7 +572,7 @@
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          TreeDeactivate(this.nodeClickList).then((res) => {
          TreeDeactivate(this.nodeClickList).then(() => {
            this.$message({
              type: 'success',
              message: '停用成功!'
@@ -722,7 +720,7 @@
      } else {
        let codeClassifyOid = this.codeClassifyOid
        this.$set(row, "codeclassifyoid", codeClassifyOid)
        addSave(row).then(res => {
        addSave(row).then(() => {
          this.$message({
            type: "success",
            message: "添加成功!"
@@ -739,7 +737,7 @@
    },
    //模板管理修改
    CrudRowUpdata(row,index,done) {
      editSave(row).then((res) => {
      editSave(row).then(() => {
        this.CrudRend()
        this.$message({
          type: "success",
@@ -752,7 +750,7 @@
    },
    //模板管理删除
    CrudRowDel(row) {
      deleteData(row).then(res => {
      deleteData(row).then(()=> {
        this.CrudRend()
      }).catch(res => {
        this.$message({
@@ -830,7 +828,7 @@
      //重新赋值CloneSelect传递的数据为输入框可以修改的数据,CloneModel提交表单输入框双向绑定数据
      this.CloneSelect[0].id=this.CloneModel.id;
      this.CloneSelect[0].name=this.CloneModel.name;
      copy(this.CloneSelect[0]).then(res=>{
      copy(this.CloneSelect[0]).then(()=>{
        //因为是嵌套弹窗所以手动关闭CloneinnerVisible,CloneVisible两个弹窗。
        this.CloneinnerVisible=false
        this.CloneVisible=false
Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -2,61 +2,76 @@
    <el-container>
      <el-aside>
        <basic-container style="height: 85vh; max-height: 155vh; overflow-y: scroll;">
          <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="CloneTreedata" :defaultExpandAll="false"
          <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false"
                     :option="Treeoption"
                     style="height: 80.5vh;padding-top: 5px;padding-bottom: 30px"
                     @node-click=" nodeClick"
                     @check-change="checkChange"
          ></avue-tree>
        </basic-container>
      </el-aside>
      <el-main>
      <TableCrud></TableCrud>
      <TableCrud :page="this.page" :templateOid="this.templateOid" :codeClassifyOid="this.codeClassifyOid"></TableCrud>
      </el-main>
    </el-container>
</template>
<script>
import {getAtrrList, TreeCheckDel, TreeDel, TreeSave} from "@/api/template/templateAttr";
import {getTreeList} from "@/api/MasterData/master"
export default {
  name: "items.vue",
  data(){
    return{
      // åˆ†é¡µ
      page: {
        total: 0,
        currentPage: 1,
        pageSize: 10,
        pageSizes: [10, 30, 50, 100, 200],
      },
      templateOid: "A12826E4-2B66-6D56-DE30-92BB1D7F607F",
      codeClassifyOid: "D9CF223F-317D-71EB-BD11-433A94CAD9F3",
      CloneTreeAvueform:{},
      loading:false,
      CloneTreedata:[],
      Treedata:[],
      Treeoption: {
        addBtn: false,
        editBtn: false,
        delBtn: false,
        defaultExpandAll: false,
        menu: false,
        // //这个是多选
        // multiple: true,
        lazy: true,
        // treeLoad:function (node,resolve){
        //   console.log(node)
        //   console.log(resolve)
        // }
        treeLoad:function (node, resolve){
          if(node.loading){
            const parentId = (node.level === 0) ? 0 : node.data.oid;
            const parentBtmName = node.data.attributes.btmname
            getTreeList({parentOid:parentId,parentBtmName:parentBtmName}).then(res=>{
              console.log(res)
            })
          }
        },
      },
      nodeClickList: "",
    }
  },
  created() {
    this.getAttr()
    // this.getAttr()
    this.getTreeList()
  },
  methods:{
    getAttr() {
      getAtrrList().then(res => {
        this.Treedata = res.data;
        this.CloneTreedata = res.data;
        this.Treedata.forEach((item) => {
          for (let i = 0; i < this.Treedata.length; i++) {
            this.Treedata[i].value = i;
          }
        })
        //调用修改属性名方法
        this.ModifyProperties(this.CloneTreedata, 'name', 'label');
      }).catch(res => {
        this.$message.error(res)
    getTreeList(){
      getTreeList({'conditionMap[id]': 'wupin'}).then(res=>{
        this.Treedata=res.data
        this.ModifyProperties(this.Treedata, 'text', 'label');
        console.log(this.Treedata)
      }).catch(res=>{
        console.log(res)
      })
    },
    //定义一个修改数据属性名的方法
    ModifyProperties(obj, oldName, newName) {
      for (let key in obj) {
@@ -70,88 +85,88 @@
      }
    },
    //树节点添加按钮
    TreeAdd() {
      this.TreeAddFormVisible = true;
      // åˆ¤æ–­å½“前是否有点击子项
      if (this.nodeClickList !== "") {
        this.TreeFlag = true
      }
    },
    //树节点添加事件
    TreeAddHandler() {
      const data = this.TreeAddform
      this.$set(data, "parentCodeClassifyOid", this.nodeClickList.oid)
      TreeSave(data).then(() => {
        this.$message({
          type: 'success',
          message: '添加成功!'
        });
        this.getAttr();
        this.TreeAddFormVisible = false
        this.TreeAddform = ""
      }).catch(res => {
        this.$message({
          type: 'warning',
          message: res
        });
      })
    },
    // TreeAdd() {
    //   this.TreeAddFormVisible = true;
    //   // åˆ¤æ–­å½“前是否有点击子项
    //   if (this.nodeClickList !== "") {
    //     this.TreeFlag = true
    //   }
    // },
    // //树节点添加事件
    // TreeAddHandler() {
    //   const data = this.TreeAddform
    //   this.$set(data, "parentCodeClassifyOid", this.nodeClickList.oid)
    //   TreeSave(data).then(() => {
    //     this.$message({
    //       type: 'success',
    //       message: '添加成功!'
    //     });
    //     this.getAttr();
    //     this.TreeAddFormVisible = false
    //     this.TreeAddform = ""
    //   }).catch(res => {
    //     this.$message({
    //       type: 'warning',
    //       message: res
    //     });
    //   })
    // },
    //树节点删除按钮
    TreeDel() {
      this.$confirm('是否删除当前选择的分类,将会把子分类一并删除,如果存在编码数据将不能被删除,是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
        customClass: 'my-messagebox',
      }).then(() => {
        TreeCheckDel(this.nodeClickList).then(res => {
          if (res.data.data) {
            TreeDel(this.nodeClickList).then(() => {
              this.$message({
                type: 'success',
                message: '删除成功!'
              });
              this.getAttr();
            }).catch(res => {
              this.$message({
                type: 'warning',
                message: res
              });
            })
          } else {
            this.$confirm('当前数据包含有下级数据,要删除的话会和下级数据一起删除,你确认继续?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning',
              customClass: 'my-messageboxs',
            }).then(() => {
              TreeDel(this.nodeClickList).then(() => {
                this.$message({
                  type: 'success',
                  message: '删除成功!'
                });
                this.getAttr();
              }).catch(res => {
                this.$message({
                  type: 'warning',
                  message: res
                });
              })
            }).catch(() => {
              this.$message({
                type: 'info',
                message: '已取消删除'
              });
            });
          }
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        });
      });
    },
    // TreeDel() {
    //   this.$confirm('是否删除当前选择的分类,将会把子分类一并删除,如果存在编码数据将不能被删除,是否继续?', '提示', {
    //     confirmButtonText: '确定',
    //     cancelButtonText: '取消',
    //     type: 'warning',
    //     customClass: 'my-messagebox',
    //   }).then(() => {
    //     TreeCheckDel(this.nodeClickList).then(res => {
    //       if (res.data.data) {
    //         TreeDel(this.nodeClickList).then(() => {
    //           this.$message({
    //             type: 'success',
    //             message: '删除成功!'
    //           });
    //           this.getAttr();
    //         }).catch(res => {
    //           this.$message({
    //             type: 'warning',
    //             message: res
    //           });
    //         })
    //       } else {
    //         this.$confirm('当前数据包含有下级数据,要删除的话会和下级数据一起删除,你确认继续?', '提示', {
    //           confirmButtonText: '确定',
    //           cancelButtonText: '取消',
    //           type: 'warning',
    //           customClass: 'my-messageboxs',
    //         }).then(() => {
    //           TreeDel(this.nodeClickList).then(() => {
    //             this.$message({
    //               type: 'success',
    //               message: '删除成功!'
    //             });
    //             this.getAttr();
    //           }).catch(res => {
    //             this.$message({
    //               type: 'warning',
    //               message: res
    //             });
    //           })
    //         }).catch(() => {
    //           this.$message({
    //             type: 'info',
    //             message: '已取消删除'
    //           });
    //         });
    //       }
    //     })
    //   }).catch(() => {
    //     this.$message({
    //       type: 'info',
    //       message: '已取消删除'
    //     });
    //   });
    // },
    nodeClick(data){
      this.nodeClickList = data
      console.log(data)
Source/UBCS-WEB/vue.config.js
@@ -26,12 +26,17 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://localhost:37000',
        // target: 'http://192.168.1.63:37000',
        // target: 'http://localhost:37000',
        //  target: 'http://localhost:37000',
        // target: 'http://192.168.1.51:37000',
        //target: 'http://192.168.3.7:37000',
        // target: 'http://dev.vci-tech.com:37000',
        //target: 'http://dev.vci-tech.com:37000',
        // target: 'http://192.168.1.51:37000/',
        //   target: 'http://localhost:37000',
        // target: 'http://192.168.1.63:37000',
        //target: 'http://192.168.3.7:37000',
        target: 'http://dev.vci-tech.com:37000',
        //target: 'http://192.168.1.51:37000/',
        //远程演示服务地址,可用于直接启动项目
        // target: 'https://saber.bladex.vip/api',
        ws: true,