田源
2023-06-16 efde1e7b47f7635cd941141154e20f82c4ce2b19
完善合并主数据
已修改6个文件
468 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/GetItem.js 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Crud/Crud.vue 419 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTree.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Tree/TemplatePro.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/MasterData/items.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/GetItem.js
@@ -1,5 +1,5 @@
import request from "@/router/axios";
//表头
export const MasterTable =(params)=>{
  return request({
    url: 'api/ubcs-code/mdmEngineController/getUIInfoByClassifyOid',
@@ -9,7 +9,7 @@
    }
  })
}
//表格
export const TableData =(params)=>{
  return request({
    url: 'api/ubcs-code/mdmEngineController/gridTableDataByClassifyOid',
@@ -19,4 +19,13 @@
    }
  })
}
//高级查询
export const FindData =(params)=>{
  return request({
    url: 'api/ubcs-code/mdmEngineController/gridTableDataByClassifyOid',
    method: 'get',
    params:{
      ...params
    }
  })
}
Source/UBCS-WEB/src/components/Crud/Crud.vue
@@ -2,152 +2,185 @@
  <basic-container>
    <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="templateOid"
            :codeClassifyOid="this.codeClassifyOid"
            :codeRuleOid="this.codeRuleOid"
            :disabledProp="disabledProp"
          >
          </FormTemplateDialog></el-button>
        <el-button size="small" type="primary" plain @click="editvisible=true">编辑
          <FormTemplateDialog
            :visible.sync="editvisible"
            :type="edit"
            :templateOid="templateOid"
            :codeClassifyOid="this.codeClassifyOid"
            :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>
        <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>
        <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 @click="huishouHandler">回收</el-button>
        <el-button size="small" type="primary" plain @click="openD">导出
          <integration-transfer :visible.sync="dialogPush" :data="transferData"
                                :props="transferProps" @save="handelTransferSave"></integration-transfer>
        <el-button plain size="small" type="primary" @click="addvisible=true">增加
        </el-button>
        <el-button size="small" type="primary" plain @click="findvisible=true">查询
        <advanced-query  :visible.sync="findvisible" :options="this.options"></advanced-query>
        <FormTemplateDialog
          :codeClassifyOid="this.codeClassifyOid"
          :codeRuleOid="this.codeRuleOid"
          :disabledProp="disabledProp"
          :templateOid="templateOid"
          :type="add"
          :visible.sync="addvisible"
        >
        </FormTemplateDialog>
        <el-button plain size="small" type="primary" @click="editHandler">编辑
        </el-button>
        <el-button size="small" type="primary" plain>相似项查询</el-button>
        <el-button size="small" type="primary" plain style="margin-left: 1px;margin-top:10px">刷新</el-button>
        <el-input placeholder="请输入关键字按回车查询" style="width: 180px;margin-left: 5px;margin-top:10px" size="small"></el-input>
        <FormTemplateDialog
          :codeClassifyOid="this.codeClassifyOid"
          :codeRuleOid="this.codeRuleOid"
          :disabledProp="disabledProp"
          :rowOid="rowOid"
          :templateOid="templateOid"
          :type="edit"
          :title="'修改编码信息'"
          :visible.sync="editvisible"
        ></FormTemplateDialog>
        <el-button plain size="small" type="primary">批量导入申请</el-button>
        <el-button plain size="small" type="primary">历史数据导入</el-button>
        <el-button plain size="small" type="primary">批量申请编码</el-button>
        <el-button plain size="small" type="primary">批量发布</el-button>
        <el-button plain size="small" type="primary">查看流程历史</el-button>
        <el-button plain size="small" type="primary">删除</el-button>
        <el-button plain size="small" type="primary" @click="setHandler">发布</el-button>
        <set-personnel :visible.sync="visibleFlow"  :parameter="parameter"
                       type="PUBLIC"></set-personnel>
        <el-button plain size="small" type="primary" @click="DataChange">数据更改</el-button>
        <FormTemplateDialog
          :codeClassifyOid="this.codeClassifyOid"
          :codeRuleOid="this.codeRuleOid"
          :disabledProp="disabledProp"
          :rowOid="rowOid"
          :templateOid="templateOid"
          :type="edit"
          :title="'已发布数据更改'"
          :visible.sync="DataVisible"
        ></FormTemplateDialog>
        <el-button plain size="small" type="primary" @click="huishouHandler">回收</el-button>
        <el-button plain size="small" type="primary" @click="openD">导出
          <integration-transfer :data="transferData" :props="transferProps"
                                :visible.sync="dialogPush" @save="handelTransferSave"></integration-transfer>
        </el-button>
        <el-button plain size="small" type="primary" @click="findHandler">查询
          <advanced-query :options="this.options" :visible.sync="findvisible"
                          @echoContion="echoContion"></advanced-query>
        </el-button>
        <el-button plain size="small" type="primary">相似项查询</el-button>
        <el-button plain size="small" style="margin-left: 1px;margin-top:10px" type="primary">刷新</el-button>
        <el-input placeholder="请输入关键字按回车查询" size="small"
                  style="width: 180px;margin-left: 5px;margin-top:10px"></el-input>
      </div>
      <el-row style="height: 700px;width: 100%">
        <el-table :data="tableData" style="" @cell-click="handleCellClick" max-height="700"  v-loading="isLoading"  @selection-change="handleSelectionChange"  @sort-change="sortChange">
        <el-table v-loading="isLoading" :data="tableData" max-height="700" style="" @cell-click="handleCellClick"
                  @selection-change="handleSelectionChange" @sort-change="sortChange">
          <el-table-column
            type="selection"
            fixed
            type="selection"
            width="55">
          </el-table-column>
          <el-table-column
            type="index"
            fixed
            label="序号"
            type="index"
            width="55">
          </el-table-column>
          <div v-for="(item,index) in this.tableHeadData" :key="index">
            <el-table-column :label="item.label" :prop="item.prop" :sortable="item.sortable" :width="item.width">
<!--          <div>-->
            <el-table-column  v-for="(item,index) in this.tableHeadFindData" :key="item.id" :label="item.label" :prop="item.prop" :sortable="item.sortable" >
              <!-- 编辑和展示逻辑 -->
              <template slot-scope="{ row }">
                <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>
                <span v-else>{{row[item.prop]}}</span>
                <el-switch
                  v-if="editShow === 'true'"
                  v-model="row[item.prop]"
                  active-color="#13ce66"
                  inactive-color="#ff4949">
                </el-switch>
              </template>
              <!--              <template slot-scope="{ row }">-->
              <!--                <el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>-->
              <!--                <span v-else>{{row[item.prop]}}</span>-->
              <!--                <el-switch-->
              <!--                  v-if="editShow === 'true'"-->
              <!--                  v-model="row[item.prop]"-->
              <!--                  active-color="#13ce66"-->
              <!--                  inactive-color="#ff4949">-->
              <!--                </el-switch>-->
              <!--              </template>-->
            </el-table-column>
          </div>
<!--          </div>-->
        </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="page.currentPage"
        :page-sizes="page.pageSizes"
        :page-size="page.pageSizes"
        :page-sizes="page.pageSizes"
        :total="page.total"
        layout="total, sizes, prev, pager, next, jumper"
        :total="page.total">
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange">
      </el-pagination>
    </div>
  </basic-container>
</template>
<script>
import {MasterTable, TableData} from "@/api/GetItem";
import {MasterTable, TableData,FindData} from "@/api/GetItem";
import {listCodeAttributeByClassId} from '@/api/integration/integration.js'
import integrationTransfer from '@/views/integration/integrationTransfer'
import pinyin from "js-pinyin";
import SetPersonnel from '@/components/template/SetPersonnel'
export default {
  components: {
    integrationTransfer
    integrationTransfer,
    SetPersonnel
  },
  name: "Crud.vue",
  props:{
    page:{
  props: {
    page: {
      type: Object,
      default: ()=>{
      default: () => {
        return {}
      }
    },
    codeClassifyOid:{
      type:String,
      default:""
    codeClassifyOid: {
      type: String,
      default: ""
    },
    coderuleoid:{
      type:String,
      default:""
    coderuleoid: {
      type: String,
      default: ""
    },
    tableDataArray:{
    tableDataArray: {
      type: Array,
    },
    total: {
      type: String,
      default: ""
    },
    templateOid: {
      type: String,
    },
    tableHeadDataFateher: {
      type: Array,
    },
    isLoading: {
      type: Boolean,
      default: false
    },
    tableHeadFindData:{
      type:Array,
    },
    total:{
      type:String,
      default:""
    },
    templateOid:{
      type:String,
    },
    tableHeadDataFateher:{
      type:Array,
    },
    isLoading:{
      type:Boolean,
      default:false
    }
  },
  data() {
    return {
      transferData:[],
      //发布
      parameter:{
        ids:['0000','22222222'],
        code:'8b5e2017-990f-454a-9c39-4c4eeeb57553',
        type:'PUBLIC',
        name:'模板name',
        template:'模板template'
      },
      visibleFlow: false,
      transferData: [],
      transferProps: {
        key: 'oid',
        label: 'name'
      },
      templateOid:"",
      addvisible:false,
      editvisible:false,
      findvisible:false,
      dialogPush:false,
      rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9',
      tableHeadFindDatas:[],
      templateOid: "",
      addvisible: false,
      editvisible: false,
      findvisible: false,
      dialogPush: false,
      rowOid: '',
      disabledProp: ["id"],
      editingRow:null,
      editingRow: null,
      editShow: "",
      editAttr:"",
      editAttr: "",
      data: [],
      options:[],
      options: {},
      option: {
        column: []
      },
@@ -159,14 +192,15 @@
        number: "number",
        datetime: "datetime",
      },
      tableData:[],
      tableHeadData:[],
      items:{},
      seniorQueryColumns:[]
      tableData: [],
      DataVisible:false,
      tableHeadData: [],
      items: {},
      seniorQueryColumns: [],
      selectRow: []
    }
  },
  computed:{
  },
  computed: {},
  created() {
    // this.CrudHeaderRend();
    // this.tableHeadHandle()
@@ -177,79 +211,93 @@
  activated() {
    this.doLayout()
  },
  watch:{
    codeClassifyOid:{
      handler(newval,oldval){
        this.codeClassifyOid=newval;
  watch: {
    codeClassifyOid: {
      handler(newval, oldval) {
        this.codeClassifyOid = newval;
        this.CrudHeaderRend()
      },
      deep:true
      deep: true
    },
    tableDataArray:{
      handler(newval,oldval){
        this.tableData=newval;
      //
    tableDataArray: {
      handler(newval, oldval) {
        this.tableData = newval;
      }
    },
    total:{
      handler(newval,oldval){
        this.page.total=newval;
    tableHeadFindData:{
      handler(newval, oldval) {
        this.tableHeadFindDatas = newval;
      }
    },
    tableHeadDataFateher:{
      handler(newval,oldval){
        let List=newval.tableDefineVO.cols[0];
        List.forEach(item=>{
          let columnItem = {
            label: item.title,
            prop: item.field,
            type: this.columnType[item.type],
            sortable: item.sort,
            width: item.minWidth
          };
          this.option.column.push(columnItem);
          this.option.column=this.tableHeadData;
        })
    total: {
      handler(newval, oldval) {
        this.page.total = newval;
      }
    }
    },
    // tableHeadDataFateher: {
    //   handler(newval, oldval) {
    //     let List = newval.tableDefineVO.cols[0];
    //     List.forEach(item => {
    //       let columnItem = {
    //         label: item.title,
    //         prop: item.field,
    //         type: this.columnType[item.type],
    //         sortable: item.sort,
    //         width: item.minWidth
    //       };
    //       this.tableHeadData.push(columnItem);
    //       console.log('table',this.tableHeadData)
    //     })
    //   }
    // }
  },
  methods: {
    huishouHandler(){
      console.log('tem',this.templateOid)
      console.log('table',this.tableData)
      console.log('tabheadle',this.tableHeadData)
      console.log('tableFather',this.tableHeadDataFateher)
    setHandler() {
      this.visibleFlow = true
    },
    openD(){
      this.dialogPush=true;
    huishouHandler() {
      console.log('tem', this.templateOid)
      console.log('table', this.tableData)
      console.log('tabheadle', this.tableHeadData)
      console.log('tableFather', this.tableHeadDataFateher)
    },
    openD() {
      this.dialogPush = true;
      this.getListCodeByClassId()
    },
    async getListCodeByClassId() {
      this.transferData = []
      const response = await listCodeAttributeByClassId({ codeClassifyId: this.codeClassifyOid })
      const response = await listCodeAttributeByClassId({codeClassifyId: this.codeClassifyOid})
      if (response.status === 200) {
        const data = response.data.data
        this.transferData = data
      }
    },
    rend(){
      this.tableData=this.tableHeadData
    rend() {
      this.tableData = this.tableHeadData
    },
    handleSizeChange(val){
      this.page.pageSize=val
      this.$emit('pageSize',val)
      this.CrudRend()
    handleSizeChange(val) {
      this.isLoading = true;
      setTimeout(() => {
        this.page.pageSize = val
        this.$emit('pageSize', val)
        this.CrudRend()
      }, 3000);
    },
    handleCurrentChange(val){
      this.page.currentPage=val
      this.$emit('currentPage',val)
      this.CrudRend()
    handleCurrentChange(val) {
      this.isLoading = true;
      setTimeout(() => {
        this.page.currentPage = val
        this.$emit('currentPage', val)
        this.CrudRend()
      }, 3000);
    },
    // 监听单元格点击事件并存储正在编辑的行
    handleCellClick(row, column) {
      this.editingRow = row;
      this.editShow = column.property;
      this.rowOid=row.oid
      this.rowOid = row.oid
    },
    //删除
    enumDeleteRow(row) {
@@ -264,8 +312,8 @@
        this.$refs.crud.doLayout();
      });
    },
    tableHeadHandle(){
      this.options=this.tableHeadDataFateher.tableDefineVO.seniorQueryColumns
    tableHeadHandle() {
      this.options = this.tableHeadDataFateher.tableDefineVO.seniorQueryColumns
      this.List = this.tableHeadDataFateher.tableDefineVO.cols[0];
      this.List.forEach(item => {
        let columnItem = {
@@ -276,17 +324,17 @@
          width: item.minWidth
        };
        this.option.column.push(columnItem);
        this.option.column=this.tableHeadData;
        this.option.column = this.tableHeadData;
      })
    },
    //表格头渲染
    CrudHeaderRend() {
      if(this.codeClassifyOid != ""){
      if (this.codeClassifyOid != "") {
        MasterTable({
          codeClassifyOid:this.codeClassifyOid,
          codeClassifyOid: this.codeClassifyOid,
          functionId: 5,
        }).then(res => {
          this.options=res.data.tableDefineVO.seniorQueryColumns
          this.options = res.data.tableDefineVO.seniorQueryColumns
          this.List = res.data.tableDefineVO.cols[0];
          this.List.forEach(item => {
            let columnItem = {
@@ -297,25 +345,25 @@
              width: item.minWidth
            };
            this.option.column.push(columnItem);
            this.option.column=this.tableHeadData;
            this.templateOid=res.data.tableDefineVO.oid
            this.$emit('templateOid',this.templateOid)
            this.option.column = this.tableHeadData;
            this.templateOid = res.data.tableDefineVO.oid
            this.$emit('templateOid', this.templateOid)
          })
        })
      }
    },
    //表格数据
    CrudRend() {
       TableData({
         templateOid: this.templateOid,
         codeClassifyOid: this.codeClassifyOid,
         page: this.page.currentPage,
         limit: this.page.pageSize,
       }).then(res => {
         this.page.total = res.data.total;
         this.data = res.data.data;
         this.tableData=res.data.data;
       })
      TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        page: this.page.currentPage,
        limit: this.page.pageSize,
      }).then(res => {
        this.page.total = res.data.total;
        this.data = res.data.data;
        this.tableData = res.data.data;
      })
    },
    // 排序
    sortChange(val) {
@@ -342,6 +390,7 @@
    },
    //分页刷新
    async onLoad(val) {
      console.log('分页', this.templateOid)
      await TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
@@ -354,6 +403,46 @@
    //多选
    handleSelectionChange(row) {
      console.log(row)
      this.rowOid = row.oid
      this.selectRow = row
    },
    //编辑
    editHandler() {
      if (this.selectRow.length <= 0) {
        this.$message.warning('请选择一条数据')
      } else if (this.selectRow.length > 1) {
        this.$message.warning('只能选择一条数据')
      } else if (this.selectRow[0].lcstatus != 'Editing') {
        this.$message.warning('编码状态不是“编辑中”,不可编辑')
      } else {
        this.editvisible = true
      }
    },
    //高级查询按钮
    findHandler(){
      this.findvisible=true
    },
    // 高级查询
    echoContion(val) {
      console.log(val)
      FindData({templateOid:this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        ...val
      }).then(res=>{
        console.log(res)
      })
    },
    //数据更改
    DataChange(){
      if (this.selectRow.length <= 0) {
        this.$message.warning('请选择一条数据')
      } else if (this.selectRow.length > 1) {
        this.$message.warning('只能选择一条数据')
      } else if (this.selectRow[0].lcstatus != 'Released') {
        this.$message.warning('只有状态为已发布的数据才能进行数据更改')
      } else {
        this.DataVisible = true
      }
    }
  }
}
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -29,6 +29,7 @@
  },
  data(){
    return{
      tableHeadFindData:[],
      tableHeadDataFateher:[],
      templateOids:"",
      tableDataArray:[],
@@ -80,7 +81,6 @@
        this.ModifyProperties(this.Treedata, 'text', 'label');
        this.codeClassifyOid=res.data[0].oid;
        this.coderuleoid=res.data[0].attributes.coderuleoid;
        this.$emit("codeClassifyOid", this.codeClassifyOid )
        this.$emit("coderuleoid", this.coderuleoid )
      }).catch(res=>{
        console.log(res)
@@ -122,7 +122,19 @@
        }).then(res => {
          this.tableHeadDataFateher = res.data;
          this.templateOids = res.data.tableDefineVO.oid;
          let List = res.data.tableDefineVO.cols[0];
          List.forEach(item => {
            let columnItem = {
              label: item.title,
              prop: item.field,
              // type: this.columnType[item.type],
              sortable: item.sort,
              width: item.minWidth
            };
         this.tableHeadFindData.push(columnItem)
          })
          this.$emit('tableHeadDataFateher', this.tableHeadDataFateher);
          this.$emit('tableHeadFindData', this.tableHeadFindData);
          resolve();
        }).catch(err=>{
          reject(err)
@@ -136,7 +148,10 @@
        await this.TableHeadRend(); // 先执行 TableHeadRend()
        this.TableRend(); // TableHeadRend() 方法完成后再执行 TableRend()
        this.$emit('nodeClick',this.templateOids)
        console.log(this.templateOids)
        this.$emit("codeClassifyOid", this.nodeClickList.oid )
        console.log('元数据',this.templateOids)
        console.log('元数据cod',this.codeClassifyOid)
        console.log('元数据nodeclick', this.nodeClickList.oid)
      } catch (error) {
        // 处理错误
        this.$message.error(error)
Source/UBCS-WEB/src/components/Tree/TemplatePro.vue
@@ -5,11 +5,11 @@
      <attrCrud :ProData="ProData" :crudOid="crudOid" :crudArray="crudArray" :Formlist="Formlist" :codeClassifyOid="codeClassifyOid"></attrCrud>
    </span>
    <span v-else-if="type.prop==='tab2'">
       <FlowPath :code="this.codeClassifyOid"></FlowPath>
       <FlowPath :code="this.crudOid"></FlowPath>
    </span>
    <span v-else-if="type.prop==='tab3'">
          <stage  :code="this.codeClassifyOid"></stage>
          <stage  :code="this.crudOid"></stage>
    </span>
  </basic-container>
Source/UBCS-WEB/src/views/MasterData/items.vue
@@ -11,6 +11,7 @@
                       @tableHeadDataFateher="tableHeadDatas"
                       @total="totals"
                       @nodeClick="nodeClick"
                       @tableHeadFindData="tableHeadFindDatas"
                        ></master-tree>
        </basic-container>
      </el-aside>
@@ -26,6 +27,7 @@
                 :tableHeadDataFateher="this.tableHeadDataFateher"
                 :isLoading="isLoading"
                 :templateOid="templateOid"
                 :tableHeadFindData="tableHeadFindData"
      ></TableCrud>
      </el-main>
    </el-container>
@@ -52,7 +54,7 @@
      tableHeadDataFateher:[],
      total:"",
      isLoading: false,
      tableHeadFindData:{}
    }
  },
  created() {
@@ -80,6 +82,9 @@
    tableHeadDatas(val){
      this.tableHeadDataFateher=val
    },
    tableHeadFindDatas(val){
      this.tableHeadFindData=val
    },
    nodeClick(val){
      this.templateOid=val;
      console.log('val',val)
Source/UBCS-WEB/vue.config.js
@@ -26,10 +26,10 @@
    proxy: {
      '/api': {
        //本地服务接口地址
        target: 'http://localhost:37000',
        // target: 'http://localhost:37000',
        // target: 'http://localhost:37000',
        // target: 'http://192.168.1.51:37000',
        // target: 'http://192.168.1.46:37000',
        target: 'http://192.168.1.46:37000',
        // target: 'http://dev.vci-tech.com:37000',
        // target: 'http://192.168.1.51:37000/',
          // target: 'http://192.168.1.104:37000',