<template>
|
<basic-container>
|
<div class="testbox">
|
<div>
|
<el-button plain size="small" type="primary" @click="addvisible = true"
|
>增加
|
</el-button>
|
<el-button plain size="small" type="primary" @click="editHandler"
|
>编辑
|
</el-button>
|
<el-button plain size="small" type="primary" @click="openBatchImport('batchImportApply')">批量导入申请</el-button>
|
<el-button plain size="small" type="primary" @click="openBatchImport('historyImport')">历史数据导入</el-button>
|
<el-button plain size="small" type="primary" @click="openBatchImport('batchApplyCode')">批量申请编码</el-button>
|
<el-button plain size="small" type="primary">批量发布</el-button>
|
<el-button plain size="small" type="primary">查看流程历史</el-button>
|
<el-button plain size="small" type="primary">删除</el-button>
|
<el-button plain size="small" type="primary" @click="setHandler"
|
>发布</el-button
|
>
|
<el-button plain size="small" type="primary" @click="DataChange"
|
>数据更改</el-button
|
>
|
<el-button plain size="small" type="primary" @click="huishouHandler"
|
>回收</el-button
|
>
|
<el-button plain size="small" type="primary" @click="openD"
|
>导出
|
</el-button>
|
<el-button plain size="small" type="primary" @click="findHandler"
|
>查询
|
</el-button>
|
<el-button plain size="small" type="primary" @click="similarHandler"
|
>相似项查询</el-button
|
>
|
<el-button plain size="small" type="primary">刷新</el-button>
|
<el-input
|
placeholder="请输入关键字按回车查询"
|
size="small"
|
style="width: 180px; margin-left: 5px; margin-top: 10px"
|
></el-input>
|
</div>
|
<el-row style="height: 700px; width: 100%">
|
<el-table
|
v-loading="isLoading"
|
:data="tableData"
|
max-height="700"
|
style=""
|
@cell-click="handleCellClick"
|
@selection-change="handleSelectionChange"
|
@sort-change="sortChange"
|
v-if="tableData.length != 0"
|
>
|
<el-table-column fixed type="selection" width="55"> </el-table-column>
|
<el-table-column fixed label="序号" type="index" width="55">
|
</el-table-column>
|
<el-table-column
|
v-for="item in this.tableHeadFindData"
|
:key="item.id"
|
:label="item.label"
|
:prop="item.prop"
|
:sortable="item.sortable"
|
:formatter="formatBoolean"
|
:width="item.label.length >=4 ?'150':item.label.length==3 ?'120':'90'"
|
:show-overflow-tooltip="true"
|
align="center"
|
>
|
</el-table-column>
|
</el-table>
|
</el-row>
|
<FormTemplateDialog
|
:codeClassifyOid="this.codeClassifyOid"
|
:codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp"
|
:templateOid="templateOid"
|
type="add"
|
:visible.sync="addvisible"
|
@submit="AddSumbit"
|
>
|
</FormTemplateDialog>
|
<FormTemplateDialog
|
:codeClassifyOid="this.codeClassifyOid"
|
:codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp"
|
:rowOid="rowOid"
|
:templateOid="templateOid"
|
type="edit"
|
:title="'修改编码信息'"
|
:visible.sync="editvisible"
|
@submit="EditSumbit"
|
></FormTemplateDialog>
|
<FormTemplateDialog
|
:codeClassifyOid="this.codeClassifyOid"
|
:codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp"
|
:rowOid="rowOid"
|
:templateOid="templateOid"
|
:type="edit"
|
:title="'已发布数据更改'"
|
:visible.sync="DataVisible"
|
></FormTemplateDialog>
|
<set-personnel
|
:visible.sync="visibleFlow"
|
:parameter="this.parameter"
|
></set-personnel>
|
<advanced-query
|
:options="this.options"
|
:visible.sync="findvisible"
|
@echoContion="echoContion"
|
></advanced-query>
|
<integration-transfer
|
:data="transferData"
|
:props="transferProps"
|
:visible.sync="dialogPush"
|
@save="handelTransferSave"
|
></integration-transfer>
|
<ResembleQueryDialog
|
:visible.sync="similarVisible"
|
:templateOid="templateOid"
|
:codeClassifyOid="codeClassifyOid"
|
:rowOid="rowOid"
|
:codeRuleOid="this.codeRuleOid"
|
></ResembleQueryDialog>
|
</div>
|
<div class="block" style="display: flex; justify-content: flex-end">
|
<el-pagination
|
:current-page="page.currentPage"
|
:page-size="page.pageSizes"
|
:page-sizes="page.pageSizes"
|
:total="page.total"
|
layout="total, sizes, prev, pager, next, jumper"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
>
|
</el-pagination>
|
</div>
|
<BatchImport v-if="batchImportData.visible" :visible.sync="batchImportData.visible" v-bind="batchImportData"></BatchImport>
|
</basic-container>
|
</template>
|
<script>
|
import { MasterTable, TableData, FindData } from "@/api/GetItem";
|
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'
|
export default {
|
components: {
|
integrationTransfer,
|
SetPersonnel,
|
ResembleQueryDialog,
|
BatchImport
|
},
|
name: "Crud.vue",
|
props: {
|
page: {
|
type: Object,
|
default: () => {
|
return {};
|
},
|
},
|
codeClassifyOid: {
|
type: String,
|
default: "",
|
},
|
coderuleoid: {
|
type: String,
|
default: "",
|
},
|
tableDataArray: {
|
type: Array,
|
},
|
total: {
|
type: String,
|
default: "",
|
},
|
templateOid: {
|
type: String,
|
default: "",
|
},
|
tableHeadDataFateher: {
|
type: Array,
|
},
|
isLoading: {
|
type: Boolean,
|
default: false,
|
},
|
tableHeadFindData: {
|
type: Array,
|
},
|
},
|
data() {
|
return {
|
//相似项查询
|
similarVisible: false,
|
//发布
|
parameter: {
|
ids: [],
|
code: "",
|
type: "PUBLIC",
|
template: "",
|
},
|
visibleFlow: false,
|
transferData: [],
|
transferProps: {
|
key: "oid",
|
label: "name",
|
},
|
tableHeadFindDatas: [],
|
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: [],
|
DataVisible: false,
|
tableHeadData: [],
|
items: {},
|
seniorQueryColumns: [],
|
selectRow: [],
|
userName: "",
|
batchImportData: {
|
visible: false,
|
type: '',
|
codeClassifyOid: ''
|
}
|
};
|
},
|
computed: {},
|
created() {},
|
mounted() {},
|
activated() {
|
this.doLayout();
|
},
|
watch: {
|
tableHeadDataFateher:{
|
handler(newval,oldval){
|
this.options=newval.tableDefineVO.seniorQueryColumns
|
}
|
},
|
codeClassifyOid: {
|
handler(newval, oldval) {
|
this.codeClassifyOid = newval;
|
},
|
deep: true,
|
},
|
tableDataArray: {
|
handler(newval, oldval) {
|
this.tableData = newval;
|
},
|
},
|
tableHeadFindData: {
|
handler(newval, oldval) {
|
this.tableHeadFindDatas = newval;
|
},
|
},
|
total: {
|
handler(newval, oldval) {
|
this.page.total = newval;
|
},
|
},
|
templateOid: {
|
handler(newval, oldval) {
|
this.parameter.code = newval;
|
},
|
deep: true,
|
},
|
},
|
methods: {
|
// 转换数据true和false
|
formatBoolean(row, column) {
|
if (column.property === "xiaoshouwl"
|
||column.property === "shifoupihaoguanli"
|
||column.property === "caigouwl"
|
||column.property === "kucunwl"
|
||column.property === "passing") {
|
return row[column.property] =='true'? "是" : "否";
|
}
|
return row[column.property];
|
},
|
// 发布
|
setHandler() {
|
if (this.selectRow.length <= 0) {
|
this.$message.warning("请选择一条数据");
|
} else {
|
this.userName = localStorage.getItem("username");
|
this.parameter.template = this.userName + "-发布" + "[物品]";
|
this.visibleFlow = true;
|
}
|
},
|
openD() {
|
this.getListCodeByClassId();
|
},
|
async getListCodeByClassId() {
|
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;
|
},
|
handleSizeChange(val) {
|
this.isLoading = true;
|
setTimeout(() => {
|
this.page.pageSize = val;
|
this.$emit("pageSize", val);
|
this.CrudRend();
|
}, 3000);
|
},
|
handleCurrentChange(val) {
|
this.isLoading = true;
|
setTimeout(() => {
|
this.page.currentPage = val;
|
this.$emit("currentPage", val);
|
this.CrudRend();
|
}, 3000);
|
},
|
// 监听单元格点击事件并存储正在编辑的行
|
handleCellClick(row, column) {
|
this.editingRow = row;
|
this.editShow = column.property;
|
this.rowOid = row.oid;
|
},
|
//删除
|
enumDeleteRow(row) {
|
this.tableData.splice(row, 1);
|
},
|
// 将正在编辑的行的状态变为 null ,即退出编辑状态
|
saveRow() {
|
this.editingRow = null;
|
},
|
doLayout() {
|
this.$nextTick(() => {
|
this.$refs.crud.doLayout();
|
});
|
},
|
//表格头渲染
|
CrudHeaderRend() {
|
if (this.codeClassifyOid != "") {
|
MasterTable({
|
codeClassifyOid: this.codeClassifyOid,
|
functionId: 5,
|
}).then((res) => {
|
this.options = res.data.tableDefineVO.seniorQueryColumns;
|
this.List = res.data.tableDefineVO.cols[0];
|
this.List.forEach((item) => {
|
let columnItem = {
|
label: item.title,
|
prop: item.field,
|
type: this.columnType[item.type],
|
sortable: item.sort,
|
width: item.minWidth,
|
};
|
this.option.column.push(columnItem);
|
this.option.column = this.tableHeadData;
|
this.templateOid = res.data.tableDefineVO.oid;
|
this.$emit("templateOid", this.templateOid);
|
});
|
});
|
}
|
},
|
//表格数据
|
CrudRend() {
|
TableData({
|
templateOid: this.templateOid,
|
codeClassifyOid: this.codeClassifyOid,
|
page: this.page.currentPage,
|
limit: this.page.pageSize,
|
}).then((res) => {
|
this.page.total = res.data.total;
|
this.data = res.data.data;
|
this.tableData = res.data.data;
|
});
|
},
|
// 排序
|
sortChange(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: val.currentPage,
|
limit: val.pageSize,
|
}).then((res) => {
|
this.data = res.data.data;
|
});
|
},
|
//多选
|
handleSelectionChange(row) {
|
if (this.row) {
|
this.rowOid = row[0].oid;
|
} else {
|
this.rowOid = "";
|
}
|
this.selectRow = row;
|
this.parameter.ids = [];
|
row.forEach((item) => {
|
this.parameter.ids.push(item.oid);
|
});
|
console.log( ' this.parameter.ids',this.parameter.ids)
|
},
|
//编辑
|
editHandler() {
|
if (this.selectRow.length <= 0) {
|
this.$message.warning("请选择一条数据");
|
} else if (this.selectRow.length > 1) {
|
this.$message.warning("只能选择一条数据");
|
} else if (this.selectRow[0].lcstatus != "Editing") {
|
this.$message.warning("编码状态不是“编辑中”,不可编辑");
|
} else {
|
this.editvisible = true;
|
}
|
},
|
//高级查询按钮
|
findHandler() {
|
this.findvisible = true;
|
},
|
// 高级查询
|
echoContion(val) {
|
FindData({
|
templateOid: this.templateOid,
|
codeClassifyOid: this.codeClassifyOid,
|
...val,
|
}).then((res) => {
|
console.log(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;
|
}
|
},
|
//增加保存
|
AddSumbit() {
|
this.addvisible = false;
|
},
|
EditSumbit(val) {
|
this.editvisible = false;
|
},
|
openBatchImport(type) {
|
this.batchImportData.visible = true
|
this.batchImportData.type = type
|
this.batchImportData.codeClassifyOid = this.codeClassifyOid
|
}
|
},
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
.testbox {
|
.el-table--scrollable-x .el-table__body-wrapper {
|
overflow: auto !important;
|
}
|
|
.el-table__fixed-right-patch {
|
background-color: #f5f7fa !important;
|
}
|
}
|
|
/deep/ .el-button {
|
margin: 0 10px 10px 0;
|
}
|
|
|
</style>
|