<template>
|
<basic-container>
|
<div class="testbox">
|
<div style="margin-top: 10px;display: flex;flex-wrap: wrap;width: 100%;">
|
<el-button size="small" type="primary" plain @click="addvisible=true">增加
|
<FormTemplateDialog
|
:visible.sync="addvisible"
|
:type="add"
|
:templateOid="this.templateOids"
|
:codeClassifyOid="this.codeClassifyOids"
|
:codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp"
|
:rowOid="rowOid"
|
>
|
</FormTemplateDialog></el-button>
|
<el-button size="small" type="primary" plain @click="editvisible=true">编辑
|
<FormTemplateDialog
|
:visible.sync="editvisible"
|
:type="edit"
|
:templateOid="this.templateOids"
|
:codeClassifyOid="this.codeClassifyOids"
|
:codeRuleOid="this.codeRuleOid"
|
:disabledProp="disabledProp"
|
:rowOid="rowOid"
|
></FormTemplateDialog></el-button>
|
<el-button size="small" type="primary" plain>批量导入申请</el-button>
|
<el-button size="small" type="primary" plain>历史数据导入</el-button>
|
<el-button size="small" type="primary" plain>批量申请编码</el-button>
|
<el-button size="small" type="primary" plain>批量发布</el-button>
|
<el-button size="small" type="primary" plain>查看流程历史</el-button>
|
<el-button size="small" type="primary" plain>删除</el-button>
|
<el-button size="small" type="primary" plain>发布</el-button>
|
<el-button size="small" type="primary" plain>数据更改</el-button>
|
<el-button size="small" type="primary" plain>回收</el-button>
|
<el-button size="small" type="primary" plain>导出
|
<transfer filter-placeholder="请输入拼音全拼或者拼音缩写" ></transfer>
|
</el-button>
|
<el-button size="small" type="primary" plain @click="findvisible=true">查询
|
<advancedQuery :visible.sync="findvisible" :options="this.options"></advancedQuery>
|
</el-button>
|
<el-button size="small" type="primary" plain>相似项查询</el-button>
|
<el-button size="small" type="primary" plain style="margin-left: 1px;margin-top:10px">刷新</el-button>
|
<el-input placeholder="请输入关键字按回车查询" style="width: 180px;margin-left: 5px;margin-top:10px" size="small"></el-input>
|
</div>
|
<el-row style="height: 700px;width: 100%">
|
<el-table :data="tableData" style="" @cell-click="handleCellClick" max-height="700" @selection-change="handleSelectionChange" @sort-change="sortChange">
|
<el-table-column
|
type="selection"
|
fixed
|
width="55">
|
</el-table-column>
|
<el-table-column
|
type="index"
|
fixed
|
label="序号"
|
width="55">
|
</el-table-column>
|
<div v-for="(item,index) in this.tableHeadData" :key="index">
|
<el-table-column :label="item.label" :prop="item.prop" :sortable="item.sortable" :width="item.width">
|
<!-- 编辑和展示逻辑 -->
|
<template slot-scope="{ row }">
|
<el-input v-if="editingRow === row && editShow== item.prop" v-model="row[item.prop]" @blur="saveRow"></el-input>
|
<span v-else>{{row[item.prop]}}</span>
|
<el-switch
|
v-if="editShow === 'true'"
|
v-model="row[item.prop]"
|
active-color="#13ce66"
|
inactive-color="#ff4949">
|
</el-switch>
|
</template>
|
</el-table-column>
|
</div>
|
</el-table>
|
</el-row>
|
</div>
|
<div class="block" style="display: flex;justify-content: flex-end">
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="page.currentPage"
|
:page-sizes="page.pageSizes"
|
:page-size="page.pageSizes"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="page.total">
|
</el-pagination>
|
</div>
|
</basic-container>
|
</template>
|
<script>
|
import {MasterTable, TableData} from "@/api/GetItem";
|
export default {
|
name: "Crud.vue",
|
props:{
|
page:{
|
type: Object,
|
default: ()=>{
|
return {}
|
}
|
},
|
codeClassifyOid:{
|
type:String,
|
default:""
|
},
|
coderuleoid:{
|
type:String,
|
default:""
|
},
|
tableDataArray:{
|
type:Array,
|
default:[]
|
}
|
},
|
data() {
|
return {
|
templateOid:"",
|
addvisible:false,
|
editvisible:false,
|
findvisible:false,
|
templateOids: "78B8C7C5-A042-0B96-FE6D-65421451782A",
|
codeClassifyOids: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
|
codeRuleOid: "B95872A6-9CEA-D490-8F1B-9D26548CAF96",
|
rowOid: '6EF696C3-CD87-0E7C-1EA1-8DE3913A95C9',
|
disabledProp: ["id"],
|
editingRow:null,
|
editShow: "",
|
editAttr:"",
|
loading: false,
|
data: [],
|
options:{},
|
option: {
|
column: []
|
},
|
List: [],
|
columnType: {
|
text: "input",
|
combox: "select",
|
truefalse: "switch",
|
number: "number",
|
datetime: "datetime",
|
},
|
tableData:[],
|
tableHeadData:[],
|
items:{},
|
aaa:""
|
}
|
},
|
computed:{
|
},
|
created() {
|
this.CrudHeaderRend();
|
this.$emit('tableData',this.tableData)
|
},
|
mounted() {
|
|
},
|
activated() {
|
this.doLayout()
|
},
|
watch:{
|
codeClassifyOid:{
|
handler(newval,oldval){
|
this.codeClassifyOid=newval;
|
this.CrudHeaderRend()
|
},
|
deep:true
|
},
|
tableDataArray:{
|
handler(newval,oldval){
|
this.tableData=newval;
|
this.CrudRend()
|
}
|
}
|
},
|
methods: {
|
rend(){
|
this.tableData=this.tableHeadData
|
},
|
handleSizeChange(val){
|
this.page.pageSize=val
|
this.$emit('pageSize',val)
|
this.CrudRend()
|
},
|
handleCurrentChange(val){
|
this.page.currentPage=val
|
this.$emit('currentPage',val)
|
this.CrudRend()
|
},
|
// 监听单元格点击事件并存储正在编辑的行
|
handleCellClick(row, column) {
|
this.editingRow = row;
|
this.editShow = column.property;
|
},
|
//删除
|
enumDeleteRow(row) {
|
console.log(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.loading = 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.loading = 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) {
|
console.log(row)
|
}
|
}
|
}
|
</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;
|
}
|
}
|
</style>
|