<template>
|
<div class="logLog_box">
|
<My-bread :list="[
|
`${$t('synthesis.synthesis')}`,
|
`${$t('synthesis.dataApplication')}`,
|
]"></My-bread>
|
<el-divider />
|
<div class="inquire">
|
<el-form
|
:inline="true"
|
ref="sizeForm"
|
:model="sizeForm"
|
>
|
<el-form-item
|
prop="uname"
|
:label="$t('operatManage.operationLogObj.username')"
|
>
|
<el-input
|
v-model="sizeForm.uname"
|
:placeholder="$t('operatManage.operationLogObj.pleaseInput')"
|
/>
|
</el-form-item>
|
<el-form-item
|
prop="status"
|
:label="$t('operatManage.operationLogObj.status')"
|
>
|
<el-select
|
v-model="sizeForm.status"
|
:placeholder="$t('operatManage.operationLogObj.pleaseSelect')"
|
>
|
<el-option
|
:label="$t('dataApply.type1')"
|
value="-10"
|
/>
|
<el-option
|
:label="$t('dataApply.type2')"
|
value="-1"
|
/>
|
<el-option
|
:label="$t('dataApply.type3')"
|
value="0"
|
/>
|
<el-option
|
:label="$t('dataApply.type4')"
|
value="-9"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
prop="start"
|
:label="$t('operatManage.operationLogObj.startTime')"
|
>
|
<el-date-picker
|
format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
v-model="sizeForm.start"
|
style="width: 100%"
|
type="datetime"
|
:placeholder="$t('operatManage.operationLogObj.optionDate')"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item
|
prop="end"
|
:label="$t('operatManage.operationLogObj.endTime')"
|
>
|
<el-date-picker
|
format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
v-model="sizeForm.end"
|
style="width: 100%"
|
type="datetime"
|
:placeholder="$t('operatManage.operationLogObj.optionDate')"
|
>
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item>
|
<el-button
|
@click="onSubmit"
|
icon="el-icon-search"
|
style="background: #409eff; border: 1px solid #409eff; color: white"
|
>{{ $t("operatManage.operationLogObj.inquire") }}</el-button>
|
<el-button
|
@click="resAllTable"
|
icon="el-icon-delete"
|
type="info"
|
>{{ $t("operatManage.operationLogObj.empty") }}</el-button>
|
</el-form-item>
|
</el-form>
|
</div>
|
<div class="table_box">
|
<el-table
|
:data="tableData"
|
style="width: 100%"
|
|
>
|
|
<el-table-column
|
align="center"
|
type="index"
|
:label="$t('operatManage.ELM.index')"
|
width="70px"
|
/>
|
|
<el-table-column
|
align="center"
|
prop="descr"
|
:label="$t('dataApply.descr')"
|
/>
|
<el-table-column
|
align="center"
|
prop="uname"
|
:label="$t('dataApply.uname')"
|
/>
|
|
<el-table-column
|
align="center"
|
prop="createTime"
|
:label="$t('dataApply.careatetime')"
|
:formatter="formatData"
|
/>
|
<el-table-column
|
align="center"
|
prop="status"
|
:label="$t('dataApply.status')"
|
:formatter="formatStatus"
|
/>
|
|
<el-table-column
|
min-width="150"
|
:label="$t('common.operate')"
|
>
|
<template slot-scope="scope">
|
<el-button
|
type="danger"
|
size="mini"
|
@click="handleApplyCancel(scope.$index, scope.row)"
|
v-if="matchState(scope,/[]/)"
|
plain
|
>{{$t('dataApply.type1')}}</el-button>
|
<el-button
|
type="warning"
|
size="mini"
|
@click="handleReApply(scope.$index, scope.row)"
|
v-if="matchState1(scope,/[]/)"
|
plain
|
>{{$t('dataApply.ReApply')}}</el-button>
|
<el-button
|
type="info"
|
size="mini"
|
plain
|
@click="handlDetails(scope.$index, scope.row)"
|
>{{$t('dataApply.details')}}</el-button>
|
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<div
|
style="margin-top: 40px"
|
class="pagination_box"
|
>
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="listData.pageIndex"
|
:page-sizes="[10, 20, 30, 40]"
|
:page-size="listData.pageSize"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="count"
|
>
|
</el-pagination>
|
</div>
|
</div>
|
<el-dialog
|
:title="$t('dataApply.details')"
|
:visible.sync="dialogDetailsVisible"
|
width="50%"
|
:before-close="handleClose"
|
>
|
<div>
|
|
<el-form
|
:inline="true"
|
:model="detailsFrom"
|
class="demo-form-inline"
|
>
|
<el-form-item label="表名:">
|
<div class="statusLabel">{{detailsFrom.tabs}}</div>
|
</el-form-item><br />
|
<el-form-item label="申请人:">
|
<div class="statusLabel">{{detailsFrom.uname}}</div>
|
</el-form-item>
|
<el-form-item label="申请时间:">
|
<div class="statusLabel">{{detailsFrom.time}}</div>
|
</el-form-item>
|
<el-form-item label="状态:">
|
<div class="statusLabel">{{detailsFrom.status}}</div>
|
</el-form-item>
|
</el-form>
|
<el-table
|
:data="detailsFrom.tableData"
|
style="width: 100%"
|
>
|
<el-table-column
|
align="center"
|
type="index"
|
:label="$t('operatManage.ELM.index')"
|
width="70px"
|
/>
|
<el-table-column
|
align="center"
|
prop="depName"
|
label="单位"
|
/>
|
<el-table-column
|
align="center"
|
prop="uname"
|
label="申请人"
|
/>
|
<el-table-column
|
align="center"
|
prop="uname"
|
label="描述"
|
>
|
<template slot-scope="scope">
|
<el-input
|
type="textarea"
|
placeholder="请输入内容"
|
v-model="scope.row.descr"
|
maxlength="50"
|
show-word-limit
|
>
|
</el-input>
|
</template>
|
|
</el-table-column>
|
<el-table-column
|
align="center"
|
prop="status"
|
label="状态"
|
/>
|
<el-table-column
|
min-width="150"
|
:label="$t('common.operate')"
|
>
|
<template slot-scope="scope">
|
|
<el-button
|
v-if="scope.row.status == 0"
|
type="danger"
|
size="mini"
|
@click="handleApplyRepulse(scope.$index, scope.row)"
|
plain
|
>打回</el-button>
|
|
<el-button
|
v-if="scope.row.status == 0"
|
@click="handleApplyAdopt(scope.$index, scope.row)"
|
type="success"
|
size="mini"
|
plain
|
>通过</el-button>
|
|
</template>
|
</el-table-column>
|
</el-table>
|
</div>
|
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import MyBread from "../../components/MyBread.vue";
|
import {
|
apply_selectByPage,
|
apply_selectFlows,
|
apply_updateForDiscard,
|
apply_updateForSubmit,
|
apply_updateForReject,
|
apply_updateForResubmit
|
} from "../../api/api";
|
export default {
|
//import引入的组件需要注入到对象中才能使用
|
components: {
|
MyBread,
|
},
|
|
data() {
|
return {
|
detailsFrom: {},
|
dialogDetailsVisible: false,
|
sizeForm: {
|
start: null,
|
end: null,
|
uname: null,
|
status: null,
|
},
|
tableData: [],
|
listData: {
|
pageIndex: 1,
|
pageSize: 10,
|
start: null,
|
end: null,
|
uname: null,
|
status: null
|
},
|
count: 0,
|
detailsId: null,
|
};
|
},
|
methods: {
|
async handleApplyRepulse(index, row) {
|
const data = await apply_updateForReject({ flowId: row.id });
|
if (data.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
this.showRestData();
|
},
|
async handleApplyAdopt(index, row) {
|
|
const data = await apply_updateForSubmit({ flowId: row.id });
|
if (data.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
this.showRestData();
|
},
|
async showRestData() {
|
const data1 = await apply_selectFlows({
|
applyid:
|
this.detailsId
|
})
|
if (data1.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
this.detailsFrom.tableData = data.result;
|
},
|
async handleReApply(index, row) {
|
const data = await apply_updateForResubmit({ applyid: row.id });
|
if (data.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
this.listData.pageIndex = 1;
|
this.listData.pageSize = 10;
|
this.getAllData();
|
},
|
async handleApplyCancel(index, row) {
|
const data = await apply_updateForDiscard({ applyid: row.id });
|
if (data.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
this.listData.pageIndex = 1;
|
this.listData.pageSize = 10;
|
this.getAllData();
|
},
|
async handlDetails(index, row) {
|
|
this.detailsId = row.id;
|
const data = await apply_selectFlows({ applyid: row.id })
|
if (data.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
this.detailsFrom.tableData = data.result;
|
this.detailsFrom.tabs = row.tabs;
|
this.detailsFrom.uname = row.uname;
|
this.detailsFrom.time = this.format(row.createTime);
|
this.detailsFrom.status = this.statusFormat(row.status);
|
console.log(data.result)
|
this.dialogDetailsVisible = true;
|
|
},
|
matchState(state = '', reg) {
|
var row = state.row;
|
if (row.status >= -1 && row.status <= 9 && this.$store.state.uname == row.uname) {
|
return true
|
}
|
return false
|
},
|
matchState1(state = '', reg) {
|
var row = state.row;
|
if (row.status == -1 && this.$store.state.uname == row.uname) {
|
return true
|
}
|
return false
|
},
|
add0(m) {
|
return m < 10 ? "0" + m : m;
|
},
|
//格式化时间
|
format(shijianchuo) {
|
//shijianchuo是整数,否则要parseInt转换
|
var time = new Date(shijianchuo);
|
var y = time.getFullYear();
|
var m = time.getMonth() + 1;
|
var d = time.getDate();
|
var h = time.getHours();
|
var mm = time.getMinutes();
|
var s = time.getSeconds();
|
return (
|
y + "-" + this.add0(m) + "-" + this.add0(d) +
|
" " +
|
this.add0(h) +
|
":" +
|
this.add0(mm) +
|
":" +
|
this.add0(s)
|
);
|
},
|
//格式化列表
|
formatData(row, column) {
|
let data = row[column.property];
|
if (data == null) {
|
return data;
|
}
|
return this.format(data);
|
},
|
formatStatus(row, column) {
|
let data = row[column.property];
|
if (data == null) {
|
return data;
|
}
|
return this.statusFormat(data);
|
},
|
statusFormat(res) {
|
if (res >= 0 && res <= 9) {
|
return "审核中"
|
} else if (res == -10) {
|
return "退回"
|
} else if (res == -1) {
|
return "打回"
|
} else if (res == -1) {
|
return "退回"
|
}
|
},
|
resAllTable() {
|
this.listData = {
|
pageIndex: 1,
|
pageSize: 10,
|
start: null,
|
end: null,
|
uname: null,
|
type: null
|
}
|
this.sizeForm = {
|
start: null,
|
end: null,
|
uname: null,
|
status: null,
|
}
|
this.getAllData();
|
},
|
onSubmit() {
|
this.listData.end = this.sizeForm.end;
|
this.listData.start = this.sizeForm.start;
|
this.listData.status = this.sizeForm.status;
|
this.listData.uname = this.sizeForm.uname
|
this.getAllData();
|
},
|
|
handleSizeChange(val) {
|
this.listData.pageSize = val;
|
this.listData.pageIndex = 1;
|
this.getAllData();
|
},
|
handleCurrentChange(val) {
|
this.listData.pageIndex = val;
|
this.getAllData();
|
},
|
async getAllData() {
|
const data = await apply_selectByPage(this.listData);
|
if (data.code != 200) {
|
return this.$message.error("列表调用失败");
|
}
|
|
this.tableData = data.result;
|
this.count = data.count;
|
}
|
},
|
created() {
|
this.getAllData();
|
},
|
};
|
</script>
|
<style lang="less" scoped>
|
//@import url(); 引入公共css类
|
.logLog_box {
|
width: 100%;
|
padding: 10px;
|
height: 100%;
|
|
box-sizing: border-box;
|
.el-input {
|
width: 300px;
|
}
|
.inquire {
|
overflow: auto;
|
padding: 10px;
|
margin-top: 20px;
|
|
border-radius: 5px;
|
border: 1px solid rgb(202, 201, 204);
|
margin-bottom: 20px;
|
.el-form-item {
|
margin: 7px;
|
}
|
/deep/.el-form-item__label {
|
color: white;
|
}
|
/deep/ .el-input__inner {
|
background-color: transparent !important;
|
border: 1px solid;
|
color: white;
|
}
|
}
|
.statusLabel {
|
color: white;
|
padding: 0px 5px;
|
font-size: 14px;
|
}
|
.table_box {
|
overflow: auto;
|
height: 70%;
|
padding: 10px;
|
height: auto;
|
border-radius: 5px;
|
|
|
/*修改table 表体的背景颜色和文字颜色*/
|
|
.pagination_box {
|
/deep/.el-input__inner {
|
background-color: transparent !important;
|
border: 1px solid;
|
color: white;
|
}
|
/deep/.el-pagination__total {
|
color: white;
|
}
|
/deep/.el-pagination__jump {
|
color: white;
|
}
|
/deep/.el-pager li.active {
|
color: #1890ff;
|
}
|
/deep/.el-pager li {
|
color: white;
|
background: transparent;
|
}
|
/deep/.el-pager li {
|
color: white;
|
}
|
/deep/.btn-prev {
|
background: transparent;
|
}
|
/deep/.btn-next {
|
background: transparent;
|
}
|
}
|
}
|
.text-center {
|
text-align: center;
|
}
|
}
|
/deep/ .el-select .el-input__inner {
|
border-color: #fff !important;
|
}
|
|
/deep/.el-form-item__label {
|
color: white;
|
}
|
// 设置输入框的背景色、字体颜色、边框属性设置;
|
/deep/.el-input__inner {
|
background-color: transparent !important ;
|
color: #fff;
|
border: 1px solid;
|
}
|
/deep/ .el-dialog {
|
background: #303030;
|
}
|
/deep/.el-range-editor.is-active,
|
.el-range-editor.is-active:hover,
|
.el-select .el-input.is-focus .el-input__inner {
|
border: 1px solid;
|
}
|
/deep/.el-dialog__title {
|
color: white;
|
}
|
/deep/ .el-table {
|
background-color: transparent;
|
|
th,
|
td {
|
background-color: transparent;
|
}
|
.el-table__expanded-cell {
|
background-color: transparent !important;
|
}
|
|
// 表头背景色
|
th.el-table__cell {
|
background-color: #303030;
|
color: #fff;
|
}
|
tr > td {
|
background-color: #303030;
|
color: #fff;
|
}
|
|
// hover效果
|
tr:hover > td {
|
background-color: rgba(255, 255, 255, 0.3) !important;
|
}
|
|
tbody tr:hover {
|
background-color: rgba(255, 255, 255, 0.3) !important;
|
// text-align: center;
|
}
|
|
// 滚动条宽高
|
.el-table__body-wrapper::-webkit-scrollbar {
|
width: 5px;
|
height: 5px;
|
}
|
|
.el-table__body-wrapper::-webkit-scrollbar {
|
width: 5px;
|
/*滚动条宽度*/
|
height: 10px;
|
/*滚动条高度*/
|
}
|
/*定义滚动条轨道 内阴影+圆角*/
|
.el-table__body-wrapper::-webkit-scrollbar-track {
|
box-shadow: 0px 1px 3px #216fe6 inset;
|
/*滚动条的背景区域的内阴影*/
|
border-radius: 10px;
|
}
|
|
/*定义滑块 内阴影+圆角*/
|
.el-table__body-wrapper::-webkit-scrollbar-thumb {
|
box-shadow: 0px 1px 3px #216fe6 inset;
|
border-radius: 6px;
|
background-color: #216fe6;
|
}
|
}
|
/deep/.el-textarea__inner {
|
background: transparent !important;
|
border-color: #fff !important;
|
color: white;
|
}
|
/deep/.el-textarea .el-input__count {
|
background: transparent;
|
}
|
</style>
|