田源
2023-08-03 228e511cd5916e061da5476fa73bc6791f30d73e
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -17,7 +17,16 @@
              </el-button>
              <el-input v-model="WupinFindValue" placeholder="请输入关键字按回车查询"
                        size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
                        @keyup.enter.native="tableFindInp"  v-if="tableData.length != 0"></el-input>
                        @keyup.enter.native="tableFindInp"  v-if="tableHeadFindData.length > 0"></el-input>
              <span style="margin-left: 10px" v-if="tableHeadFindData.length > 0">
               <p style="font-size: 13px;display: inline-block;"> 状态:</p>
                <el-select v-model="statusSelect" slot="prepend" placeholder="请选择" size="small" @change="cellSelectHandler">
                <el-option label="全部" value="all"></el-option>
                <el-option label="已发布" value="Released"></el-option>
                <el-option label="编辑中" value="Editing"></el-option>
                <el-option label="已停用" value="Disabled"></el-option>
                <el-option label="审核中" value="Auditing"></el-option>
              </el-select></span>
            </div>
            <el-table  ref="dataTable" v-loading="isLoading" :data="tableData"
                      :height="tableHeight"
@@ -31,7 +40,7 @@
                               :label="item.label"
                               :prop="item.prop" :show-overflow-tooltip="true"
                               :sortable="item.sortable"
                               :width="item.label.length >= 4 ? '150' : item.label.length == 3 ? '120' : '90'"
                               :width="item.width"
                               align="center">
              </el-table-column>
            </el-table>
@@ -54,13 +63,13 @@
                              :type="edit"
                              :visible.sync="DataVisible"></FormTemplateDialog>
          <!--          发布-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleFlow"></set-personnel>
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleFlow" @onLoad="onLoad"></set-personnel>
          <!--          停用-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleDeactivate"></set-personnel>
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleDeactivate" @onLoad="onLoad"></set-personnel>
          <!--          启用-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleEnable"></set-personnel>
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleEnable" @onLoad="onLoad"></set-personnel>
          <!--          回收-->
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleRecovery"></set-personnel>
          <set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleRecovery" @onLoad="onLoad"></set-personnel>
          <!--          高级查询-->
          <advanced-query :options="this.options" :visible.sync="findvisible"
                          @echoContion="echoContion"></advanced-query>
@@ -95,7 +104,7 @@
  </basic-container>
</template>
<script>
import {MasterTable, TableData, FindData, addSaveCode, editSaveCode} from "@/api/GetItem";
import {MasterTable, TableData, FindData, addSaveCode, editSaveCode,deleteCode} from "@/api/GetItem";
import {processTS,changeStatus} from "@/api/template/setPersonnel"
import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
import integrationTransfer from "@/views/integration/integrationTransfer";
@@ -156,6 +165,7 @@
  },
  data() {
    return {
      statusSelect:"all",
      searchResults: [],
      //首页右侧搜索
      WupinFindValue: "",
@@ -234,20 +244,22 @@
        hasDownload: true,
        hasUpload: true,
        height: 100
      }
      },
      result:''
    };
  },
  computed: {},
  created() {
   const index = this.$route.query.id.indexOf('@name=') + '@name='.length;
   this.result = this.$route.query.id.substring(index);
  },
  mounted() {
  },
  activated() {
    // this.doLayout();
    this.$nextTick(() => {
      this.$refs.dataTable.doLayout()
    })
   this.doLayout()
  },
  updated() {
    this.doLayout()
  },
  watch: {
    tableHeadDataFateher: {
@@ -266,6 +278,7 @@
      handler(newval, oldval) {
        this.tableData = newval;
        this.searchResults = newval
        this.doLayout()
      },
    },
    tableHeadFindData: {
@@ -311,6 +324,26 @@
    }
  },
  methods: {
    //状态搜索
    cellSelectHandler(row){
      if(row === 'all'){
        this.cellStatusFind()
      }else {
        this.cellStatusFind(row)
      }
    },
    cellStatusFind(lcstatus){
      TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        page: this.page.currentPage,
        limit: this.page.pageSize,
        'conditionMap[lcstatus]':lcstatus
      }).then(res=>{
        console.log(res)
        this.tableData=res.data.data
      })
    },
    //展开附件
    handleCollapse(activeNames) {
      if (activeNames.length > 0) {
@@ -344,6 +377,8 @@
        if (uniqueFlag === 'CODEENABLE') return this.Enable()
        //回收
        if (uniqueFlag === 'CODERECYCLE') return this.Recovery()
        //删除
        if (uniqueFlag === 'CODEDELETE') return this.enumDeleteRow()
        //  相似项查询
        //  if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
      });
@@ -382,25 +417,26 @@
            showMessage = false;
          } else if (showMessage) {
            processTS({templateId: this.templateOid, buttonTypeKey: 'PUBLIC'}).then(res => {
              if (res.data.records != [] && res.data.code != 200)  {
              if (res.data.data.records && res.data.data.records.length!=0)  {
                this.userName = localStorage.getItem("username");
                this.parameter.template = this.userName + "-发布" + "[物品]";
                this.parameter.type = 'PUBLIC'
                this.parameter.template = this.userName + '-申请['+this.result+'-' + this.selectRow[0].name + ']';
                this.parameter.type = 'PUBLIC';
                this.parameter.code=this.templateOid
                this.title = '流程审批'
                this.visibleFlow = true;
                this.onLoad()
              } else {
                this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', {
                  confirmButtonText: '确定',
                  cancelButtonText: '取消',
                  type: 'warning'
                }).then(() => {
                  this.userName = localStorage.getItem("username");
                  this.parameter.template = this.userName + "-发布" + "[物品]";
                  this.parameter.type = 'PUBLIC'
                  this.title = '流程审批'
                  this.visibleFlow = true;
                  this.onLoad()
                  const oid = this.selectRow.map(obj => obj.oid).join(",");
                  changeStatus({ oid: oid, btmname: this.result, lcStatus: 'Released' }).then(res => {
                    if(res.data.code == 200 ){
                      this.$message.success('发布成功')
                      this.onLoad()
                    }
                  });
                }).catch(() => {
                  this.$message({
                    type: 'info',
@@ -431,10 +467,11 @@
            showMessage = false;
          } else if (this.selectRow.length > 1 && hasEditing && showMessage) {
            processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => {
              if (res.data.records != [] && res.data.code != 200) {
              if (res.data.records != [] && res.data.data.records.length!=0) {
                this.userName = localStorage.getItem("username");
                this.parameter.template = this.userName + "停用" + "[物品]";
                this.parameter.type = 'DISABLE'
                this.parameter.template = this.userName + '-停用['+this.result+'-' + this.selectRow[0].name + ']';
                this.parameter.type = 'DISABLE';
                this.parameter.code=this.templateOid
                this.title = '停用(冻结)编码数据'
                this.visibleDeactivate = true;
              } else {
@@ -445,11 +482,8 @@
                    cancelButtonText: '取消',
                    type: 'warning'
                  }).then(() => {
                    const index = this.$route.query.id.indexOf('@');
                    const result = this.$route.query.id.substring(0, index);
                    const oid = this.selectRow.map(obj => obj.oid).join(",");
                      changeStatus({ oid: oid, btmname: result, lcStatus: 'Disabled' }).then(res => {
                        console.log(res);
                      changeStatus({ oid: oid, btmname: this.result, lcStatus: 'Disabled' }).then(res => {
                        if(res.data.code == 200 ){
                          this.$message.success('停用成功')
                          this.onLoad()
@@ -476,7 +510,6 @@
        this.$message.warning("请选择一条数据");
      } else {
        let hasEditing = this.selectRow.every(item => item.lcstatus == 'Disabled');
        console.log('hasEditing',hasEditing)
        let showMessage = true;
        this.selectRow.forEach(item => {
          if (this.selectRow.length === 1 && item.lcstatus !== "Disabled" && showMessage) {
@@ -484,10 +517,12 @@
            showMessage = false;
          } else if (this.selectRow.length >=1 && hasEditing && showMessage) {
            processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => {
              if (res.data.records != [] && res.data.code != 200) {
              if (res.data.data.records && res.data.data.records.length!=0)  {
                this.parameter=res.data.data.records[0]
                this.userName = localStorage.getItem("username");
                this.parameter.template = this.userName + "启用" + "[物品]";
                this.parameter.type = 'Released'
                this.parameter.template = this.userName + '-启用['+this.result+'-' + this.selectRow[0].name + ']';
                this.parameter.type = 'Released';
                this.parameter.code=this.templateOid
                this.title = '启用编码数据'
                this.visibleDeactivate = true;
              } else {
@@ -498,11 +533,8 @@
                    cancelButtonText: '取消',
                    type: 'warning'
                  }).then(() => {
                    const index = this.$route.query.id.indexOf('@');
                    const result = this.$route.query.id.substring(0, index);
                    const oid = this.selectRow.map(obj => obj.oid).join(",");
                    changeStatus({ oid: oid, btmname: result, lcStatus: 'Released' }).then(res => {
                      console.log(res);
                    changeStatus({ oid: oid, btmname: this.result, lcStatus: 'Released' }).then(res => {
                      if(res.data.code == 200 ){
                        this.$message.success('启用成功')
                        this.onLoad()
@@ -535,7 +567,6 @@
        // 停用-只能启用、回收
        const disabledCount = this.selectRow.filter(item => item.lcstatus === 'Disabled').length;
        const releasedCount = this.selectRow.filter(item => item.lcstatus === 'Released').length;
        console.log('hasEditing',disabledCount,releasedCount)
        let showMessage = true;
        this.selectRow.forEach(item => {
          if (this.selectRow.length === 1 && item.lcstatus == "TakeBack" && showMessage) {
@@ -544,10 +575,11 @@
          } else if (this.selectRow.length >=1 && (disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0) && showMessage) {
            //disabledCount 和 releasedCount 中任意一个等于 this.selectRow 数组的长度则表示全部是同一种状态,返回 true 如果disabledCount 和 releasedCount 都大于0,则表示既有Disabled也有Released返回 true
            processTS({ templateId: this.templateOid, buttonTypeKey: 'PUBLIC' }).then(res => {
              if (res.data.records != [] && res.data.code != 200) {
              if (res.data.records != [] && res.data.data.records.length!=0) {
                this.userName = localStorage.getItem("username");
                this.parameter.template = this.userName + "回收" + "[物品]";
                this.parameter.type = 'TakeBack'
                this.parameter.template = this.userName + '-回收['+this.result+'-' + this.selectRow[0].name + ']';
                this.parameter.type = 'TakeBack';
                this.parameter.code=this.templateOid
                this.title = '回收编码数据'
                this.visibleDeactivate = true;
              } else {
@@ -558,11 +590,8 @@
                    cancelButtonText: '取消',
                    type: 'warning'
                  }).then(() => {
                    const index = this.$route.query.id.indexOf('@');
                    const result = this.$route.query.id.substring(0, index);
                    const oid = this.selectRow.map(obj => obj.oid).join(",");
                    changeStatus({ oid: oid, btmname: result, lcStatus: 'TakeBack' }).then(res => {
                      console.log(res);
                    changeStatus({ oid: oid, btmname: this.result, lcStatus: 'TakeBack' }).then(res => {
                      if(res.data.code == 200 ){
                        this.$message.success('回收成功')
                        this.onLoad()
@@ -577,9 +606,11 @@
                }
              }
            });
          } else if (this.selectRow.length >=1 && !(disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0)  && showMessage) {
          } else if (showMessage && this.selectRow.length >1 && !(disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0)) {
            this.$message.warning('您选择的数据全部为【停用状态或发布状态】才可以发起流程');
            showMessage = false;
          }else if(showMessage){
            this.$message.warning('您选择的数据为【停用状态或发布状态】才可以发起流程')
          }
        });
      }
@@ -613,17 +644,41 @@
    },
    //删除
    enumDeleteRow(row) {
      this.tableData.splice(row, 1);
      this.$confirm('是否删除选中数据?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        const list=[];
        this.selectRow.forEach((item)=>{list.push(item.oid)})
        deleteCode({codeClassifyOid:this.codeClassifyOid,oidList:list}).then(res=>{
          console.log(res)
          if(res.data.code === 200){
            this.$message({
              type: 'success',
              message: '删除成功!'
            });
          }
          this.onLoad()
        })
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消删除'
        });
      });
    },
    // 将正在编辑的行的状态变为 null ,即退出编辑状态
    saveRow() {
      this.editingRow = null;
    },
    //表格错行问题
    doLayout() {
      this.$nextTick(() => {
        console.log(this.$refs)
        this.$refs.crud.doLayout();
      });
        if (this.$refs.dataTable && this.$refs.dataTable.doLayout) {
          this.$refs.dataTable.doLayout();
        }
      })
    },
    //表格头渲染
    CrudHeaderRend() {
@@ -694,6 +749,7 @@
        limit: this.page.pageSize,
      }).then((res) => {
        this.tableData = res.data.data;
        this.doLayout()
      });
    },
    //多选
@@ -703,7 +759,6 @@
      list.forEach((item) => {
        this.parameter.ids.push(item.oid);
      });
      console.log(this.selectRow)
    },
    //选择
    handleSelection(list, row) {
@@ -740,7 +795,6 @@
        codeClassifyOid: this.codeClassifyOid,
        ...val,
      }).then((res) => {
        console.log(res);
        this.tableData = res.data.data;
        this.page.total = res.data.total
      });
@@ -770,9 +824,7 @@
    //增加保存
    AddSumbit(val) {
      this.addvisible = false;
      console.log(val)
      addSaveCode(val).then(res => {
        console.log(res)
        this.$nextTick(() => {
          this.onLoad()
        })
@@ -780,9 +832,7 @@
    },
    EditSumbit(val) {
      this.editvisible = false;
      console.log(val)
      editSaveCode(val).then(res => {
        console.log(res)
        this.$nextTick(() => {
          this.onLoad()
        })