样式修改

qianlishi 3 years ago
parent 3696987176
commit 01f4f2ada8

@ -302,10 +302,10 @@ a:hover {
font-weight: normal !important; font-weight: normal !important;
} }
} }
.el-form-item__label { // .el-form-item__label {
line-height: 30px !important; // line-height: 30px !important;
height: 30px; // height: 30px;
} // }
// .el-form-item__content { // .el-form-item__content {
// line-height: 30px !important; // line-height: 30px !important;
// height: 30px; // height: 30px;

@ -6,227 +6,210 @@
!--> !-->
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" <el-form ref="form" :model="params" :rules="rules" label-width="120px">
:model="params"
:rules="rules"
label-width="120px">
<!-- 搜索 --> <!-- 搜索 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="6" :xl="4">
:sm="20"
:md="12"
:lg="6"
:xl="4">
<el-form-item label="数据源名称"> <el-form-item label="数据源名称">
<el-input v-model.trim="params.sourceName" <el-input
v-model.trim="params.sourceName"
size="mini" size="mini"
clearable clearable
placeholder="数据源名称" placeholder="数据源名称"
class="filter-item" class="filter-item"
@keyup.enter.native="crud.toQuery" /> @keyup.enter.native="crud.toQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="6" :xl="4">
:sm="20"
:md="12"
:lg="6"
:xl="4">
<el-form-item label="数据源编码"> <el-form-item label="数据源编码">
<el-input v-model.trim="params.sourceCode" <el-input
v-model.trim="params.sourceCode"
size="mini" size="mini"
clearable clearable
placeholder="数据源Code" placeholder="数据源Code"
class="filter-item" class="filter-item"
@keyup.enter.native="crud.toQuery" /> @keyup.enter.native="crud.toQuery"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="6" :xl="4" class="query">
:sm="20" <el-form-item label="数据源类型" size="mini">
:md="12" <Dictionary
:lg="6" v-model="params.sourceType"
:xl="4">
<el-form-item label="数据源类型"
size="mini">
<Dictionary v-model="params.sourceType"
:updata-dict="params.sourceType" :updata-dict="params.sourceType"
:dict-key="'SOURCE_TYPE'" /> :dict-key="'SOURCE_TYPE'"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="4" :lg="4" :xl="4" class="query">
:sm="20" <el-button type="primary" size="mini" @click="search('form')"
:md="4" >查询</el-button
:lg="4" >
:xl="4"> <el-button type="danger" size="mini" @click="reset('form')"
<el-button type="primary" >重置</el-button
size="mini" >
@click="search('form')">查询</el-button>
<el-button type="danger"
size="mini"
@click="reset('form')">重置</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-button type="primary" <el-button
type="primary"
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="showAddLogModel()">新增</el-button> @click="showAddLogModel()"
>新增</el-button
>
<!--表格渲染--> <!--表格渲染-->
<el-table v-loading="listLoading" <el-table
v-loading="listLoading"
border border
:data="list" :data="list"
class="mt10" class="mt10"
element-loading-text="Loading" element-loading-text="Loading"
style="width: 100%"> style="width: 100%"
<el-table-column align="center" >
<el-table-column
align="center"
label="序号" label="序号"
type="index" type="index"
min-width="40" /> min-width="40"
<el-table-column prop="sourceType" />
label="数据源类型" /> <el-table-column prop="sourceType" label="数据源类型" />
<el-table-column prop="sourceNameCode" <el-table-column prop="sourceNameCode" label="数据源名称[编码]" />
label="数据源名称[编码]" /> <el-table-column prop="sourceDesc" label="数据源描述" />
<el-table-column prop="sourceDesc" <el-table-column prop="createBy" label="创建人" width="100" />
label="数据源描述" /> <el-table-column prop="createTime" label="创建时间" width="140" />
<el-table-column prop="createBy" <el-table-column prop="updateBy" label="修改人" width="100" />
label="创建人" <el-table-column prop="updateTime" label="修改时间" width="140" />
width="100" /> <el-table-column label="操作" width="120px" align="center">
<el-table-column prop="createTime"
label="创建时间"
width="140" />
<el-table-column prop="updateBy"
label="修改人"
width="100" />
<el-table-column prop="updateTime"
label="修改时间"
width="140" />
<el-table-column label="操作"
width="120px"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text" @click="showAddLogModel(scope.row)"
@click="showAddLogModel(scope.row)">编辑</el-button> >编辑</el-button
>
<!-- <el-popconfirm :title="'确定删除' + scope.row.sourceNameCode + '吗?'" <!-- <el-popconfirm :title="'确定删除' + scope.row.sourceNameCode + '吗?'"
@onConfirm="delData(scope.row)"> --> @onConfirm="delData(scope.row)"> -->
<el-button slot="reference" <el-button slot="reference" @click="delData(scope.row)" type="text"
@click="delData(scope.row)" >删除</el-button
type="text">删除</el-button> >
<!-- </el-popconfirm> --> <!-- </el-popconfirm> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="block"> <div class="block">
<el-pagination :total="totalCount" <el-pagination
:total="totalCount"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:page-size="params.pageSize" :page-size="params.pageSize"
:current-page="params.pageNumber" :current-page="params.pageNumber"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" /> @current-change="handleCurrentChange"
/>
</div> </div>
<!--表单组件--> <!--表单组件-->
<el-dialog title="项目基础配置" <el-dialog
title="项目基础配置"
width="50%" width="50%"
:close-on-click-modal="false" :close-on-click-modal="false"
center center
:visible.sync="basicDialog" :visible.sync="basicDialog"
@close="closeDialog"> @close="closeDialog"
<el-form ref="userForm" >
<el-form
ref="userForm"
:model="dialogForm" :model="dialogForm"
:rules="rules" :rules="rules"
size="small" size="small"
label-width="100px"> label-width="100px"
>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="6" :lg="6" :xl="6">
:sm="20" <el-form-item label="数据源类型" prop="sourceType">
:md="6" <el-select
:lg="6" v-model.trim="dialogForm.sourceType"
:xl="6">
<el-form-item label="数据源类型"
prop="sourceType">
<el-select v-model.trim="dialogForm.sourceType"
placeholder="请选择" placeholder="请选择"
clearable clearable
@change="selectChange"> @change="selectChange"
<el-option v-for="item in dictionaryOptions" >
<el-option
v-for="item in dictionaryOptions"
:key="item.id" :key="item.id"
:label="item.text" :label="item.text"
:value="item.id" /> :value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="7" :lg="7" :xl="7">
:sm="20" <el-form-item label="数据源编码" prop="sourceCode">
:md="7" <el-input
:lg="7" :disabled="updataDisabled"
:xl="7"> v-model.trim="dialogForm.sourceCode"
<el-form-item label="数据源编码" />
prop="sourceCode"
>
<el-input :disabled="updataDisabled" v-model.trim="dialogForm.sourceCode" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="7" :lg="7" :xl="7">
:sm="20" <el-form-item label="数据源名称" prop="sourceName">
:md="7"
:lg="7"
:xl="7">
<el-form-item label="数据源名称"
prop="sourceName">
<el-input v-model.trim="dialogForm.sourceName" /> <el-input v-model.trim="dialogForm.sourceName" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="20" :lg="20" :xl="20">
:sm="20"
:md="20"
:lg="20"
:xl="20">
<el-form-item label="数据源描述"> <el-form-item label="数据源描述">
<el-input v-model.trim="dialogForm.sourceDesc" <el-input
v-model.trim="dialogForm.sourceDesc"
type="textarea" type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }" /> :autosize="{ minRows: 2, maxRows: 4 }"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col v-for="(data, index) in dataLink" <el-col
v-for="(data, index) in dataLink"
:key="index" :key="index"
:xs="24" :xs="24"
:sm="20" :sm="20"
:md="20" :md="20"
:lg="20" :lg="20"
:xl="20"> :xl="20"
>
<el-form-item :label="data.labelValue"> <el-form-item :label="data.labelValue">
<el-input v-model.trim="data.value" /> <el-input v-model.trim="data.value" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" <div slot="footer" class="dialog-footer">
class="dialog-footer">
<el-button @click="closeDialog"></el-button> <el-button @click="closeDialog"></el-button>
<el-button type="warning" <el-button type="warning" @click="test"></el-button>
@click="test">测试</el-button> <el-button type="primary" @click="UserConfirm('userForm')"
<el-button type="primary" >确定</el-button
@click="UserConfirm('userForm')">确定</el-button> >
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { pageList, testConnection, addDataSource, editDataSource, deleteDataSource } from '@/api/report' import {
import { getDictList } from '@/api/dict-data' // pageList,
import Dictionary from '@/components/Dictionary/index' testConnection,
addDataSource,
editDataSource,
deleteDataSource
} from "@/api/report";
import { getDictList } from "@/api/dict-data"; //
import Dictionary from "@/components/Dictionary/index";
export default { export default {
name: 'Support', name: "Support",
components: { Dictionary }, components: { Dictionary },
data () { data() {
return { return {
dictionaryOptions: [], // dictionaryOptions: [], //
selectedList: [], selectedList: [],
clickType: '', clickType: "",
formData: {}, formData: {},
list: null, list: null,
totalCount: 0, totalCount: 0,
@ -236,201 +219,206 @@ export default {
dialogFormVisible: false, dialogFormVisible: false,
basicDialog: false, basicDialog: false,
params: { params: {
sourceName: '', sourceName: "",
sourceCode: '', sourceCode: "",
sourceType: '', sourceType: "",
pageNumber: 1, pageNumber: 1,
pageSize: 10, pageSize: 10,
order: 'DESC', order: "DESC",
sort: 'update_time', sort: "update_time"
}, },
dialogForm: { dialogForm: {
sourceName: '', sourceName: "",
sourceCode: '', sourceCode: "",
sourceType: '', sourceType: "",
sourceDesc: '', sourceDesc: "",
sourceConfig: '', sourceConfig: ""
}, },
dataLink: [], dataLink: [],
rules: { rules: {
sourceType: [{ required: true, message: '数据集名称必选', trigger: 'change' }], sourceType: [
sourceCode: [{ required: true, message: '数据集编码必填', trigger: 'blur' }], { required: true, message: "数据集名称必选", trigger: "change" }
sourceName: [{ required: true, message: '数据源名称必选', trigger: 'blur' }], ],
sourceCode: [
{ required: true, message: "数据集编码必填", trigger: "blur" }
],
sourceName: [
{ required: true, message: "数据源名称必选", trigger: "blur" }
]
}, },
value: '', value: "",
updataDisabled: false, updataDisabled: false,
testReplyCode: null testReplyCode: null
} };
}, },
watch: {}, watch: {},
// beforeCreatethis // beforeCreatethis
beforeCreate: function () { }, beforeCreate: function() {},
mounted () { }, mounted() {},
created () { created() {
this.getSystem() this.getSystem();
this.queryByPage() this.queryByPage();
}, },
methods: { methods: {
// //
search () { search() {
this.params.pageNumber = 1 this.params.pageNumber = 1;
this.queryByPage() this.queryByPage();
}, },
// //
reset (formName) { reset(formName) {
// this.$refs[formName].resetFields() // this.$refs[formName].resetFields()
this.params.sourceName = '' this.params.sourceName = "";
this.params.sourceCode = '' this.params.sourceCode = "";
this.params.pageNumber = 1 this.params.pageNumber = 1;
this.params.sourceType = '' this.params.sourceType = "";
this.queryByPage() this.queryByPage();
}, },
async queryByPage () { async queryByPage() {
const res = await pageList(this.params) const res = await pageList(this.params);
if (res.code != '200') return if (res.code != "200") return;
this.listLoading = true this.listLoading = true;
this.list = res.data.records this.list = res.data.records;
this.list.forEach((value) => { this.list.forEach(value => {
value['sourceNameCode'] = value.sourceName + '[' + value.sourceCode + ']' value["sourceNameCode"] =
}) value.sourceName + "[" + value.sourceCode + "]";
this.totalCount = res.data.total });
this.totalPage = res.data.pages this.totalCount = res.data.total;
this.listLoading = false this.totalPage = res.data.pages;
this.listLoading = false;
}, },
handleSizeChange (val) { handleSizeChange(val) {
this.params.pageSize = val this.params.pageSize = val;
this.queryByPage() this.queryByPage();
}, },
handleCurrentChange (val) { handleCurrentChange(val) {
this.params.pageNumber = val this.params.pageNumber = val;
this.queryByPage() this.queryByPage();
}, },
// //
closeDialog (bool) { closeDialog(bool) {
// bool && this.search('form') // // bool && this.search('form') //
// this.$refs['userForm'].resetFields() // this.$refs['userForm'].resetFields()
this.basicDialog = false this.basicDialog = false;
}, },
// //
showAddLogModel (val) { showAddLogModel(val) {
this.basicDialog = true this.basicDialog = true;
if (val == undefined) { if (val == undefined) {
this.updataDisabled = false this.updataDisabled = false;
this.getSystem() this.getSystem();
this.dialogForm = { this.dialogForm = {
sourceName: '', sourceName: "",
sourceCode: '', sourceCode: "",
sourceType: '', sourceType: "",
sourceDesc: '', sourceDesc: "",
sourceConfig: '', sourceConfig: ""
} };
} else { } else {
this.updataDisabled = true this.updataDisabled = true;
this.dialogForm = val this.dialogForm = val;
const newSourceType = this.dialogForm const newSourceType = this.dialogForm;
let newDataLink = [] let newDataLink = [];
this.dictionaryOptions.map((item) => { this.dictionaryOptions.map(item => {
if (item.id == newSourceType.sourceType) { if (item.id == newSourceType.sourceType) {
newDataLink = JSON.parse(item.extend) newDataLink = JSON.parse(item.extend);
var sourceConfigJson = JSON.parse(newSourceType.sourceConfig) var sourceConfigJson = JSON.parse(newSourceType.sourceConfig);
for (var i = 0; i < newDataLink.length; i++) { for (var i = 0; i < newDataLink.length; i++) {
newDataLink[i].value = sourceConfigJson[newDataLink[i].label] newDataLink[i].value = sourceConfigJson[newDataLink[i].label];
} }
} }
}) });
this.dataLink = newDataLink this.dataLink = newDataLink;
} }
}, },
// //
async getSystem () { async getSystem() {
const { code, data } = await getDictList('SOURCE_TYPE') const { code, data } = await getDictList("SOURCE_TYPE");
if (code != '200') return if (code != "200") return;
this.dictionaryOptions = data this.dictionaryOptions = data;
this.dialogForm.sourceType = this.dictionaryOptions[0].text this.dialogForm.sourceType = this.dictionaryOptions[0].text;
this.dataLink = JSON.parse(this.dictionaryOptions[0].extend) this.dataLink = JSON.parse(this.dictionaryOptions[0].extend);
}, },
selectChange (val) { selectChange(val) {
this.dataLink = [] this.dataLink = [];
const extendJSON = this.dictionaryOptions.find(function (obj) { const extendJSON = this.dictionaryOptions.find(function(obj) {
return obj.id == val return obj.id == val;
}) });
this.dataLink = JSON.parse(extendJSON.extend) this.dataLink = JSON.parse(extendJSON.extend);
}, },
// //
test () { test() {
const newList = {} const newList = {};
this.dataLink.forEach((item) => { this.dataLink.forEach(item => {
newList[item.label] = item.value newList[item.label] = item.value;
}) });
this.dialogForm.sourceConfig = JSON.stringify(newList) this.dialogForm.sourceConfig = JSON.stringify(newList);
testConnection(this.dialogForm).then((data) => { testConnection(this.dialogForm).then(data => {
if (data.code == '200') { if (data.code == "200") {
this.testReplyCode = data.code; this.testReplyCode = data.code;
this.$message({ this.$message({
message: '测试成功!', message: "测试成功!",
type: 'success' type: "success"
}); });
} else { } else {
this.testReplyCode = null this.testReplyCode = null;
} }
}) });
}, },
async delData (val) { async delData(val) {
this.$confirm('确定删除?', '提示', { this.$confirm("确定删除?", "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning', type: "warning"
}) })
.then(async () => { .then(async () => {
this.$emit('deletelayer') this.$emit("deletelayer");
this.visible = false this.visible = false;
const { code, data } = await deleteDataSource(val) const { code, data } = await deleteDataSource(val);
if (code != '200') return if (code != "200") return;
this.queryByPage() this.queryByPage();
this.$message({ this.$message({
type: 'success', type: "success",
message: '删除成功!', message: "删除成功!"
}) });
}) })
.catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: "info",
message: '已取消删除', message: "已取消删除"
}) });
}) });
}, },
// //
async UserConfirm (formName) { async UserConfirm(formName) {
const newList = {} const newList = {};
this.dataLink.forEach((item) => { this.dataLink.forEach(item => {
newList[item.label] = item.value newList[item.label] = item.value;
}) });
this.dialogForm.sourceConfig = JSON.stringify(newList) this.dialogForm.sourceConfig = JSON.stringify(newList);
this.$refs[formName].validate(async (valid, obj) => { this.$refs[formName].validate(async (valid, obj) => {
if (valid) { if (valid) {
if (this.testReplyCode != '200') { if (this.testReplyCode != "200") {
this.$message.error("测试结果为成功后方可保存!") this.$message.error("测试结果为成功后方可保存!");
return return;
} }
if (this.dialogForm.id == undefined) { if (this.dialogForm.id == undefined) {
const { code } = await addDataSource(this.dialogForm) const { code } = await addDataSource(this.dialogForm);
if (code != '200') return if (code != "200") return;
this.queryByPage() this.queryByPage();
} else { } else {
const { code } = await editDataSource(this.dialogForm) const { code } = await editDataSource(this.dialogForm);
if (code != '200') return if (code != "200") return;
this.queryByPage() this.queryByPage();
} }
this.closeDialog(false) this.closeDialog(false);
} else { } else {
return return;
} }
}) });
}, }
}, }
} };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.title { .title {
@ -438,4 +426,7 @@ export default {
display: inline-block; display: inline-block;
text-align: left; text-align: left;
} }
.query {
margin-top: 5px;
}
</style> </style>

@ -6,36 +6,29 @@
!--> !-->
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="form" <el-form ref="form" :model="params" :rules="rules" label-width="120px">
:model="params"
:rules="rules"
label-width="120px">
<!-- 搜索 --> <!-- 搜索 -->
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="6" :xl="4">
:sm="20"
:md="12"
:lg="6"
:xl="4">
<el-form-item label="名称"> <el-form-item label="名称">
<el-input v-model="params.reportName" <el-input
v-model="params.reportName"
size="mini" size="mini"
clearable clearable
placeholder="名称" placeholder="名称"
class="filter-item" /> class="filter-item"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="6" :xl="4">
:sm="20"
:md="12"
:lg="6"
:xl="4">
<el-form-item label="报表编码"> <el-form-item label="报表编码">
<el-input v-model="params.reportCode" <el-input
v-model="params.reportCode"
size="mini" size="mini"
clearable clearable
placeholder="报表编码" placeholder="报表编码"
class="filter-item" /> class="filter-item"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :xs="24" <!-- <el-col :xs="24"
@ -50,98 +43,96 @@
:dict-key="'REPORT_TYPE'" /> :dict-key="'REPORT_TYPE'" />
</el-form-item> </el-form-item>
</el-col> --> </el-col> -->
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="4" :lg="4" :xl="4" class="query">
:sm="20" <el-button type="primary" size="mini" @click="search('form')"
:md="4" >查询</el-button
:lg="4" >
:xl="4"> <el-button type="danger" size="mini" @click="reset('form')"
<el-button type="primary" >重置</el-button
size="mini" >
@click="search('form')">查询</el-button>
<el-button type="danger"
size="mini"
@click="reset('form')">重置</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-button type="primary" <el-button
type="primary"
size="mini" size="mini"
icon="el-icon-plus" icon="el-icon-plus"
@click="showAddReportModel()">新增</el-button> @click="showAddReportModel()"
>新增</el-button
>
<!--表格渲染--> <!--表格渲染-->
<el-table v-loading="listLoading" <el-table
v-loading="listLoading"
border border
:data="list" :data="list"
element-loading-text="Loading" element-loading-text="Loading"
class="mt10" class="mt10"
style="width: 100%"> style="width: 100%"
<el-table-column align="center" >
<el-table-column
align="center"
label="序号" label="序号"
type="index" type="index"
min-width="40" /> min-width="40"
/>
<!-- <el-table-column label="报表类型"> <!-- <el-table-column label="报表类型">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.reportType | reportTableType}} {{scope.row.reportType | reportTableType}}
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="reportName" <el-table-column prop="reportName" label="名称" />
label="名称" /> <el-table-column prop="reportCode" label="报表编码" />
<el-table-column prop="reportCode"
label="报表编码" />
<!-- <el-table-column prop="reportGroup" <!-- <el-table-column prop="reportGroup"
label="分组"> label="分组">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.reportGroup | filterPushType}} {{scope.row.reportGroup | filterPushType}}
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column prop="reportDesc" <el-table-column prop="reportDesc" label="备注" />
label="备注" /> <el-table-column prop="createBy" label="创建人" />
<el-table-column prop="createBy" <el-table-column prop="createTime" label="创建时间" />
label="创建人" /> <el-table-column prop="updateBy" label="更新人" />
<el-table-column prop="createTime" <el-table-column prop="updateTime" label="更新时间" />
label="创建时间" /> <el-table-column label="操作" width="200px" align="center">
<el-table-column prop="updateBy"
label="更新人" />
<el-table-column prop="updateTime"
label="更新时间" />
<el-table-column label="操作"
width="200px"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" <el-button type="text" @click="preview(scope.row)"></el-button>
@click="preview(scope.row)">预览</el-button> <el-button type="text" @click="design(scope.row)"></el-button>
<el-button type="text" <el-button type="text" @click="showAddReportModel(scope.row)"
@click="design(scope.row)">设计</el-button> >编辑</el-button
<el-button type="text" >
@click="showAddReportModel(scope.row)">编辑</el-button> <el-button type="text" @click="del(scope.row)"></el-button>
<el-button type="text"
@click="del(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="block"> <div class="block">
<el-pagination :total="totalCount" <el-pagination
:total="totalCount"
:page-sizes="[10, 20, 50, 100]" :page-sizes="[10, 20, 50, 100]"
:page-size="params.pageSize" :page-size="params.pageSize"
:current-page="params.pageNumber" :current-page="params.pageNumber"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" /> @current-change="handleCurrentChange"
/>
</div> </div>
<!--表单组件--> <!--表单组件-->
<el-dialog title="项目基础配置" <el-dialog
title="项目基础配置"
width="50%" width="50%"
:close-on-click-modal="false" :close-on-click-modal="false"
center center
:visible.sync="basicDialog" :visible.sync="basicDialog"
@close="closeDialog"> @close="closeDialog"
<el-form ref="userForm" >
<el-form
ref="userForm"
:model="dialogForm" :model="dialogForm"
:rules="rules" :rules="rules"
size="small" size="small"
style="min-height:200px" style="min-height:200px"
label-width="100px"> label-width="100px"
>
<el-row :gutter="10"> <el-row :gutter="10">
<!-- <el-col :xs="24" <!-- <el-col :xs="24"
:sm="20" :sm="20"
@ -159,24 +150,17 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<!-- </el-col> --> <!-- </el-col> -->
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="12" :xl="12">
:sm="20" <el-form-item label="名称" prop="reportName">
:md="12"
:lg="12"
:xl="12">
<el-form-item label="名称"
prop="reportName">
<el-input v-model="dialogForm.reportName" /> <el-input v-model="dialogForm.reportName" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" <el-col :xs="24" :sm="20" :md="12" :lg="12" :xl="12">
:sm="20" <el-form-item label="报表编码" prop="reportCode">
:md="12" <el-input
:lg="12" :disabled="reportCodeDisable"
:xl="12"> v-model="dialogForm.reportCode"
<el-form-item label="报表编码" />
prop="reportCode">
<el-input :disabled="reportCodeDisable" v-model="dialogForm.reportCode" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -200,10 +184,12 @@
</el-row> --> </el-row> -->
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="dialogForm.reportDesc" <el-input
v-model="dialogForm.reportDesc"
type="textarea" type="textarea"
placeholder="请输入内容" placeholder="请输入内容"
show-word-limit /> show-word-limit
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -214,66 +200,73 @@
:headers="headers" :headers="headers"
:show-file-list="false" :show-file-list="false"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"> :before-upload="beforeAvatarUpload"
<img v-if="dialogForm.reportImage" :src="dialogForm.reportImage == null ? require('../../../assets/images/charts.jpg') : dialogForm.reportImage " class="avatar"> >
<img
v-if="dialogForm.reportImage"
:src="
dialogForm.reportImage == null
? require('../../../assets/images/charts.jpg')
: dialogForm.reportImage
"
class="avatar"
/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
<div slot="footer" <div slot="footer" class="dialog-footer">
class="dialog-footer">
<el-button @click="basicDialog = false">取消</el-button> <el-button @click="basicDialog = false">取消</el-button>
<el-button type="primary" <el-button type="primary" @click="UserConfirm"></el-button>
@click="UserConfirm">保存</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { dataDictionary } from '@/api/common' import { dataDictionary } from "@/api/common";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { reportPageList, addReport, editReport, delReport } from '@/api/report' import { reportPageList, addReport, editReport, delReport } from "@/api/report";
import Dictionary from '@/components/Dictionary/index' import Dictionary from "@/components/Dictionary/index";
var typeData var typeData;
export default { export default {
name: 'Report', name: "Report",
components: { Dictionary }, components: { Dictionary },
filters: { filters: {
filterPushType (val) { filterPushType(val) {
for (var i = 0; i < typeData.dictionaryGroupOptions.length; i++) { for (var i = 0; i < typeData.dictionaryGroupOptions.length; i++) {
if (typeData.dictionaryGroupOptions[i].id == val) { if (typeData.dictionaryGroupOptions[i].id == val) {
return typeData.dictionaryGroupOptions[i].text return typeData.dictionaryGroupOptions[i].text;
} }
} }
}, },
reportTableType (val) { reportTableType(val) {
for (var i = 0; i < typeData.dictionaryTypeOptions.length; i++) { for (var i = 0; i < typeData.dictionaryTypeOptions.length; i++) {
if (typeData.dictionaryTypeOptions[i].id == val) { if (typeData.dictionaryTypeOptions[i].id == val) {
return typeData.dictionaryTypeOptions[i].text return typeData.dictionaryTypeOptions[i].text;
}
} }
} }
}, },
}, data() {
data () {
return { return {
params: { params: {
reportCode: '', reportCode: "",
reportName: '', reportName: "",
// reportType: '', // reportType: '',
pageNumber: 1, pageNumber: 1,
pageSize: 10, pageSize: 10,
order: 'DESC', order: "DESC",
sort: 'update_time', sort: "update_time"
}, },
dialogForm: { dialogForm: {
reportName: '', reportName: "",
reportCode: '', reportCode: "",
// reportType: '', // reportType: '',
// reportGroup: '', // reportGroup: '',
reportDesc: '', reportDesc: "",
reportImage: '', reportImage: ""
}, },
basicDialog: false, basicDialog: false,
listLoading: true, listLoading: true,
@ -287,142 +280,151 @@ export default {
requestUrl: process.env.BASE_API + "/file/upload", requestUrl: process.env.BASE_API + "/file/upload",
headers: { headers: {
Authorization: getToken() Authorization: getToken()
},
} }
};
}, },
mounted () { }, mounted() {},
// beforeCreatethis // beforeCreatethis
beforeCreate: function () { beforeCreate: function() {
typeData = this typeData = this;
}, },
created () { created() {
this.queryByPage() this.queryByPage();
}, },
methods: { methods: {
// //
search () { search() {
this.params.pageNumber = 1 this.params.pageNumber = 1;
this.queryByPage() this.queryByPage();
}, },
// //
reset (formName) { reset(formName) {
this.$refs[formName].resetFields() this.$refs[formName].resetFields();
this.params.reportName = '' this.params.reportName = "";
this.params.reportCode = '' this.params.reportCode = "";
// this.params.reportType = '' // this.params.reportType = ''
this.params.pageNumber = 1 this.params.pageNumber = 1;
this.queryByPage() this.queryByPage();
}, },
async queryByPage () { async queryByPage() {
const res = await reportPageList(this.params) const res = await reportPageList(this.params);
if (res.code != '200') return if (res.code != "200") return;
this.listLoading = true this.listLoading = true;
this.list = res.data.records this.list = res.data.records;
this.list.forEach((value) => { this.list.forEach(value => {
value['reportNameCode'] = value.reportName + '[' + value.reportCode + ']' value["reportNameCode"] =
}) value.reportName + "[" + value.reportCode + "]";
this.totalCount = res.data.total });
this.totalPage = res.data.pages this.totalCount = res.data.total;
this.listLoading = false this.totalPage = res.data.pages;
this.listLoading = false;
}, },
handleAvatarSuccess(res) { handleAvatarSuccess(res) {
this.dialogForm.reportImage = res.data.urlPath this.dialogForm.reportImage = res.data.urlPath;
}, },
beforeAvatarUpload(file) { beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg'; const isJPG = file.type === "image/jpeg";
const isLt2M = file.size / 1024 / 1024 < 2; const isLt2M = file.size / 1024 / 1024 < 2;
return true; return true;
}, },
// //
showAddReportModel (val) { showAddReportModel(val) {
this.basicDialog = true this.basicDialog = true;
if (val === undefined) { if (val === undefined) {
this.reportCodeDisable = false this.reportCodeDisable = false;
this.dialogForm = { this.dialogForm = {
reportName: '', reportName: "",
reportCode: '', reportCode: "",
// reportType: '', // reportType: '',
reportDesc: '', reportDesc: "",
reportImage: '' reportImage: ""
} };
} else { } else {
this.dialogForm = val this.dialogForm = val;
this.reportCodeDisable = true this.reportCodeDisable = true;
} }
}, },
// //
preview (val) { preview(val) {
var routeUrl = this.$router.resolve({ path: '/bigscreen/viewer', query: { reportCode: val.reportCode } }) var routeUrl = this.$router.resolve({
window.open(routeUrl.href, '_blank') path: "/bigscreen/viewer",
query: { reportCode: val.reportCode }
});
window.open(routeUrl.href, "_blank");
// } // }
}, },
// //
design (val) { design(val) {
var routeUrl = this.$router.resolve({ path: '/bigscreen/designer', query: { reportCode: val.reportCode, reportId: val.id, accessKey: val.accessKey } }) var routeUrl = this.$router.resolve({
window.open(routeUrl.href, '_blank') path: "/bigscreen/designer",
query: {
reportCode: val.reportCode,
reportId: val.id,
accessKey: val.accessKey
}
});
window.open(routeUrl.href, "_blank");
// } // }
}, },
// //
async delReport (val) { async delReport(val) {
const { code } = await delReport(val) const { code } = await delReport(val);
if (code != '200') return if (code != "200") return;
this.queryByPage() this.queryByPage();
}, },
del (val) { del(val) {
this.$confirm('确定删除此条数据, 是否继续?', '删除', { this.$confirm("确定删除此条数据, 是否继续?", "删除", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning', type: "warning"
}) })
.then(() => { .then(() => {
this.delReport(val) this.delReport(val);
}) })
.catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: "info",
message: '取消删除', message: "取消删除"
}) });
}) });
}, },
// //
closeDialog (bool) { closeDialog(bool) {
bool && this.search('form') // bool && this.search("form"); //
this.$refs['userForm'].resetFields() this.$refs["userForm"].resetFields();
this.basicDialog = false this.basicDialog = false;
}, },
handleSizeChange (val) { handleSizeChange(val) {
this.params.pageSize = val this.params.pageSize = val;
this.queryByPage() this.queryByPage();
}, },
handleCurrentChange (val) { handleCurrentChange(val) {
this.params.pageNumber = val this.params.pageNumber = val;
this.queryByPage() this.queryByPage();
}, },
// //
UserConfirm () { UserConfirm() {
debugger debugger;
this.$refs.form.validate(async (valid, obj) => { this.$refs.form.validate(async (valid, obj) => {
if (valid) { if (valid) {
if (this.dialogForm.id == undefined) { if (this.dialogForm.id == undefined) {
const { code } = await addReport(this.dialogForm) const { code } = await addReport(this.dialogForm);
if (code != '200') return if (code != "200") return;
} else { } else {
const { code } = await editReport(this.dialogForm) const { code } = await editReport(this.dialogForm);
if (code != '200') return if (code != "200") return;
} }
this.closeDialog(true) this.closeDialog(true);
} else { } else {
return return;
} }
}) });
}, }
}, }
} };
</script> </script>
<style> <style>
@ -434,7 +436,7 @@ export default {
overflow: hidden; overflow: hidden;
} }
.avatar-uploader .el-upload:hover { .avatar-uploader .el-upload:hover {
border-color: #409EFF; border-color: #409eff;
} }
.avatar-uploader-icon { .avatar-uploader-icon {
font-size: 28px; font-size: 28px;
@ -449,4 +451,7 @@ export default {
height: 30%; height: 30%;
display: block; display: block;
} }
.query {
margin-top: 5px;
}
</style> </style>

@ -41,7 +41,7 @@
:sm="20" :sm="20"
:md="4" :md="4"
:lg="4" :lg="4"
:xl="4"> :xl="4" class="query">
<el-button type="primary" <el-button type="primary"
size="mini" size="mini"
@click="search('form')">查询</el-button> @click="search('form')">查询</el-button>
@ -1089,4 +1089,7 @@ export default {
overflow-y: auto; overflow-y: auto;
padding: 10px; padding: 10px;
} }
.query{
margin-top: 5px;
}
</style> </style>

Loading…
Cancel
Save