田源
2025-03-05 d6f94d02fd033c1c0a68fe2d4e987eb233d2afb1
Source/UBCS-WEB/src/views/docking/info.vue
@@ -2,31 +2,51 @@
  <el-container>
    <el-main>
      <basic-container>
        <avue-crud v-model="form" ref="crud" :option="option" :data="data" @on-load="onLoad" :page.sync="page"
        <avue-crud ref="crud" v-model="form" :cell-style="cellStyle" :data="data" :option="option" :page.sync="page"
                   :permission="permissionList"
                   @on-load="onLoad"
                   @search-change="searchChange"
                   @search-reset="searchReset"
                   @selection-change="selectionChange"
                   @current-change="currentChange"
                   @size-change="sizeChange"
                   @refresh-change="refreshChange" @row-click="rowClick">
                   @size-change="sizeChange" @refresh-change="refreshChange" @row-click="rowClick">
          <template slot="menu" slot-scope="{row,index}">
            <el-button icon="el-icon-edit" size="small" type="text" @click="updateSave(row,index)">编辑</el-button>
            <el-button icon="el-icon-delete" size="small" type="text" @click="deleteSave(row,index)">删除</el-button>
            <el-button v-if="row.usedflag=='false'" icon="el-icon-position" size="small" type="text" @click="ENABLE(row,index)">启用</el-button>
            <el-button v-else icon="el-icon-finished" size="small" type="text" @click="DISABLE(row,index)">停用</el-button>
            <el-button v-if="permissionList.edit" :disabled="row.usedFlag === 'true' ? false :true"
                       icon="el-icon-edit" size="small"
                       type="text"
                       @click="updateSave(row,index)">编辑
            </el-button>
            <el-button v-if="permissionList.delete" icon="el-icon-delete" size="small" type="text"
                       @click="deleteSave(row,index)">删除
            </el-button>
            <span v-if="permissionList.enable">
                       <el-button v-if="row.usedFlag=='false' || row.usedFlag==''" icon="el-icon-position" size="small"
                                  type="text" @click="ENABLE(row,index)">启用
                       </el-button>
            </span>
            <span v-if="permissionList.stop">
                      <el-button v-if="row.usedFlag !== 'false' && row.usedFlag !== ''" icon="el-icon-finished"
                                 size="small"
                                 type="text" @click="DISABLE(row, index)">停用
                      </el-button>
            </span>
          </template>
          <template slot="menuLeft">
            <el-button size="small" type="primary" icon="el-icon-plus" @click="addSave">新&nbsp;&nbsp;增
            <el-button v-if="permissionList.add" icon="el-icon-plus" size="small" type="primary"
                       @click="addSave">
              新&nbsp;&nbsp;增
            </el-button>
            <el-button size="small" icon="el-icon-share" @click="PUSH">同  步
            <el-button v-if="permissionList.sync" icon="el-icon-share" size="small" @click="PUSH">同 步
            </el-button>
            <el-button size="small" icon="el-icon-search" @click="openAdvancedQuery">查  询
            <el-button v-if="permissionList.query" icon="el-icon-search" size="small"
                       @click="openAdvancedQuery">查 询
            </el-button>
          </template>
        </avue-crud>
      </basic-container>
    </el-main>
    <infoForm ref="infoForm" @refreshTable="refreshChange" :formData="editAttribute"></infoForm>
    <infoForm ref="infoForm" :formData="editAttribute" @refreshTable="refreshChange"></infoForm>
    <!-- 高级查询对话框 -->
    <advanced-query
      :ref="advancedQueryParam.ref"
@@ -39,16 +59,20 @@
<script>
import {
  getList,add,edit,del,push,updateStatus
  getList, add, edit, del, push, updateStatus, HeaderRequest, ParmRequest
} from "@/api/docking/info";
import {getDictionary} from "@/api/omd/enum";
import infoForm from "./infoForm.vue";
import {mapGetters} from "vuex";
export default {
  name: "info",
  components:{infoForm},
  components: {infoForm},
  data() {
    return {
      //下拉总类型
      DropDownTheTotalType: [],
      //接口类型下拉
      interfaceTypeList: [{
        label: 'webService', value: 'webService'
@@ -69,6 +93,14 @@
      }, {
        label: 'Json', value: 'json'
      }],
      //内容类型
      contentTypeList: [{
        label:'application/json',value:'application/json'
      },{
        label:'application/x-www-form-urlencoded',value:'application/x-www-form-urlencoded'
      },{
        label:'multipart/form-data',value:'multipart/form-data'
      }],
      //推送类型
      pushTypeList: [{value: '1', label: '数据推送'},
        {value: '2', label: '分类推送'},
@@ -78,7 +110,7 @@
        {value: '6', label: '含规则信息的分类查询'},
        {value: '7', label: '数据查询'}],
      page: {
        pageSize: 10,
        pageSize: 20,
        currentPage: 1,
        total: 100
      },
@@ -90,70 +122,118 @@
      option: {
        height: "auto",
        calcHeight: 20,
        columnBtn: false,
        tip: false,
        headerAlign: "center",
        border: true,
        index: true,
        selection: true,
        indexFixed: false,
        selectionFixed: false,
        searchShow: false,
        refreshBtn: false,
        searchMenuSpan: 6,
        rowKey: "id",
        tabs: true,
        stripe: true,
        indexFixed: false,
        menuWidth: 180,
        highlightCurrentRow: true,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        columnBtn: false,
        column: [{
          label: '推送类型',
          prop: 'pushType',
          label: '是否启用',
          prop: 'usedFlag',
          width: 150,
          formatter: res => res.usedFlag === "true" ? "启用" : "停用"
        }, {
          label: '集成系统',
          prop: 'sysBaseName',
          sortable: true,
          width: 150
        }, {
          label: '分类选择',
          prop: 'classifyName',
          align: 'center',
          // sortable: true,
          width: 150
        }, {
          label: '编码类型',
          prop: 'isGroupCodeFlag',
          sortable: true,
          width: 150,
          formatter: res => res.isGroupCodeFlag === 'true' ? '集团码' : '企业编码'
        }, {
          label: '接口类型',
          prop: 'dataFlowTypeText',
          align: 'center',
          sortable: true,
          width: 150,
        }, {
          label: '推送类型',
          prop: 'pushTypeText',
          sortable: true,
          overHidden: true,
          align: 'center',
          width: 150,
          //pushTypeList作用域
          formatter:(d)=>{
            return this.pushTypeList[d.pushType]
          }
          // formatter: (d) => {
          //   return this.pushTypeList[d.pushType]
          // }
        }, {
          label: '系统编号',
          prop: 'id',
          sortable: true,
          hide: true,
          width: 150
        }, {
          label: '系统名称',
          prop: 'name',
          hide: true,
          sortable: true,
          width: 150
        }, {
          label: '接口函数',
          prop: 'interfaceFunction',
          sortable: true,
          label: '接口方式',
          prop: 'interfaceType',
          // sortable: true,
          width: 150
        }, {
          label: '命名空间',
          prop: 'nameSpace',
          sortable: true,
          label: '类路径',
          prop: 'classPath',
          // sortable: true,
          width: 150
        }, {
          label: 'soapAction',
          prop: 'soapAction',
          overHidden: true,
          sortable: true,
          width: 150
        }, {
          label: '参数名称',
          prop: 'targName',
          sortable: true,
          width: 150
          width: 200
        }, {
          label: '调用方式',
          prop: 'cxfaxis',
          sortable: true,
          width: 150
        }, {
          label: '请求方式',
          prop: 'requestMethod',
          align: 'center',
          // sortable: true,
          width: 150
        }, {
          label: '请求地址',
          prop: 'requestUrl',
          sortable: true,
          overHidden: true,
          width: 200
        }, {
          label: '接口函数',
          prop: 'interfaceFunction',
          sortable: true,
          align: 'center',
          width: 150
        }, {
          label: '参数名称',
          prop: 'targetName',
          sortable: true,
          width: 150
        }, {
@@ -161,7 +241,7 @@
          prop: 'paramType',
          sortable: true,
          width: 150,
          formatter: (d)=>{
          formatter: (d) => {
            return this.paramTypeList[d.paramType]
          }
        }, {
@@ -169,10 +249,23 @@
          prop: 'returnType',
          sortable: true,
          width: 150,
          formatter: (d)=>{
          formatter: (d) => {
            return this.returnTypeList[d.returnType]
          }
        }, {
          label: '命名空间',
          prop: 'nameSpace',
          sortable: true,
          width: 150
        }, {
          label: '内容类型',
          prop: 'contentType',
          sortable: true,
          width: 150,
          formatter: (d) => {
            return this.contentTypeList[d.contentType]
          }
        },{
          label: '系统描述',
          prop: 'description',
          width: 150
@@ -191,6 +284,18 @@
  created() {
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        sync: this.vaildData(this.permission.info.info_sync, false),
        add: this.vaildData(this.permission.info.info_add, false),
        query: this.vaildData(this.permission.info.info_query, false),
        edit: this.vaildData(this.permission.info.info_edit, false),
        delete: this.vaildData(this.permission.info.info_delete, false),
        enable: this.vaildData(this.permission.info.info_enable, false),
        stop: this.vaildData(this.permission.info.info_stop, false),
      }
    },
    oids() {
      let oids = [];
      this.selectionList.forEach(ele => {
@@ -199,7 +304,27 @@
      return oids.join(",");
    }
  },
  watch: {
    // editAttribute:{
    //   immediate: true,
    //   handler(newData) {
    //     this.$refs.infoForm.formData  = Object.assign({}, newData);
    //   }
    // }
  },
  methods: {
    //单元格样式
    cellStyle(row, column, rowIndex, columnIndex) {
      if (row.columnIndex == 2) {
        if (row.row.usedFlag == '' || row.row.usedFlag == 'false') {
          return {
            color: 'red',
            fontWeight: 'bold',
            fontSize: '20'
          }
        }
      }
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
@@ -212,11 +337,11 @@
    },
    selectionChange(list) {
      this.selectionList = list;
      if(this.selectionList.length <= 0){
      if (this.selectionList.length <= 0) {
        this.selectRow = null
      }
      if (this.selectionList.length > 0) {
        this.selectRow = this.selectionList[list.length-1].$index;
        this.selectRow = this.selectionList[list.length - 1].$index;
      }
    },
    selectionClear() {
@@ -235,27 +360,37 @@
    addSave() {
      this.$refs.infoForm.showSubmitDialog = true;
      this.$refs.infoForm.formData = {
        dataFlowType:'push',
        pushType:'1',
        sourceSystemName:'编码系统',
        sourceSystemOid:'code00000001',
        sourceSystemId:'CODE',
        targetSystemName:'',
        targetSystemOid:'',
        targetSystemId:'',
        sysIntParamVOs:[],
        sysIntHeaderVOs:[]
        dataFlowType: '',
        pushType: '',
        sourceSystemName: '',
        sourceSystemOid: '',
        sourceSystemId: '',
        targetSystemName: '',
        targetSystemOid: '',
        targetSystemId: '',
        sysIntParamVOs: [],
        sysIntHeaderVOs: []
      };
    },
    updateSave(row,index) {
    updateSave(row, index) {
      this.selectRow = row;
      this.editAttribute = row;
      this.editAttribute.sysIntParamVOs = row.sysIntParamVOs||[];
      this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs||[];
      this.$refs.infoForm.formData = this.editAttribute;
      this.editAttribute.sysIntParamVOs = row.sysIntParamVOs || [];
      this.editAttribute.sysIntHeaderVOs = row.sysIntHeaderVOs || [];
      this.editAttribute.type = 'edit';
      this.$refs.infoForm.formData = row;
      this.$refs.infoForm.groupCode = row.isGroupCodeFlag === 'true' ? true : false;
      this.$refs.infoForm.showSubmitDialog = true;
      //header对象
      HeaderRequest(1, -1, {'conditionMap[infoOid]': row.oid}).then(res => {
        this.$refs.infoForm.formData.sysIntHeaderVOs = res.data.data.records;
      })
      //参数对象
      ParmRequest(1, -1, {'conditionMap[infoOid]': row.oid}).then(res => {
        this.$refs.infoForm.formData.sysIntParamVOs = res.data.data.records;
      })
    },
    deleteSave(row,index) {
    deleteSave(row, index) {
      this.$confirm("删除数据将无法被恢复, 是否继续?", "提示", {
        iconClass: 'el-icon-question',
        confirmButtonText: "确定",
@@ -263,28 +398,28 @@
        showClose: true,
        type: "warning"
      }).then(() => {
        remove(row.oid).then(res => {
        del({oids: row.oid}).then(res => {
          this.$message.success("删除成功");
          this.refreshChange();
        });
      });
    },
    ENABLE(row,index){
    ENABLE(row, index) {
      //启用
      this.updateStatus(row,"enable");
      this.updateStatus(row, "enable");
    },
    DISABLE(row,index){
    DISABLE(row, index) {
      //停用
      this.updateStatus(row,"disable");
      this.updateStatus(row, "disable");
    },
    updateStatus(selectRow,able){
    updateStatus(selectRow, able) {
      var that = this;
      var paramTemp = {
        update:able,
        oid:selectRow.oid,
        ts:selectRow.ts
        update: able,
        oid: selectRow.oid,
        ts: selectRow.ts
      };
      this.$confirm("是否要"+(able == "enbale" ? "启用" : (able == "disable" ? "停用": "发布")) +"这条数据?", {
      this.$confirm("是否要" + (able == "enbale" ? "启用" : (able == "disable" ? "停用" : "发布")) + "这条数据?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
@@ -296,16 +431,16 @@
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message:(able == "enbale" ? "启用成功" : (able == "disable" ? "停用成功": "发布成功"))
            message: (able == "enbale" ? "启用成功" : (able == "disable" ? "停用成功" : "发布成功"))
          });
        });
    },
    PUSH(){
    PUSH() {
      if (this.selectionList.length != 1) {
        this.$message.warning('请选择数据')
        return false;
      }
      this.$confirm("是否要"+ (this.selectionList[0].pushType == "1" ? "推送数据" : "推送分类"), {
      this.$confirm("是否要" + (this.selectionList[0].pushType == "1" ? "推送数据" : "推送分类"), {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
@@ -325,6 +460,7 @@
    onLoad(page, params = {}) {
      this.loading = true;
      getList(this.page.currentPage, this.page.pageSize, Object.assign(params, this.query)).then(res => {
        // console.log(res)
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
@@ -337,64 +473,67 @@
      this.$refs.crud.toggleRowSelection(row); //选中当前行
    },
    /** 高级查询对话框组件,组件返回的值是condtionMap[field]形式的查询条件,保留了和之前一样的方式 */
    echoSeniorContionMap(conditionMaps){
      if(JSON.stringify(conditionMaps)!='{}'){
    echoSeniorContionMap(conditionMaps) {
      if (JSON.stringify(conditionMaps) != '{}') {
        this.query = conditionMaps;
        this.onLoad(this.page);
      } else {
        this.query = {};
        this.onLoad(this.page, this.query);
      }
    },
    openAdvancedQuery(){
        this.advancedQueryParam.options = [{
          data: this.pushTypeList,
          title: '推送类型',
          queryField: 'pushType',
          fieldType: 'combox',
          comboxKey: 'searchPushType'
        }, {
          title: '系统名称',
          queryField: 'sysBaseName',
          fieldType: 'text'
        }, {
          title: '系统编号',
          queryField: 'sysBaseId',
          fieldType: 'text'
        }, {
          title: '接口函数',
          queryField: 'interfaceFunction',
          fieldType: 'text'
        }, {
          title: '命名空间',
          queryField: 'nameSpace',
          fieldType: 'text'
        }, {
          title: 'soapAction',
          queryField: 'soapAction',
          fieldType: 'text'
        }, {
          title: '参数名称',
          queryField: 'targName',
          fieldType: 'text'
        }, {
          title: '调用方式',
          queryField: 'cxfaxis',
          fieldType: 'text'
        }, {
          title: '请求地址',
          queryField: 'requestUrl',
          fieldType: 'text'
        }, {
          title: '参数类型',
          queryField: 'paramType',
          fieldType: 'combox',
          comboxKey: 'searchparamType',
          data:this.paramTypeList
        }, {
          title: '返回值类型',
          queryField: 'returnType',
          fieldType: 'combox',
          comboxKey: 'searchreturnType',
          data:this.returnTypeList
        }]
    openAdvancedQuery() {
      this.advancedQueryParam.options = [{
        data: this.pushTypeList,
        title: '推送类型',
        queryField: 'pushType',
        fieldType: 'combox',
        comboxKey: 'searchPushType'
      }, {
        title: '系统名称',
        queryField: 'sysBaseName',
        fieldType: 'text'
      }, {
        title: '系统编号',
        queryField: 'sysBaseId',
        fieldType: 'text'
      }, {
        title: '接口函数',
        queryField: 'interfaceFunction',
        fieldType: 'text'
      }, {
        title: '命名空间',
        queryField: 'nameSpace',
        fieldType: 'text'
      }, {
        title: 'soapAction',
        queryField: 'soapAction',
        fieldType: 'text'
      }, {
        title: '参数名称',
        queryField: 'targetName',
        fieldType: 'text'
      }, {
        title: '调用方式',
        queryField: 'cxfaxis',
        fieldType: 'text'
      }, {
        title: '请求地址',
        queryField: 'requestUrl',
        fieldType: 'text'
      }, {
        title: '参数类型',
        queryField: 'paramType',
        fieldType: 'combox',
        comboxKey: 'searchparamType',
        data: this.paramTypeList
      }, {
        title: '返回值类型',
        queryField: 'returnType',
        fieldType: 'combox',
        comboxKey: 'searchreturnType',
        data: this.returnTypeList
      }]
      this.advancedQueryParam.currentOpen = 'info';
      this.advancedQueryParam.advancedQuerySettingBox = true;
@@ -403,8 +542,25 @@
}
</script>
<style lang="scss">
.applyRangeTable>.el-card:nth-of-type(2)>.el-card__body>.avue-crud__menu {
<style lang="scss" scoped>
.applyRangeTable > .el-card:nth-of-type(2) > .el-card__body > .avue-crud__menu {
  display: none !important;
}
// 滚动条样式修改
// 滚动条的宽度
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
  height: 15px; // 纵向滚动条 必写
  background: white;
  border: white;
  width: 10px;
}
// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
  background-color: #ececec;
  border-radius: 20px;
  border: #ececec;
}
</style>