| | |
| | | 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> |
| | |
| | | <el-table-column v-if="tableData.length != 0" fixed label="序号" type="index" width="55"> |
| | | </el-table-column> |
| | | <!-- 生命周期--> |
| | | <!-- <el-table-column v-for="(item,index) in lcstatusArray"--> |
| | | <!-- v-if=" lcstatusArray.length >= 0 && !item.hidden"--> |
| | | <!-- key="index" :show-overflow-tooltip="true" :sortable="item.sortable"--> |
| | | <!-- :width="item.width" align="center" label="生命周期值"--> |
| | | <!-- prop="lcstatus">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <span>{{ scope.row.lcstatus_text }}</span>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- <el-table-column v-for="(item,index) in lcstatusArray"--> |
| | | <!-- v-if=" lcstatusArray.length >= 0 && !item.hidden"--> |
| | | <!-- key="index" :show-overflow-tooltip="true" :sortable="item.sortable"--> |
| | | <!-- :width="item.width" align="center" label="生命周期值"--> |
| | | <!-- prop="lcstatus">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <span>{{ scope.row.lcstatus_text }}</span>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | <!-- 编号--> |
| | | <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden" |
| | | key="index" :label="item.label" :prop="item.prop" |
| | |
| | | :width="item.width" |
| | | align="center"> |
| | | </el-table-column> |
| | | <!-- 参照数据--> |
| | | <!-- <el-table-column v-for="(item,index) in referArray"--> |
| | | <!-- v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden"--> |
| | | <!-- :key="index"--> |
| | | <!-- :label="item.title" :show-overflow-tooltip="true"--> |
| | | <!-- :sortable="item.sortable" :width="item.width" align="center"--> |
| | | <!-- :prop="item.prop">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <span>{{ scope.row[item.showField] }}</span>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | </div> |
| | | </el-row> |
| | |
| | | @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"> |
| | |
| | | applyGroupCode, |
| | | receiveEditApply, |
| | | applySaveCode, |
| | | exportGroupCodeExcel |
| | | exportGroupCodeExcel, |
| | | syncSearch |
| | | } from "@/api/GetItem"; |
| | | import {processTS, changeStatus} from "@/api/template/setPersonnel" |
| | | import {listCodeAttributeByClassId} from "@/api/integration/integration.js"; |
| | |
| | | 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: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | //手动同步model |
| | | SyncValue: '', |
| | | syncLoading: false, |
| | | syncDialogBox: false, |
| | | isTimeStatus: false, |
| | | isTimeName: '', |
| | | dateValue: "", |
| | | //批量编辑对话框 |
| | | bulkeditvisible: false, |
| | | LinkVisible: false, |
| | |
| | | btmtype: '', |
| | | code: "", |
| | | type: '', |
| | | // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC' |
| | | processName: "", |
| | | vars: { |
| | | codeClassifyOid: "", |
| | |
| | | key: "oid", |
| | | label: "name", |
| | | }, |
| | | tableHeadFindDatas: [], |
| | | applyvisible: false, |
| | | amendvisible: false, |
| | | addvisible: false, |
| | |
| | | }, |
| | | // 主数据按钮 |
| | | masterVrBtnList: [], |
| | | fileOptions: { |
| | | ownbizOid: "0", |
| | | ownbizBtm: "0", |
| | | fileDocClassify: '!=processAuditSuggest', |
| | | fileDocClassifyName: '', |
| | | hasDownload: true, |
| | | hasUpload: true, |
| | | height: 110 |
| | | }, |
| | | fileOptions: {}, |
| | | result: '', |
| | | elapsedTime: '', |
| | | conditionMap: [], |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | }, |
| | | }, |
| | | 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 |
| | | }) |
| | |
| | | }, |
| | | tableHeadDataFateher: { |
| | | handler(newval, oldval) { |
| | | this.options = newval.tableDefineVO.seniorQueryColumns |
| | | if (Object.keys(newval).length > 0) { |
| | | this.options = newval.tableDefineVO.seniorQueryColumns; |
| | | } |
| | | } |
| | | }, |
| | | codeClassifyOid: { |
| | |
| | | }, |
| | | tableDataArray: { |
| | | handler(newval, oldval) { |
| | | // console.log('tableData',newval) |
| | | this.tableData = newval; |
| | | this.searchResults = newval |
| | | this.searchResults = newval; |
| | | this.doLayout(); |
| | | 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 = {}; |
| | | } |
| | | }, |
| | | }, |
| | | tableHeadFindData: { |
| | | handler(newval, oldval) { |
| | | // console.log(newval) |
| | | newval.forEach((record, _index) => { |
| | | if (record.queryField == 'id' && validatenull(record.templet)) { |
| | | //企业编码的默认添加超链接,暂未实现 |
| | |
| | | } |
| | | |
| | | if (_index == 0) { |
| | | this.keyWordFind = record.queryField |
| | | 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')) { |
| | |
| | | templateOid: { |
| | | handler(newval, oldval) { |
| | | this.fileOptions.ownbizOid = "0"; |
| | | this.statusSelect = 'all' |
| | | }, |
| | | deep: true, |
| | | }, |
| | |
| | | }, |
| | | }, |
| | | methods: { |
| | | // 置空查询条件 |
| | | resetConditionMap() { |
| | | this.conditionMap = {}; |
| | | }, |
| | | |
| | | CodeLinkHandler(row) { |
| | | this.LinkObject = row; |
| | | this.LinkVisible = true; |
| | | this.LinkList = Object.keys(row).map(property => property) |
| | | |
| | | }, |
| | | //状态搜索 |
| | | cellSelectHandler(row) { |
| | |
| | | }, |
| | | cellStatusFind(lcstatus) { |
| | | this.isLoading = true; |
| | | this.conditionMap["conditionMap[lcstatus]"] = lcstatus; |
| | | TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | |
| | | 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 |
| | |
| | | func.downloadFileByBlobHandler(res); |
| | | this.$message.success('下载成功,请查看!'); |
| | | this.isLoading = false; |
| | | }).catch(error=>{ |
| | | }).catch(error => { |
| | | this.$message.error(error); |
| | | }); |
| | | }, |
| | |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | ...this.conditionMap, /**带上分页查询条件 */ |
| | | }); |
| | | const endTime = performance.now(); |
| | | this.elapsedTime = Math.floor(endTime - startTime) * 1; |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | // 将正在编辑的行的状态变为 null ,即退出编辑状态 |
| | | //将正在编辑的行的状态变为 null ,即退出编辑状态 |
| | | saveRow() { |
| | | this.editingRow = null; |
| | | }, |
| | |
| | | }) |
| | | }, |
| | | // 排序 |
| | | sortChange(val) { |
| | | // console.log(val) |
| | | this.isLoading = true; |
| | | let order = ""; |
| | | if (val.order == "ascending") { |
| | | order = "asc"; |
| | | } else { |
| | | order = "desc"; |
| | | async sortChange(val) { |
| | | try { |
| | | this.isLoading = true; |
| | | const order = val.order == 'ascending' ? 'asc' : 'desc'; |
| | | const {data} = await TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | order: order, |
| | | sort: val.prop, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | ...this.conditionMap |
| | | }); |
| | | this.data = data.data; |
| | | } finally { |
| | | this.isLoading = false; |
| | | } |
| | | TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | order: order, |
| | | sort: val.prop, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | }).then((res) => { |
| | | setTimeout(() => { |
| | | this.data = res.data.data; |
| | | this.isLoading = false; |
| | | }, 100); |
| | | }); |
| | | }, |
| | | //分页刷新 |
| | | async onLoad(val) { |
| | | await TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | }).then((res) => { |
| | | this.isLoading = true; |
| | | try { |
| | | let conditionMap = {}; |
| | | if (this.statusSelect !== 'all') { |
| | | conditionMap.lcstatus = this.statusSelect; |
| | | } |
| | | const res = await TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | conditionMap |
| | | }); |
| | | this.tableData = res.data.data; |
| | | this.doLayout() |
| | | }); |
| | | this.doLayout(); |
| | | } catch (error) { |
| | | this.$message.error(error) |
| | | } finally { |
| | | this.isLoading = false; |
| | | } |
| | | }, |
| | | //多选 |
| | | handleSelectionChange(list) { |
| | |
| | | this.findvisible = true; |
| | | }, |
| | | // 高级查询 |
| | | echoContion(val) { |
| | | FindData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | ...val, |
| | | }).then((res) => { |
| | | async echoContion(val) { |
| | | this.conditionMap = val; |
| | | try { |
| | | const res = await FindData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | ...val, |
| | | page: this.page.currentPage = 1, /** 每次点击高级查询都应该从第一页开始*/ |
| | | limit: this.page.pageSize |
| | | }); |
| | | this.tableData = res.data.data; |
| | | this.page.total = res.data.total |
| | | }); |
| | | } catch (error) { |
| | | |
| | | } |
| | | }, |
| | | //相似项查询 |
| | | similarHandler() { |
| | | if (this.selectRow.length <= 0) { |
| | | this.$message.warning("请选择一条数据"); |
| | | } else if (this.selectRow.length > 1) { |
| | | this.$message.warning("只能选择一条数据"); |
| | | } else { |
| | | this.similarVisible = true; |
| | | return; |
| | | } |
| | | if (this.selectRow.length > 1) { |
| | | this.$message.warning("只能选择一条数据"); |
| | | return; |
| | | } |
| | | this.similarVisible = true; |
| | | }, |
| | | //数据更改 |
| | | 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; |
| | | this.rowOid = this.selectRow[0]['oid'] |
| | | return |
| | | } |
| | | if (this.selectRow.length > 1) { |
| | | this.$message.warning("只能选择一条数据"); |
| | | return; |
| | | } |
| | | if (this.selectRow[0].lcstatus != "Released") { |
| | | this.$message.warning("只有状态为已发布的数据才能进行数据更改"); |
| | | return; |
| | | } |
| | | this.DataVisible = true; |
| | | this.rowOid = this.selectRow[0]['oid'] |
| | | }, |
| | | //增加保存 |
| | | AddSumbit(val) { |
| | | // console.log('val',val) |
| | | if (func.notEmpty(val.ts)) { |
| | | val.ts = func.formattedDateTime(val.ts); |
| | | //console.log(val.ts); |
| | |
| | | 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; |
| | | TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*' |
| | | }).then(res => { |
| | | this.tableData = res.data.data; |
| | | this.page.total = res.data.total; |
| | | try { |
| | | this.conditionMap = {}; |
| | | // 存储查询条件,主要是为了点击页码时带上这个条件 |
| | | this.conditionMap["conditionMap[" + this.keyWordFind + "]"] = '*' + this.WupinFindValue + '*'; |
| | | console.log(this.conditionMap) |
| | | TableData({ |
| | | templateOid: this.templateOid, |
| | | codeClassifyOid: this.codeClassifyOid, |
| | | page: this.page.currentPage, |
| | | limit: this.page.pageSize, |
| | | ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*' |
| | | }).then(res => { |
| | | this.tableData = res.data.data; |
| | | this.page.total = res.data.total; |
| | | }) |
| | | } finally { |
| | | this.isLoading = false; |
| | | }) |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | .el-table__fixed-body-wrapper .el-table__body { |
| | | padding-bottom: 15px; // 滚动条高度 |
| | | } |
| | | //固定列高度 |
| | | /deep/ .el-table__fixed { |
| | | height: calc(100vh - 370px) !important; |
| | | height: calc(100vh - 365px) !important; |
| | | } |
| | | |
| | | // 滚动条样式修改 |
| | |
| | | .main { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: calc(100vh - 150px); |
| | | height: calc(100vh - 145px); |
| | | min-height: 400px; |
| | | } |
| | | |
| | | .top { |
| | | overflow-y: scroll; |
| | | min-height: 55%; |
| | | min-height: 40%; |
| | | } |
| | | |
| | | .bottom { |