<template>
|
<basic-container>
|
<div class="main">
|
<div class="top">
|
<div class="testbox" style="">
|
<div>
|
</div>
|
<el-row style="width: 100%;margin-bottom: 10px">
|
<div style="margin-bottom: 10px">
|
<el-button v-for="(item, index) in masterVrBtnList"
|
v-if="!['PREVIEW', 'DELETEFILE', 'revisefile', 'DOWNLOADFILE', 'UPLOADFILE'].includes(item.uniqueFlag)"
|
:key="index" plain size="small"
|
type="primary"
|
@click="handleBtnClick(item)">{{
|
item.name
|
}}
|
</el-button>
|
<span v-if="tableHeadFindData.length > 0">
|
<el-select slot="prepend" v-model="keyWordFind" placeholder="请选择" size="small">
|
<el-option v-for="item in tableHeadFindData" :key="item.id" :label="item.label"
|
:value="item.prop"></el-option>
|
</el-select>
|
<el-input 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" style="margin-left: 10px">
|
<p style="font-size: 13px;display: inline-block;"> 状态:</p>
|
<el-select slot="prepend" v-model="statusSelect" 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>
|
<div class="custom-table">
|
<el-table ref="dataTable" v-loading="isLoading" :data="tableData"
|
:header-cell-style="{background:'#FAFAFA',color:'#505050'}"
|
:height="tableHeight" border
|
class="cus-table" @select="handleSelection" @cell-click="handleCellClick"
|
@row-click="handleRowClick" @select-all="handleSelectionAll"
|
@selection-change="handleSelectionChange" @sort-change="sortChange">
|
<el-table-column v-if="tableData.length != 0" fixed type="selection" width="55"></el-table-column>
|
<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 CodeArray" v-if="CodeArray.length !== 0 && !item.hidden"
|
key="index" :label="item.label" :prop="item.prop"
|
:show-overflow-tooltip="true" :sortable="item.sortable" :width="item.width"
|
align="center">
|
<template slot-scope="scope">
|
<el-link type="primary" @click="CodeLinkHandler(scope.row)">
|
{{ scope.row[item.prop] }}
|
</el-link>
|
</template>
|
</el-table-column>
|
<el-table-column v-for="item in this.tableHeadFindData"
|
v-if="!item.hidden && item.prop !== 'id'"
|
:key="item.id"
|
:formatter="item.formatter"
|
:label="item.label"
|
:prop="item.prop"
|
:show-overflow-tooltip="true"
|
:sortable="item.sortable"
|
:width="item.width"
|
align="center">
|
</el-table-column>
|
</el-table>
|
</div>
|
</el-row>
|
<!-- 申请-->
|
<FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
|
:codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
|
:visible.sync="applyvisible" status="apply"
|
type="add"
|
@submit="applySumbit">
|
</FormTemplateDialog>
|
<!-- 修订-->
|
<FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp" :selectRow="selectRow" :templateOid="templateOid"
|
:title="'数据修订'" :visible.sync="amendvisible" status="amend"
|
type="add" @submit="amendSumbit"></FormTemplateDialog>
|
<!-- 新增-->
|
<FormTemplateDialog :TreeValue="TreeValue" :codeClassifyOid="this.codeClassifyOid"
|
:codeRuleOid="this.codeRuleOid" :disabledProp="disabledProp" :templateOid="templateOid"
|
:visible.sync="addvisible"
|
type="add"
|
@submit="AddSumbit">
|
</FormTemplateDialog>
|
<!-- 修改-->
|
<FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
|
:title="'修改编码信息'"
|
:visible.sync="editvisible"
|
type="edit" @submit="EditSumbit"></FormTemplateDialog>
|
<!-- 批量编辑-->
|
<!-- <MasterEditBulk :visible.sync="bulkeditvisible" ></MasterEditBulk>-->
|
<!-- 数据详情-->
|
<FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
|
:rowOid="this.LinkObject.oid" :templateOid="templateOid"
|
:title="'数据详情'"
|
:visible.sync="LinkVisible"
|
type="detail"></FormTemplateDialog>
|
<!-- 已发布数据修改-->
|
<FormTemplateDialog :codeClassifyOid="this.codeClassifyOid" :codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp" :rowOid="rowOid" :templateOid="templateOid"
|
:title="'已发布数据更改'"
|
:visible.sync="DataVisible"
|
type="edit" @submit="updataSumbit"></FormTemplateDialog>
|
<!-- 发布-->
|
<set-personnel :parameter="this.parameter" :title="title" :visible.sync="visibleFlow"
|
@onLoad="onLoad"></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"
|
@onLoad="onLoad"></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>
|
<!-- 导出-->
|
<MasterTransfer :codeClassifyOid="codeClassifyOid" :limit="page.pageSize" :selectRow="selectRow"
|
:tableData="tableData"
|
:tableHeadData="tableHeadFindData" :templateOid="templateOid"
|
:visible.sync="dialogPush"></MasterTransfer>
|
<!-- 导入-->
|
<BatchImport v-if="batchImportData.visible" v-bind="batchImportData" :resetTable="CrudRend"
|
:selectRow="selectRow" :tableHeadData="tableHeadFindData"
|
:visible.sync="batchImportData.visible">
|
</BatchImport>
|
<!-- 相似项-->
|
<ResembleQueryDialog :codeClassifyOid="codeClassifyOid" :codeRuleOid="this.codeRuleOid" :rowOid="rowOid"
|
:templateOid="templateOid" :visible.sync="similarVisible"></ResembleQueryDialog>
|
<div class="block" style="display: flex; justify-content: flex-end">
|
<el-pagination :current-page="page.currentPage" :page-size="page.pageSize" :page-sizes="page.pageSizes"
|
:total="page.total" layout="total, sizes, prev, pager, next, jumper"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange">
|
</el-pagination>
|
</div>
|
</div>
|
</div>
|
<div class="bottom">
|
<el-collapse v-model="visibleNames" @change="handleCollapse">
|
<el-collapse-item name="1" title="附件列表">
|
<fileInHtml :options="fileOptions"></fileInHtml>
|
</el-collapse-item>
|
</el-collapse>
|
</div>
|
</div>
|
</basic-container>
|
</template>
|
<script>
|
import {
|
MasterTable,
|
TableData,
|
FindData,
|
addSaveCode,
|
editSaveCode,
|
deleteCode,
|
upSaveCode,
|
applyGroupCode,
|
receiveEditApply,
|
applySaveCode,
|
exportGroupCodeExcel
|
} from "@/api/GetItem";
|
import {processTS, changeStatus} from "@/api/template/setPersonnel"
|
import {listCodeAttributeByClassId} from "@/api/integration/integration.js";
|
import integrationTransfer from "@/views/integration/integrationTransfer";
|
import SetPersonnel from "@/components/template/SetPersonnel";
|
import ResembleQueryDialog from "@/components/FormTemplate/ResembleQueryDialog.vue";
|
import BatchImport from '@/components/BatchImport'
|
import MasterEditBulk from '@/components/Master/MasterEditBulk'
|
import {validatenull} from "@/util/validate";
|
import fileInHtml from "@/components/file/inHtml.vue";
|
import {getUserInfo} from "@/api/system/user";
|
import func from "@/util/func";
|
|
export default {
|
components: {
|
integrationTransfer,
|
SetPersonnel,
|
ResembleQueryDialog,
|
BatchImport,
|
fileInHtml,
|
MasterEditBulk
|
},
|
name: "Crud.vue",
|
props: {
|
page: {
|
type: Object,
|
default: () => {
|
return {};
|
},
|
},
|
codeClassifyOid: {
|
type: String,
|
default: "",
|
},
|
coderuleoid: {
|
type: String,
|
default: "",
|
},
|
tableDataArray: {
|
type: Array,
|
},
|
TreeValue: {
|
type: String,
|
default: "",
|
},
|
total: {
|
type: String,
|
default: "",
|
},
|
templateOid: {
|
type: String,
|
default: "",
|
},
|
tableHeadDataFateher: {
|
type: Array,
|
},
|
isLoading: {
|
type: Boolean,
|
default: false,
|
},
|
tableHeadFindData: {
|
type: Array,
|
},
|
tableHeadBtnData: {
|
type: Array,
|
},
|
Treedata: {
|
type: Array
|
},
|
nodeClickList: {
|
type: Array,
|
default: []
|
}
|
},
|
data() {
|
return {
|
//批量编辑对话框
|
bulkeditvisible: false,
|
LinkVisible: false,
|
LinkObject: {}, // 编码数据
|
LinkList: [],
|
isCodeArrayPushed: false, // 编码数组添加标识变量
|
CodeArray: [],
|
//生命周期数组
|
lcstatusArray: [],
|
//参照数据数组
|
referArray: [],
|
islcstatusPushed: false,
|
isReferPushed: false,
|
// 状态搜索
|
statusSelect: "all",
|
// 关键字查询
|
keyWordFind: "",
|
searchResults: [],
|
//首页右侧搜索
|
WupinFindValue: "",
|
//相似项查询
|
similarVisible: false,
|
//启动流程
|
parameter: {
|
ids: [],
|
btmtype: '',
|
code: "",
|
type: '',
|
// this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC'
|
processName: "",
|
vars: {
|
codeClassifyOid: "",
|
templateOid: ""
|
}
|
},
|
visibleNames: [],
|
//发布
|
visibleFlow: false,
|
//停用
|
visibleDeactivate: false,
|
//启用
|
visibleEnable: false,
|
//回收
|
visibleRecovery: false,
|
title: '',
|
transferData: [],
|
transferProps: {
|
key: "oid",
|
label: "name",
|
},
|
tableHeadFindDatas: [],
|
applyvisible: false,
|
amendvisible: false,
|
addvisible: false,
|
editvisible: false,
|
findvisible: false,
|
dialogPush: false,
|
rowOid: "",
|
disabledProp: ["id"],
|
editingRow: null,
|
editShow: "",
|
editAttr: "",
|
data: [],
|
options: {},
|
option: {
|
column: [],
|
},
|
List: [],
|
columnType: {
|
text: "input",
|
combox: "select",
|
truefalse: "switch",
|
number: "number",
|
datetime: "datetime",
|
},
|
tableData: [],
|
tableHeight: 'calc(100vh - 350px)',
|
DataVisible: false,
|
tableHeadData: [],
|
items: {},
|
seniorQueryColumns: [],
|
selectRow: [],
|
userName: "",
|
batchImportData: {
|
visible: false,
|
type: '',
|
codeClassifyOid: ''
|
},
|
// 主数据按钮
|
masterVrBtnList: [],
|
fileOptions:{},
|
result: '',
|
elapsedTime: '',
|
};
|
},
|
computed: {
|
oids() {
|
let oids = [];
|
this.selectRow.forEach(ele => {
|
oids.push(ele.oid);
|
});
|
return oids;
|
},
|
},
|
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
|
})
|
},
|
mounted() {
|
},
|
activated() {
|
this.doLayout()
|
},
|
updated() {
|
this.doLayout()
|
},
|
watch: {
|
isLoading: {
|
handler(newval) {
|
// console.log(newval)
|
}
|
},
|
tableHeadDataFateher: {
|
handler(newval, oldval) {
|
this.options = newval.tableDefineVO.seniorQueryColumns
|
}
|
},
|
codeClassifyOid: {
|
handler(newval, oldval) {
|
this.codeClassifyOid = newval;
|
},
|
deep: true,
|
},
|
tableDataArray: {
|
handler(newval, oldval) {
|
// console.log('tableData',newval)
|
this.tableData = newval;
|
this.searchResults = newval
|
this.doLayout();
|
this.fileOptions= {
|
ownbizOid: "0",
|
ownbizBtm: "0",
|
fileDocClassify: '!=processAuditSuggest',
|
fileDocClassifyName: '',
|
hasDownload: true,
|
hasUpload: true,
|
height: 'auto'
|
}
|
},
|
},
|
tableHeadFindData: {
|
handler(newval, oldval) {
|
// console.log(newval)
|
newval.forEach((record, _index) => {
|
if (record.queryField == 'id' && validatenull(record.templet)) {
|
//企业编码的默认添加超链接,暂未实现
|
record.formatter = '';
|
} else {
|
if (record.templet && typeof (record.templet) == 'string' && !validatenull(record.templet) && record.templet.indexOf("function(row,column)") > -1) {
|
record.formatter = eval("(" + record.templet + ")");
|
//function(row,column){return row[column.property]=='true' || row[column.property]=='1'?'是':'否'}
|
} else if (record.fieldType == "truefalse") {
|
record.formatter = function (row, column) {
|
return row[column.property] == 'true' || row[column.property] == '1' ? '是' : '否'
|
}
|
}
|
}
|
|
if (_index == 0) {
|
this.keyWordFind = record.queryField
|
}
|
})
|
this.tableHeadFindDatas = newval;
|
if (newval) {
|
this.CodeArray = [];
|
if (newval.find(item => item.prop === 'id')) {
|
this.CodeArray.push(newval.find(item => item.prop === 'id'));
|
} else {
|
this.CodeArray = [];
|
}
|
|
}
|
if (newval) {
|
this.lcstatusArray = [];
|
if (newval.find(item => item.prop === 'lcstatus')) {
|
this.lcstatusArray.push(newval.find(item => item.prop === 'lcstatus'));
|
} else {
|
this.lcstatusArray = [];
|
}
|
}
|
if (newval) {
|
this.referArray = [];
|
if (newval.find(item => Object.keys(item.referConfig).length > 0)) {
|
this.referArray.push(newval.find(item => Object.keys(item.referConfig).length > 0));
|
} else {
|
this.referArray = [];
|
}
|
}
|
this.WupinFindValue = ''
|
},
|
},
|
total: {
|
handler(newval, oldval) {
|
this.page.total = newval;
|
},
|
},
|
templateOid: {
|
handler(newval, oldval) {
|
this.fileOptions.ownbizOid = "0";
|
},
|
deep: true,
|
},
|
tableHeadBtnData: {
|
handler(newval) {
|
this.masterVrBtnList = newval
|
},
|
deep: true
|
},
|
},
|
methods: {
|
CodeLinkHandler(row) {
|
this.LinkObject = row;
|
this.LinkVisible = true;
|
this.LinkList = Object.keys(row).map(property => property)
|
|
},
|
//状态搜索
|
cellSelectHandler(row) {
|
if (row === 'all') {
|
this.cellStatusFind()
|
} else {
|
this.cellStatusFind(row)
|
}
|
},
|
cellStatusFind(lcstatus) {
|
this.isLoading = true;
|
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;
|
this.page.total = res.data.total;
|
this.isLoading = false;
|
})
|
},
|
//展开附件
|
handleCollapse(activeNames) {
|
if (activeNames.length > 0) {
|
this.tableHeight = 'calc(100vh - 630px)';
|
this.$refs.dataTable.doLayout()
|
} else {
|
this.tableHeight = 'calc(100vh - 350px)';
|
this.$refs.dataTable.doLayout()
|
}
|
},
|
openVis(visible) {
|
this[visible] = true
|
},
|
handleBtnClick(event) {
|
const {uniqueFlag} = event
|
this.$nextTick(() => {
|
if (uniqueFlag === 'CODEADD') return this.addSaveHandler()
|
if (uniqueFlag === 'CODEEDIT') return this.editHandler()
|
if (uniqueFlag === 'CODEBATCHADD') return this.openBatchImport('batchImportApply')
|
if (uniqueFlag === 'CODEIMPORTHISTORY') return this.openBatchImport('historyImport')
|
if (uniqueFlag === 'batchApplyCode') return this.openBatchImport('batchApplyCode')
|
// 批量申请编码
|
// if(uniqueFlag === 'CODEEDIT') return this.openBatchImport('batchApplyCode')
|
if (uniqueFlag === 'CODESTARTPROCESS') return this.setHandler()
|
if (uniqueFlag === 'CODEUPREVISION') return this.DataChange()
|
if (uniqueFlag === 'CODEEXPORT') return this.openD()
|
if (uniqueFlag === 'CODEQUERY') return this.findHandler()
|
//停用
|
if (uniqueFlag === 'CODEDISABLE') return this.Deactivate()
|
//启用
|
if (uniqueFlag === 'CODEENABLE') return this.Enable()
|
//回收
|
if (uniqueFlag === 'CODERECYCLE') return this.Recovery()
|
//删除
|
if (uniqueFlag === 'CODEDELETE') return this.enumDeleteRow()
|
//申请集团码数据
|
if (uniqueFlag === 'applyGroupCode') return this.applyGroupCode()
|
//更新集团码数据
|
if (uniqueFlag === 'receiveEditApply') return this.receiveEditApply()
|
// 相似项查询
|
// if(uniqueFlag === 'CODEEDIT') return this.similarHandler()
|
// 标准申请
|
if (uniqueFlag === 'CODEAPPLY') return this.codeApplyHandler()
|
// 标准修订
|
if (uniqueFlag === 'CODEAMEND') return this.codeAMENDHandler()
|
//批量编辑
|
if (uniqueFlag === 'bulkEdit') return this.bulkEditHandler("bulkEdit")
|
//集团码导出
|
if (uniqueFlag === 'excelGroupCode') return this.excelGroupCode()
|
//集团码导入
|
if (uniqueFlag === 'importGroupCode') return this.importGroupCode("groupCode")
|
});
|
},
|
importGroupCode(type) {
|
this.batchImportData.visible = true
|
this.batchImportData.type = type
|
this.batchImportData.codeClassifyOid = this.codeClassifyOid
|
},
|
//集团码导出
|
excelGroupCode() {
|
this.isLoading = true;
|
exportGroupCodeExcel({
|
codeClassifyOid: this.codeClassifyOid,
|
}).then(res => {
|
// let reader = new FileReader();
|
// reader.readAsText(res.data);
|
// reader.onload = () => {
|
// try {
|
// let resData = JSON.parse(reader.result); // 解析对象成功
|
// if (!resData.success) {
|
// this.$message.error(resData.msg);
|
// this.isLoading = false;
|
// }
|
// } catch (err) {
|
// // 解析成对象失败,说明是正常的文件流
|
// func.downloadFileByBlobHandler(res);
|
// this.$message.success('下载成功,请查看!');
|
// this.isLoading = false;
|
// }
|
// };
|
func.downloadFileByBlobHandler(res);
|
this.$message.success('下载成功,请查看!');
|
this.isLoading = false;
|
}).catch(error=>{
|
this.$message.error(error);
|
});
|
},
|
//标准申请
|
codeApplyHandler() {
|
this.$nextTick(() => {
|
this.applyvisible = true;
|
});
|
},
|
applySumbit(val) {
|
// console.log('val',val)
|
if (func.notEmpty(val.ts)) {
|
val.ts = func.formattedDateTime(val.ts);
|
//console.log(val.ts);
|
}
|
applySaveCode(val).then(res => {
|
this.$nextTick(() => {
|
this.applyvisible = false;
|
this.$message.success("保存成功");
|
this.onLoad()
|
})
|
})
|
},
|
amendSumbit(val) {
|
applySaveCode(val).then(res => {
|
this.$nextTick(() => {
|
this.amendvisible = false;
|
this.$message.success("保存成功");
|
this.onLoad()
|
})
|
})
|
|
},
|
//标准修订
|
codeAMENDHandler() {
|
let foundItem = false;
|
this.tableHeadFindData.forEach(item => {
|
if (item.field === "oldcode" && Object.keys(item.referConfig).length >= 1) {
|
foundItem = true;
|
}
|
});
|
if (foundItem) {
|
if (this.selectRow.length >= 1) {
|
this.$confirm('已有参照是否取消勾选继续执行?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
this.selectRow = [];
|
//取消勾选状态
|
this.$refs.dataTable.clearSelection();
|
this.amendvisible = true;
|
}).catch(() => {
|
this.$message({
|
type: 'info',
|
message: '已取消当前操作'
|
});
|
});
|
} else {
|
this.amendvisible = true;
|
}
|
} else {
|
if (this.selectRow.length <= 0) {
|
this.$message.warning("请至少选择一条数据");
|
} else {
|
this.amendvisible = true;
|
|
}
|
}
|
},
|
//批量编辑
|
bulkEditHandler(type) {
|
if (this.nodeClickList.children.length >= 1) {
|
this.$message.warning('当前选择的分类不是叶子节点,不允许批量编辑!')
|
return;
|
}
|
this.batchImportData.visible = true
|
this.batchImportData.type = type
|
this.batchImportData.codeClassifyOid = this.codeClassifyOid
|
},
|
addSaveHandler() {
|
this.$nextTick(() => {
|
this.addvisible = true;
|
});
|
},
|
//申请集团码数据
|
applyGroupCode() {
|
if (this.selectRow.length <= 0) {
|
this.$message.warning('请选择一条数据模板!')
|
} else {
|
const oids = this.selectRow.map(item => item.oid).join(',');
|
applyGroupCode({oids, btmName: this.selectRow[0].btmname}).then(res => {
|
if (res.data.code == 200) {
|
this.$message.success('申请成功')
|
}
|
this.onLoad()
|
})
|
}
|
},
|
//更新集团码数据
|
receiveEditApply() {
|
if (this.selectRow.length <= 0) {
|
this.$message.warning('请选择一条数据模板!')
|
} else {
|
const oids = this.selectRow.map(item => item.oid).join(',');
|
receiveEditApply({oids, btmName: this.selectRow[0].btmname}).then(res => {
|
if (res.data.code == 200) {
|
this.$message.success('更新成功')
|
this.onLoad()
|
}
|
});
|
}
|
},
|
openD() {
|
this.getListCodeByClassId();
|
},
|
async getListCodeByClassId() {
|
this.dialogPush = true;
|
this.transferData = [];
|
const response = await listCodeAttributeByClassId({
|
codeClassifyId: this.codeClassifyOid,
|
});
|
if (response.status === 200) {
|
const data = response.data.data;
|
this.transferData = data;
|
}
|
},
|
rend() {
|
this.tableData = this.tableHeadData;
|
},
|
// 发布
|
setHandler() {
|
var options = {
|
processUse: 'PUBLIC',
|
processUseText: '申请',
|
allowStatus: 'Editing',
|
allowStatusText: '已编辑',
|
startStatus: 'Auditing',
|
resetStatus: 'Editing',
|
batchTitle: '批量提交编码数据到流程审批',
|
title: '提交编码数据到流程审批'
|
}
|
this.checkStatusAndSubmitProcess(options, 'Released');
|
},
|
//停用
|
Deactivate() {
|
var options = {
|
processUse: 'DISABLE',
|
processUseText: '停用',
|
allowStatus: 'Released',
|
allowStatusText: '已发布',
|
resetStatus: 'Released',
|
batchTitle: '批量停用(冻结)的编码数据',
|
title: '停用(冻结)编码数据',
|
confirmMsg: '是否要停用这些数据'
|
}
|
this.checkStatusAndSubmitProcess(options, 'Disabled');
|
},
|
//启用
|
Enable() {
|
var options = {
|
processUse: 'ENABLE',
|
processUseText: '启用',
|
allowStatus: 'Disabled',
|
allowStatusText: '已停用',
|
resetStatus: 'Disabled',
|
batchTitle: '批量启用(解冻)的编码数据',
|
title: '启用(解冻)编码数据',
|
confirmMsg: '是否要启用(解冻)这些数据'
|
}
|
this.checkStatusAndSubmitProcess(options, 'Released');
|
},
|
//回收
|
Recovery() {
|
var options = {
|
processUse: 'ROLLBACK',
|
processUseText: '回收',
|
allowStatus: 'Released,Disabled',
|
allowStatusText: '已发布,已停用',
|
batchTitle: '批量回收的编码数据',
|
title: '回收编码数据',
|
confirmMsg: '是否要回收这些数据',
|
}
|
this.checkStatusAndSubmitProcess(options, 'TakeBack');
|
},
|
checkStatusAndSubmitProcess(options, targetLcstatus) {
|
// 编辑中-只能发布,不能回收
|
// 审核中-什么都不能做
|
// 已发布-停用、回收
|
// 停用-只能启用、回收
|
if (this.selectRow.length <= 0) {
|
this.$message.warning("请选择数据");
|
} else if (this.selectRow.length > 1000) {
|
this.$message.warning("每次提交到流程的数量请不要超过1000条");
|
} else {
|
//审批的数据的状态必须相同
|
var lcstatus = this.selectRow[0].lcstatus;
|
let hasDiff = this.selectRow.every(item => item.lcstatus == lcstatus);
|
if (!hasDiff) {
|
this.$message.warning("您选择的数据的状态不相同");
|
return false;
|
}
|
if (lcstatus == targetLcstatus) {
|
this.$message.warning("选择的数据中状态无需再执行当前操作");
|
return false;
|
}
|
if (options.processUseText == '申请' && !validatenull(this.selectRow[0].copyfromversion)) {
|
options.processUseText = '修改'
|
options.processUse = 'EDIT'
|
}
|
let checkStatus = this.selectRow.every(item => options.allowStatus.indexOf(item.lcstatus) != -1);
|
if (!checkStatus) {
|
this.$message.warning('只有状态是【' + options.allowStatusText + '】的数据才可以发起流程');
|
return false;
|
}
|
processTS({templateId: this.templateOid, buttonTypeKey: options.processUse}).then(res => {
|
if (res.data.data.records && res.data.data.records.length != 0) {
|
this.parameter.ids = this.oids;
|
this.parameter.processName = this.result + '-' + options.processUseText + '[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
|
this.parameter.type = options.processUse;
|
this.parameter.code = this.templateOid
|
this.parameter.btmtype = this.selectRow[0].btmname || this.selectRow[0].btmtype;
|
this.parameter.vars = {
|
codeClassifyOid: this.codeClassifyOid,
|
templateOid: this.templateOid
|
};
|
this.title = this.selectRow.length > 1 ? options.batchTitle : options.title;
|
this.visibleDeactivate = true;
|
} else {
|
this.$confirm('当前分类没有添加流程模板,是否不用流程审批直接执行?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
changeStatus({
|
oid: this.oids.join(','),
|
btmname: this.selectRow[0].btmname,
|
lcStatus: targetLcstatus
|
}).then(res => {
|
if (res.data.code == 200) {
|
this.$message.success(options.processUseText + '成功')
|
this.onLoad()
|
}
|
});
|
}).catch(() => {
|
this.$message({
|
type: 'info',
|
message: '已取消'
|
});
|
});
|
}
|
});
|
}
|
},
|
async CrudRend() {
|
this.elapsedTime = 0;
|
const startTime = performance.now();
|
const res = await TableData({
|
templateOid: this.templateOid,
|
codeClassifyOid: this.codeClassifyOid,
|
page: this.page.currentPage,
|
limit: this.page.pageSize,
|
});
|
const endTime = performance.now();
|
this.elapsedTime = Math.floor(endTime - startTime) * 1;
|
this.page.total = res.data.total;
|
this.data = res.data.data;
|
this.tableData = res.data.data;
|
},
|
|
async handleSizeChange(val) {
|
this.page.pageSize = val;
|
this.$emit("pageSize", val);
|
this.isLoading = true;
|
await this.CrudRend();
|
this.isLoading = false;
|
},
|
|
async handleCurrentChange(val) {
|
this.page.currentPage = val;
|
this.$emit("currentPage", val);
|
this.isLoading = true;
|
await this.CrudRend();
|
this.isLoading = false;
|
},
|
// 监听单元格点击事件并存储正在编辑的行
|
handleCellClick(row, column) {
|
this.editingRow = row;
|
this.editShow = column.property;
|
this.rowOid = row.oid;
|
},
|
handleRowClick(row, column) {
|
this.fileOptions.ownbizOid = row.oid;
|
this.fileOptions.ownbizBtm = row.btmname;
|
this.$refs.dataTable.toggleRowSelection(row);
|
},
|
//删除
|
enumDeleteRow(row) {
|
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 => {
|
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(() => {
|
if (this.$refs.dataTable && this.$refs.dataTable.doLayout) {
|
this.$refs.dataTable.doLayout();
|
}
|
})
|
},
|
// 排序
|
sortChange(val) {
|
// console.log(val)
|
this.isLoading = true;
|
let order = "";
|
if (val.order == "ascending") {
|
order = "asc";
|
} else {
|
order = "desc";
|
}
|
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.tableData = res.data.data;
|
this.doLayout()
|
});
|
},
|
//多选
|
handleSelectionChange(list) {
|
this.selectRow = list;
|
},
|
//选择
|
handleSelection(list, row) {
|
this.fileOptions.ownbizOid = row.oid;
|
this.fileOptions.ownbizBtm = row.btmname;
|
|
},
|
//选择全部
|
handleSelectionAll() {
|
this.fileOptions.ownbizOid = '0';
|
this.fileOptions.ownbizBtm = '0';
|
},
|
//编辑
|
editHandler() {
|
if (this.selectRow.length !== 1) {
|
this.$message.warning("请选择一条数据");
|
} else if (this.selectRow[0].lcstatus !== "Editing") {
|
this.$message.warning("编码状态不是“编辑中”,不可编辑");
|
} else {
|
this.editvisible = true;
|
this.rowOid = this.selectRow[0].oid;
|
}
|
},
|
//高级查询按钮
|
findHandler() {
|
this.findvisible = true;
|
},
|
// 高级查询
|
echoContion(val) {
|
FindData({
|
templateOid: this.templateOid,
|
codeClassifyOid: this.codeClassifyOid,
|
...val,
|
}).then((res) => {
|
this.tableData = res.data.data;
|
this.page.total = res.data.total
|
});
|
},
|
//相似项查询
|
similarHandler() {
|
if (this.selectRow.length <= 0) {
|
this.$message.warning("请选择一条数据");
|
} else if (this.selectRow.length > 1) {
|
this.$message.warning("只能选择一条数据");
|
} else {
|
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']
|
}
|
},
|
//增加保存
|
AddSumbit(val) {
|
// console.log('val',val)
|
if (func.notEmpty(val.ts)) {
|
val.ts = func.formattedDateTime(val.ts);
|
//console.log(val.ts);
|
}
|
addSaveCode(val).then(res => {
|
this.$nextTick(() => {
|
this.addvisible = false;
|
this.$message.success("保存成功");
|
this.onLoad()
|
})
|
})
|
},
|
//修改回调
|
EditSumbit(val) {
|
editSaveCode(val).then(res => {
|
this.$nextTick(() => {
|
this.editvisible = false;
|
this.$message.success("保存成功");
|
this.onLoad()
|
})
|
})
|
},
|
//数据更改回调
|
updataSumbit(val) {
|
val.copyFromVersion = this.rowOid;
|
val.oid = '';
|
upSaveCode(val).then(res => {
|
this.$nextTick(() => {
|
this.DataVisible = false;
|
this.$message.success("保存成功");
|
this.onLoad()
|
})
|
})
|
},
|
openBatchImport(type) {
|
this.batchImportData.visible = true
|
this.batchImportData.type = type
|
this.batchImportData.codeClassifyOid = this.codeClassifyOid
|
},
|
//输入回车搜索
|
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;
|
this.isLoading = false;
|
})
|
}
|
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
//固定列高度
|
/deep/ .el-table__fixed {
|
height: calc(100vh - 365px) !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;
|
}
|
|
|
.el-button {
|
margin: 0 10px 10px 0;
|
}
|
|
/deep/ .dialog-footer .el-button {
|
margin: 0 10px 0 0;
|
}
|
|
.main {
|
display: flex;
|
flex-direction: column;
|
height: calc(100vh - 150px);
|
min-height: 400px;
|
}
|
|
.top {
|
overflow-y: scroll;
|
min-height: 40%;
|
}
|
|
.bottom {
|
margin-top: 10px;
|
}
|
|
.el-table__body-wrapper {
|
height: calc(100% - 44px) !important;
|
}
|
</style>
|