田源
2024-05-16 94696e8332d543a97015d897e2505e8a78d734de
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -15,14 +15,24 @@
                  item.name
                }}
              </el-button>
              <span v-if="tableHeadFindData.length > 0">
              <el-select slot="prepend" v-model="keyWordFind" placeholder="请选择" size="small">
              <span v-if="tableHeadFindData.length > 0 ">
              <el-select slot="prepend" v-model="keyWordFind" placeholder="请选择" size="small" @change="searchChange">
                <el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label"
                           :value="item.prop"></el-option>
                           :value="item.query"></el-option>
              </el-select>
              <el-input v-model="WupinFindValue" placeholder="请输入关键字按回车查询"
                        size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
              <el-input v-if="!isTimeStatus" v-model="WupinFindValue"
                        placeholder="请输入关键字按回车查询" size="small" style="width: 180px; margin-left: 5px; margin-top: 10px"
                        @keyup.enter.native="tableFindInp"></el-input>
              </span>
              <span v-if="tableHeadFindData.length > 0  && isTimeStatus" class="block">
                <el-date-picker
                  v-model="dateValue"
                  placeholder="选择日期"
                  size="small"
                  style="margin-left: 5px"
                  type="date"
                  @change="dateChange">
                </el-date-picker>
              </span>
              <span v-if="tableHeadFindData.length > 0" style="margin-left: 10px">
               <p style="font-size: 13px;display: inline-block;"> 状态:</p>
@@ -154,6 +164,22 @@
                           @current-change="handleCurrentChange">
            </el-pagination>
          </div>
          <el-dialog v-loading="syncLoading" :visible.sync="syncDialogBox" append-to-body title="手动同步" top="200px"
                     width="30%" @close="syncClose">
            <p style="display: inline-block">最后更新时间:</p>
            <el-date-picker
              v-model="SyncValue"
              format="yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒"
              placeholder="选择日期"
              style="width: 300px"
              type="date"
              value-format="yyyy-MM-dd HH:mm:ss">
            </el-date-picker>
            <div slot="footer" class="dialog-footer">
              <el-button @click="syncClose">取 消</el-button>
              <el-button type="primary" @click="submitSync">确 定</el-button>
            </div>
          </el-dialog>
        </div>
      </div>
      <div class="bottom">
@@ -178,7 +204,8 @@
  applyGroupCode,
  receiveEditApply,
  applySaveCode,
  exportGroupCodeExcel
  exportGroupCodeExcel,
  syncSearch
} from "@/api/GetItem";
import {processTS, changeStatus} from "@/api/template/setPersonnel"
import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
@@ -191,6 +218,7 @@
import fileInHtml from "@/components/file/inHtml.vue";
import {getUserInfo} from "@/api/system/user";
import func from "@/util/func";
import moment from "moment/moment";
export default {
  components: {
@@ -255,6 +283,13 @@
  },
  data() {
    return {
      //手动同步model
      SyncValue: '',
      syncLoading: false,
      syncDialogBox: false,
      isTimeStatus: false,
      isTimeName: '',
      dateValue: "",
      //批量编辑对话框
      bulkeditvisible: false,
      LinkVisible: false,
@@ -304,7 +339,6 @@
        key: "oid",
        label: "name",
      },
      tableHeadFindDatas: [],
      applyvisible: false,
      amendvisible: false,
      addvisible: false,
@@ -360,8 +394,6 @@
    },
  },
  created() {
    // const index = this.$route.query.id.indexOf('@name=') + '@name='.length;
    // this.result = this.$route.query.id.substring(index);
    getUserInfo().then(res => {
      this.result = res.data.data.realName
    })
@@ -382,7 +414,9 @@
    },
    tableHeadDataFateher: {
      handler(newval, oldval) {
        this.options = newval.tableDefineVO.seniorQueryColumns
        if (Object.keys(newval).length > 0) {
          this.options = newval.tableDefineVO.seniorQueryColumns;
        }
      }
    },
    codeClassifyOid: {
@@ -394,16 +428,22 @@
    tableDataArray: {
      handler(newval, oldval) {
        this.tableData = newval;
        this.searchResults = newval
        this.searchResults = newval;
        this.doLayout();
        this.fileOptions = {
          ownbizOid: "0",
          ownbizBtm: "0",
          fileDocClassify: '!=processAuditSuggest',
          fileDocClassifyName: '',
          hasDownload: true,
          hasUpload: true,
          height: 'auto'
        if (newval.length > 0) {
          this.fileOptions = {
            ownbizOid: "0",
            ownbizBtm: "0",
            fileDocClassify: '!=processAuditSuggest',
            fileDocClassifyName: '',
            hasDownload: true,
            hasUpload: true,
            hasEdit: true,
            hasDel: true,
            height: 'auto'
          }
        } else {
          this.fileOptions = {};
        }
      },
    },
@@ -427,8 +467,13 @@
          if (_index == 0) {
            this.keyWordFind = record.queryField;
          }
          ;
          // if(record.fieldType === "datetime"){
          //       this.isTimeStatus = true;
          //       console.log(this.isTimeStatus)
          //       console.log(record)
          // }
        })
        this.tableHeadFindDatas = newval;
        if (newval) {
          this.CodeArray = [];
          if (newval.find(item => item.prop === 'id')) {
@@ -562,8 +607,39 @@
        if (uniqueFlag === 'excelGroupCode') return this.excelGroupCode()
        //集团码导入
        if (uniqueFlag === 'importGroupCode') return this.importGroupCode("groupCode")
        //手动同步
        if (uniqueFlag === 'manualSyncing') return this.manualSyncing("groupCode")
      });
    },
    //手动同步
    manualSyncing() {
      this.syncDialogBox = true;
    },
    //手动同步关闭
    syncClose() {
      this.syncDialogBox = false;
    },
    //手动同步确定
    async submitSync() {
      if (this.SyncValue) {
        this.syncLoading = true;
        const response = await syncSearch({endDate: this.SyncValue})
        console.log('response',response)
        if (response.data.code === 200) {
          this.$message.success('同步成功!')
          this.syncLoading = false;
          this.syncDialogBox = false;
          this.SyncValue = "";
        } else {
          this.syncLoading = false;
          this.syncDialogBox = false;
          this.SyncValue = "";
        }
      } else {
        this.$message.warning('请选择最后更新时间!')
      }
    },
    //集团码导入
    importGroupCode(type) {
      this.batchImportData.visible = true
      this.batchImportData.type = type
@@ -1011,7 +1087,7 @@
          templateOid: this.templateOid,
          codeClassifyOid: this.codeClassifyOid,
          ...val,
          page: this.page.currentPage = 1,/** 每次点击高级查询都应该从第一页开始*/
          page: this.page.currentPage = 1, /** 每次点击高级查询都应该从第一页开始*/
          limit: this.page.pageSize
        });
        this.tableData = res.data.data;
@@ -1090,12 +1166,45 @@
      this.batchImportData.type = type
      this.batchImportData.codeClassifyOid = this.codeClassifyOid
    },
    searchChange(val) {
      this.isTimeName = val;
      this.isTimeStatus = this.tableHeadFindData.some(item => {
        if (item.fieldType === "datetime" && item.prop === val) {
          return true;
        }
        return false;
      });
      // console.log(this.isTimeStatus)
    },
    dateChange(val) {
      if (val) {
        const momentDate = moment(this.dateValue);
        const dateString = momentDate.format("yyyy-MM-DD");
        this.isLoading = true;
        try {
          TableData({
            templateOid: this.templateOid,
            codeClassifyOid: this.codeClassifyOid,
            page: this.page.currentPage,
            limit: this.page.pageSize,
            ['conditionMap[' + this.keyWordFind + ']']: dateString
          }).then(res => {
            this.tableData = res.data.data;
            this.page.total = res.data.total;
          })
        } finally {
          this.isLoading = false;
        }
      }
    },
    //输入回车搜索
    tableFindInp() {
      this.isLoading = true;
      try {
        this.conditionMap = {};
        // 存储查询条件,主要是为了点击页码时带上这个条件
        this.conditionMap["conditionMap[" + this.keyWordFind + "]"] = '*' + this.WupinFindValue + '*';
        console.log(this.conditionMap)
        TableData({
          templateOid: this.templateOid,
          codeClassifyOid: this.codeClassifyOid,
@@ -1116,6 +1225,10 @@
</script>
<style lang="scss" scoped>
.el-table__fixed-body-wrapper .el-table__body {
  padding-bottom: 15px; // 滚动条高度
}
//固定列高度
/deep/ .el-table__fixed {
  height: calc(100vh - 365px) !important;
@@ -1150,7 +1263,7 @@
.main {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 150px);
  height: calc(100vh - 145px);
  min-height: 400px;
}