<template>
|
<div class="class_DataEdit" style="width: 100%; height: 100%;">
|
<div slot="title" class="el-dialog__title">
|
<span>编辑:{{menuObj.name}}</span>
|
<div style="float: right; margin-right: 70px;">
|
<el-button type="primary" @click="dialog_5 = true" :loading="loading_Submit">提交审核</el-button>
|
</div>
|
</div>
|
<div class="z_dialog_top">
|
<el-row>
|
<el-form
|
label-position='left'
|
label-width="90px"
|
:inline="true"
|
:model="formInline_edit"
|
class="demo-form-inline">
|
<el-form-item label="关键词搜索:">
|
<el-col :span="5">
|
<el-select v-model="formInline_edit.field" placeholder="请选择">
|
<el-option
|
v-for="item in options_edit"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
></el-option>
|
</el-select>
|
</el-col>
|
<el-col class="line" :span="1"> </el-col>
|
<el-col :span="8">
|
<el-input v-model="formInline_edit.value" placeholder="请输入" lazy></el-input>
|
</el-col>
|
<el-col class="line" :span="1"> </el-col>
|
<el-col :span="8">
|
<el-button type="primary" @click="query_edit">查 询</el-button>
|
<el-button @click="colse_edit">重 置</el-button>
|
</el-col>
|
</el-form-item>
|
</el-form>
|
</el-row>
|
<el-row>
|
<div style="height: 40px; line-height: 40px;">
|
<el-popover
|
placement="right-start"
|
width="90"
|
trigger="click"
|
>
|
<el-button style="padding: 5px; border: 0px;" @click="dialog_4_1_1 = true">
|
单条新增
|
</el-button>
|
<br/>
|
<el-button style="padding: 5px; border: 0px;" @click="dialog_4_1_2 = true">
|
批量导入
|
</el-button>
|
<br/>
|
<el-button style="padding: 5px; border: 0px;" @click="dialog_4_1_2 = true">
|
重新导入
|
</el-button>
|
<el-button slot="reference" type="primary" size="mini">新 增</el-button>
|
</el-popover>
|
|
<el-button type="primary" size="mini" @click="openEdit_data" style="margin-left: 10px;">编 辑</el-button>
|
<el-button type="primary" size="mini" @click="delete_edit">删 除</el-button>
|
</div>
|
</el-row>
|
</div>
|
<el-table
|
highlight-current-row
|
border
|
@row-click="setActiveTableData"
|
:data="tableData_edit"
|
v-loading="loading_edit"
|
style="width: 100%"
|
ref="dataEdit_table"
|
:height="tableHeight"
|
:header-cell-style="{background:'#FAFAFA', color:'black', 'text-align':'center'}"
|
>
|
<el-table-column
|
v-for="(tableField,k) in tableFields"
|
:key="k"
|
show-overflow-tooltip
|
v-if="tableField.visible && tableField.id"
|
:prop="tableField.field"
|
:label="tableField.alias">
|
</el-table-column>
|
|
<el-table-column property="operate" label="数据状态" :formatter= "operate_"></el-table-column>
|
<el-table-column property="status" label="审批状态" :formatter= "status_"></el-table-column>
|
|
</el-table>
|
<div style="text-align:right;">
|
<el-pagination
|
@size-change="handleSizeChange_edit"
|
@current-change="handleCurrentChange_edit"
|
:current-page="currentPage_edit"
|
:page-sizes="[15, 20, 30, 40]"
|
:page-size="pageSize_edit"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="total_edit">
|
</el-pagination>
|
</div>
|
<el-dialog @close="empty_addTableData" v-loading="loading_add" title="单条新增" width="30%" :visible.sync="dialog_4_1_1" append-to-body destroy-on-close>
|
<div style="width: 100%; height: 300px; overflow: auto;">
|
<el-form :model="addTableData" :rules="rules_check" ref="addtabledata" status-icon label-width="120px">
|
<el-form-item
|
v-for="(tableField,k) in tableFields"
|
:key="k"
|
v-if="tableField.id"
|
:prop="tableField.field"
|
:label="tableField.alias">
|
<el-input v-model="addTableData[tableField.field]" style="width:200px" placeholder="请输入"></el-input>
|
</el-form-item>
|
|
</el-form>
|
</div>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialog_4_1_1 = false">取 消</el-button>
|
<el-button type="primary" @click="tableDataAdd()" :loading="loading_button_add">保 存</el-button>
|
</div>
|
|
</el-dialog>
|
<el-dialog title="批量导入" width="800px" top="50px" :visible.sync="dialog_4_1_2" append-to-body destroy-on-close>
|
<ImportData v-bind:menuData="menuObj" @closeImportData="closeImportData"></ImportData>
|
</el-dialog>
|
|
<el-dialog title="非必填项" width="800px" top="50px" :visible.sync="dialog_5" append-to-body destroy-on-close>
|
<el-form label-width="120px">
|
<el-form-item label="申请描述">
|
<el-input
|
type="textarea"
|
:rows="2"
|
placeholder="100字以内"
|
v-model="desp">
|
</el-input>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialog_5 = false">取 消</el-button>
|
<el-button type="primary" @click="Submit()">提交申请</el-button>
|
</div>
|
</el-dialog>
|
|
<el-dialog title="编辑" width="30%" :visible.sync="dialog_4_2" append-to-body>
|
<div style="width: 100%; height: 300px; overflow: auto;">
|
<el-form label-width="120px">
|
<el-form-item
|
v-for="(tableField,k) in tableFields"
|
:key="k"
|
v-if="tableField.visible && tableField.id"
|
:prop="tableField.field"
|
:label="tableField.alias">
|
<el-input v-model="activeTableData[tableField.field]" style="width:200px" placeholder="请输入"></el-input>
|
</el-form-item>
|
|
<!-- <el-form-item label="代码" prop="code">
|
<el-input v-model="activeTableData.code" style="width:200px" placeholder="请输入代码"></el-input>
|
</el-form-item>
|
<el-form-item label="类型" prop="type">
|
<el-input v-model="activeTableData.type" style="width:200px" placeholder="请输入类型"></el-input>
|
</el-form-item>
|
<el-form-item label="名称" prop="name">
|
<el-input v-model="activeTableData.name" style="width:200px" placeholder="请输入名称"></el-input>
|
</el-form-item> -->
|
</el-form>
|
|
</div>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="dialog_4_2 = false">取 消</el-button>
|
<el-button type="primary" @click="tableDataUpdata()" :loading="loading_button_update">保 存</el-button>
|
</div>
|
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import ImportData from '../dataImport/ImportData'
|
|
export default {
|
name: 'DataEdit',
|
props:{
|
menuObj: {
|
type: Object,
|
required: true
|
}
|
},
|
components:{
|
ImportData
|
},
|
data () {
|
return {
|
tableHeight: 300,
|
currentPage_edit: 1,
|
pageSize_edit: 15,
|
total_edit: 0,
|
loading_Submit: false,
|
dialog_4_1_1: false,
|
dialog_4_1_2: false,
|
dialog_4_2: false,
|
dialog_5: false,
|
desp: "",
|
loading_add: true,
|
loading_edit: true,
|
loading_button_add: false,
|
loading_button_update: false,
|
tableFields: [],
|
tableData_edit: [],
|
addTableData: {},
|
activeTableData:{},
|
maintainId: "",
|
formInline_edit:{
|
field: null,
|
value: null
|
},
|
options_edit: [
|
{
|
value: "code",
|
label: "代码"
|
},
|
{
|
value: "type",
|
label: "类型"
|
},
|
{
|
value: "name",
|
label: "名称"
|
}
|
],
|
rules_check: {
|
type: [
|
{
|
required: true,
|
message: "类型不能为空",
|
trigger: ["change", "blur"]
|
}
|
],
|
name: [
|
{
|
required: true,
|
message: "名称不能为空",
|
trigger: ["change", "blur"]
|
}
|
],
|
code: [
|
{
|
required: true,
|
message: "代码不能为空",
|
trigger: ["change", "blur"]
|
}
|
],
|
ruleName: [
|
{
|
required: true,
|
message: "检查规则不能为空",
|
trigger: ["change", "blur"]
|
}
|
]
|
},
|
}
|
},
|
created() {
|
|
},
|
|
mounted() {//组件配置后,页面显示前。用于加载数据
|
//加载表结构
|
this.getFields_edit();
|
},
|
methods: {
|
getFields_edit() {//加载表字段
|
this.tableFields = null;
|
let me = this;
|
|
// let url = "/api/master/" + this.menuObj.tableName + "/all/1"
|
let url = "/api/field/" + this.menuObj.tableName;
|
this.$axios.get(url).then(data_ => {
|
console.log(data_);
|
me.tableFields = data_.data.data;
|
/* var fields_ = [];
|
var result = data_.data.data;
|
for (let i=0; i< result.length; i++) {
|
var i_obj = {};
|
i_obj.value = result[i].field;
|
i_obj.label = result[i].field;
|
fields_.push(i_obj);
|
}
|
me.options_field = fields_; */
|
me.getData_edit();
|
})
|
.catch(error =>{
|
console.log(error);
|
})
|
},
|
|
/* getFields_edit() {
|
let me = this;
|
let url = "/api/master/" + this.menuObj.tableName + "/all/1"
|
this.$axios.get(url,{
|
params: {
|
pageSize: this.pageSize_edit,
|
version: "max"
|
}
|
}).then(data_ => {
|
console.log(data_);
|
let fields_ =[];
|
fields_ = data_.data.data.fields;
|
for (var i =0; i<fields_.length; i++) {
|
// if(fields_[i].format) {
|
// fields_[i].format = me.eval(fields_[i].format);
|
// }
|
me.tableFields.push(fields_[i]);
|
}
|
|
//加载表数据
|
me.getData_edit();
|
|
})
|
.catch(error =>{
|
console.log(error);
|
})
|
}, */
|
|
getData_edit() {
|
let me = this;
|
let url = "/api/master/" + this.menuObj.tableName + "/all/" + this.currentPage_edit
|
this.$axios.get(url,{
|
// headers: { token: this.$store.state.token },
|
params: {
|
pageSize: this.pageSize_edit,
|
version: "max"
|
}
|
}
|
).then(data_ => {
|
console.log(data_);
|
let header_height = me.$refs.dataEdit_table.$el.getElementsByClassName('el-table__header-wrapper')[0].offsetHeight;
|
me.$refs.dataEdit_table.$el.getElementsByClassName('el-table__body-wrapper')[0].style['height'] = me.tableHeight - header_height + "px";
|
me.$refs.dataEdit_table.$el.getElementsByClassName('el-table__body-wrapper')[0].style['min-height'] = me.tableHeight - header_height + "px";
|
|
|
me.tableData_edit = data_.data.data.grid.record;//给tableData赋值
|
me.total_edit = data_.data.data.grid.total;//给tableData赋值
|
me.maintainId = data_.data.data.maintainId;
|
me.loading_edit = false;
|
})
|
.catch(error =>{
|
console.log(error);
|
})
|
},
|
|
setActiveTableData(currentRow, oldCurrentRow) {
|
/* if (!currentRow) {
|
this.activeTableData = {};
|
return;
|
}
|
this.activeTableData.code = currentRow.code;
|
this.activeTableData.create_time = currentRow.create_time;
|
this.activeTableData.deal = currentRow.deal;
|
this.activeTableData.id = currentRow.id;
|
this.activeTableData.name = currentRow.name;
|
this.activeTableData.operate = currentRow.operate;
|
this.activeTableData.parent_id = currentRow.parent_id;
|
this.activeTableData.pre_merge_id = currentRow.pre_merge_id;
|
this.activeTableData.type = currentRow.type; */
|
|
this.activeTableData = currentRow;
|
},
|
|
Submit() {
|
this.dialog_5 = false;
|
this.loading_Submit = true;
|
let aa = this.maintainId;
|
let url = "/api/act/start/process";
|
this.$axios.get(url,{
|
params: {
|
businessId: this.maintainId,
|
desp: this.desp
|
}
|
}).then(data_ => {
|
console.log(data_);
|
this.alert2_("当前流程正在审批");
|
})
|
.catch(error =>{
|
console.log(error);
|
});
|
},
|
|
query_edit() {
|
this.loading_edit = true;
|
var whereSegment_ = null;
|
if (this.formInline_edit.field && this.formInline_edit.value) {
|
whereSegment_ = encodeURI (this.formInline_edit.field + " LIKE '%" + this.formInline_edit.value + "%'", "utf-8");
|
}
|
|
let url = "/api/master/" + this.menuObj.tableName + "/all/" + this.currentPage_edit
|
this.$axios.get(url,{
|
/* headers: {
|
token: this.$store.state.token
|
}, */
|
params: {
|
pageSize: this.pageSize_edit,
|
version: "max",
|
whereSegment: whereSegment_
|
},
|
}
|
).then(data_ => {
|
console.log(data_);
|
if (!data_.data.data.grid || !data_.data.data) {
|
this.tableData_edit = [];
|
this.currentPage_edit = 1;
|
this.total_edit = 0;
|
}else {
|
this.tableData_edit = data_.data.data.grid.record;//给tableData赋值
|
this.total_edit = data_.data.data.grid.total;//给tableData赋值
|
this.currentPage_edit = 1;
|
this.maintainId = data_.data.data.maintainId;
|
}
|
this.loading_edit = false;
|
})
|
.catch(error =>{
|
console.log(error);
|
this.loading_edit = false;
|
this.tableData_edit = [];
|
this.currentPage_edit = 1;
|
this.total_edit = 0;
|
|
// this.formInline_edit.field = null;
|
// this.formInline_edit.value = null;
|
})
|
},
|
|
colse_edit() {
|
this.formInline_edit = {};
|
},
|
|
delete_edit() {
|
let table_data = this.activeTableData;
|
if (!table_data.id) {
|
this.alert_("请选择要删除的数据");
|
return;
|
}
|
if (table_data.status === "working") {
|
this.alert_("该数据正在审批中不可删除");
|
return;
|
}
|
let url = "/api/master/" + this.menuObj.tableName + "/delete";
|
/* this.$axios.get(url)
|
.then(data_ => {
|
console.log(data_);
|
|
this.getData_edit();
|
})
|
.catch(error =>{
|
console.log(error);
|
}); */
|
let datas = "?datas=" + encodeURI(table_data.id);
|
this.$axios.post(url + datas
|
).then(data_ => {
|
console.log(data_);
|
|
this.query_edit();
|
})
|
.catch(error =>{
|
console.log(error);
|
});
|
|
},
|
openEdit_data() {
|
if (!this.activeTableData.id) {
|
this.alert_("请选择要编辑的数据");
|
return;
|
}
|
if (this.activeTableData.status) {
|
this.alert_("该数据已锁定不可编辑");
|
return;
|
}
|
|
this.dialog_4_2 = true;
|
},
|
|
handleSizeChange_edit(val) {
|
this.pageSize_edit = val;
|
this.query_edit();
|
},
|
handleCurrentChange_edit(val) {
|
this.currentPage_edit = val;
|
this.query_edit();
|
},
|
|
tableDataAdd() {
|
this.loading_button_add = true;
|
let table_data = this.addTableData;
|
|
let fields_ = "std_id;deal";
|
for(var p in table_data){
|
if(p == "status" || p == "operate"){
|
|
}
|
else {
|
if (fields_ != "") {
|
fields_ +=";" + p;
|
}
|
else fields_ = p;
|
}
|
}
|
|
let url = "/api/master/" + this.menuObj.tableName + "/add";
|
let datas = "?datas=" + encodeURI(JSON.stringify(table_data)) + "&fields=" + fields_;
|
this.$axios.post(url + datas
|
).then(data_ => {
|
console.log(data_);
|
|
this.loading_button_add = false;
|
this.dialog_4_1_1 = false;
|
this.query_edit();
|
})
|
.catch(error =>{
|
console.log(error);
|
});
|
},
|
|
empty_addTableData() {
|
this.loading_button_add = false;
|
this.addTableData = {};
|
},
|
|
tableDataUpdata() {
|
this.loading_button_update = true;
|
let table_data = this.activeTableData;
|
// table_data.aa = [{id: "001", name: "za"},{id: "002", name: "zssd"}];
|
let me = this;
|
|
let fields_ = "std_id;deal";
|
for(var p in table_data){
|
if(p == "status" || p == "operate"){
|
|
}
|
else {
|
if (fields_ != "") {
|
fields_ +=";" + p;
|
}
|
else fields_ = p;
|
}
|
}
|
|
let url = "/api/master/" + this.menuObj.tableName + "/update";
|
let datas = "?datas=" + encodeURI(JSON.stringify(table_data)) + "&fields=" + fields_;
|
/* let datas = this.$qs.stringify(table_data);
|
|
this.$axios.post(url, datas,
|
{headers: {'Content-Type': 'application/x-www-form-urlencoded'}}
|
).then(data_ => {
|
console.log(data_);
|
me.loading_button_update = false;
|
me.dialog_4_2 = false;
|
me.getData_edit();
|
})
|
.catch(error =>{
|
console.log(error);
|
}); */
|
|
|
this.$axios.post(url + datas
|
).then(data_ => {
|
console.log(data_);
|
me.loading_button_update = false;
|
me.dialog_4_2 = false;
|
me.query_edit();
|
})
|
.catch(error =>{
|
console.log(error);
|
});
|
},
|
|
operate_(row, column, cellValue, index) {
|
if(cellValue === "create") {
|
return "新增数据";
|
}
|
else if(cellValue === "delete") {
|
return "删除数据";
|
}
|
else if(cellValue === "update") {
|
return "修改数据";
|
}
|
else "";
|
},
|
|
status_(row, column, cellValue, index) {
|
if (cellValue == "working"){
|
return "正在审批";
|
}
|
else if(cellValue == "refuse") {
|
return "待修改";
|
}
|
else if(cellValue == "open") {
|
return "申请成功";
|
}
|
else if(cellValue == "close") {
|
return "撤销申请";
|
}
|
return "";
|
},
|
|
closeImportData() {
|
this.dialog_4_1_2 = false;
|
},
|
|
alert_(txt) {
|
this.$alert(txt, '消息提醒', {
|
confirmButtonText: '确定',
|
callback: action => {
|
|
}
|
});
|
},
|
alert2_(txt) {
|
this.$alert(txt, '消息提醒', {
|
confirmButtonText: '确定',
|
callback: action => {
|
this.loading_Submit = false;
|
this.$emit('closeDialog', true);
|
}
|
});
|
},
|
|
}
|
}
|
</script>
|
|
<style>
|
.class_DataEdit .z_dialog_top {
|
margin-top: 20px;
|
}
|
|
.class_DataEdit .el-table__body-wrapper{
|
}
|
</style>
|