6 changed files with 572 additions and 4 deletions
-
7src/api/report/com_auth_single_customer_report.js
-
7src/api/report/user_customer_report.js
-
227src/views/modules/report/com_auth_single_customer_report.vue
-
1src/views/modules/report/com_run_customer_report.vue
-
23src/views/modules/report/report_manage.vue
-
311src/views/modules/report/user_customer_report.vue
@ -0,0 +1,7 @@ |
|||||
|
import { createAPI } from '@/utils/httpRequest.js' |
||||
|
|
||||
|
// 获取查询列
|
||||
|
export const getAuthRoles = data => createAPI('report/getAuthRoles', 'POST', data) |
||||
|
|
||||
|
// 赋值权限
|
||||
|
export const saveAuthCustomerReport = data => createAPI('report/saveAuthSingleCustomerReport', 'POST', data) |
||||
@ -0,0 +1,7 @@ |
|||||
|
import { createAPI } from '@/utils/httpRequest.js' |
||||
|
|
||||
|
// 获取派工单的最新信息
|
||||
|
export const getReportTypeList = data => createAPI('report/getReportTypeList', 'POST', data) |
||||
|
|
||||
|
// 获取派工单的最新信息
|
||||
|
export const getCurrentPageTables = data => createAPI('report/getUserCustomerReportList', 'POST', data) |
||||
@ -0,0 +1,227 @@ |
|||||
|
<template> |
||||
|
<div class="customer-css"> |
||||
|
<el-dialog :title="titleCon" v-drag v-bind="$attrs" v-on="$listeners" |
||||
|
width="380px" style="height: 490px;" class="customer-dialog"> |
||||
|
<el-form :inline="true" label-position="top" style="height: 300px;" |
||||
|
label-width="80px"> |
||||
|
<el-row> |
||||
|
<el-form-item :label="'报表名称:'"> |
||||
|
<el-input v-model="pageData.reportName" readonly="readonly" style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item :label="'报表分类:'"> |
||||
|
<el-input v-model="pageData.reportType" readonly="readonly" style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
</el-row> |
||||
|
<!-- 主材料 --> |
||||
|
<el-form> |
||||
|
<fieldset class="customer-fieldset" style="width: 360px;"> |
||||
|
<el-table height="240" |
||||
|
:cell-style="customerCellStyle" :cell-class-name="customerCellClassName" |
||||
|
:data="authRoleList" |
||||
|
border |
||||
|
v-loading="dataListLoading" |
||||
|
style="width: 100%; margin-top: 0px;"> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in authRoleArray" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed" |
||||
|
:width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<el-checkbox true-label="Y" false-label="N" v-if="item.columnProp === 'checkedFlag' && item.columnAttr === 'check'" |
||||
|
v-model="scope.row[item.columnProp]" style="margin-top: 5px;"></el-checkbox> |
||||
|
<span v-else>{{scope.row[item.columnProp]}}</span> |
||||
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
||||
|
style="width: 100px; height: 80px"/></span> |
||||
|
|
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</fieldset> |
||||
|
</el-form> |
||||
|
</el-form> |
||||
|
<span slot="footer" class="dialog-footer" style="margin-top: 0px;"> |
||||
|
<el-button type="primary" @click="saveAuthCustomerReportBun">保存</el-button> |
||||
|
<el-button type="primary" @click="closeDialog">关闭</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
/*引入js*/ |
||||
|
import { |
||||
|
getAuthRoles, |
||||
|
saveAuthCustomerReport, |
||||
|
} from '@/api/report/com_auth_single_customer_report.js'; |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
titleCon: '报表赋权', |
||||
|
showRunCustomerReportFlag: false, |
||||
|
pageData: { |
||||
|
site: this.$store.state.user.site, |
||||
|
username: this.$store.state.user.name, |
||||
|
reportId: '', |
||||
|
reportName: '', |
||||
|
reportType: '', |
||||
|
}, |
||||
|
authRoleList: [], |
||||
|
authRoleArray: [ |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5307, |
||||
|
serialNumber: '5307CustomerRoleId', |
||||
|
tableId: "5307Customer", |
||||
|
tableName: "查询列", |
||||
|
columnProp: "roleId", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "角色ID", |
||||
|
columnWidth: 120, |
||||
|
columnHidden: false, |
||||
|
columnAttr: 'ori', |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5307, |
||||
|
serialNumber: '5307CustomerRoleName', |
||||
|
tableId: "5307Customer", |
||||
|
tableName: "查询列", |
||||
|
columnProp: "roleName", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "角色名称", |
||||
|
columnWidth: 140, |
||||
|
columnHidden: false, |
||||
|
columnAttr: 'ori', |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5307, |
||||
|
serialNumber: '5307CustomerColumnDefaultValue', |
||||
|
tableId: "5307Customer", |
||||
|
tableName: "查询列", |
||||
|
columnProp: "checkedFlag", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "授权", |
||||
|
columnWidth: 90, |
||||
|
columnHidden: false, |
||||
|
columnAttr: 'check', |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
], |
||||
|
dataListLoading: false, |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
/*初始化页面参数*/ |
||||
|
init(currentRow) { |
||||
|
//设置参数 |
||||
|
this.pageData.reportId = currentRow.reportId; |
||||
|
this.pageData.reportName = currentRow.reportName; |
||||
|
this.pageData.reportType = currentRow.reportType; |
||||
|
//刷新页面的参数 |
||||
|
this.refreshPageData(); |
||||
|
}, |
||||
|
|
||||
|
/*关闭modal*/ |
||||
|
closeDialog(){ |
||||
|
this.$emit('update:visible', false); |
||||
|
//调用原始页面的刷新方法 |
||||
|
this.$emit('refreshCurrentPage'); |
||||
|
}, |
||||
|
|
||||
|
/*刷新当前的页面参数*/ |
||||
|
refreshPageData(){ |
||||
|
//刷新材料的数据 |
||||
|
this.refreshAuthRoleTable(); |
||||
|
}, |
||||
|
|
||||
|
//刷新当前卷的时间数据 |
||||
|
refreshAuthRoleTable(){ |
||||
|
getAuthRoles(this.pageData).then(({data}) => { |
||||
|
this.authRoleList = data.rows; |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
/*添加定制的css类*/ |
||||
|
customerCellClassName({row, column, rowIndex, columnIndex}) { |
||||
|
if(column.property == 'sortNo'){ |
||||
|
return 'customer-number-cell'; |
||||
|
}else if(columnIndex === 2){ |
||||
|
return 'customer-text-cell'; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
/*添加定制的cess样式*/ |
||||
|
customerCellStyle({row, column, rowIndex, columnIndex}) { |
||||
|
if(columnIndex === 2){ |
||||
|
return 'padding: 0px 0px;'; |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
/*保存已经修改好的参数数据*/ |
||||
|
saveAuthCustomerReportBun(){ |
||||
|
let requestData = {pageData: JSON.stringify(this.pageData), authRoles: JSON.stringify(this.authRoleList)}; |
||||
|
saveAuthCustomerReport(requestData).then(({data}) => { |
||||
|
if(data.code === 200){ |
||||
|
this.$message.success(data.msg); |
||||
|
//关闭当前的页面 |
||||
|
this.closeDialog(); |
||||
|
}else{ |
||||
|
this.$message.error(data.msg); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
|
||||
|
created() { |
||||
|
// |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
/*调节页面button和input的上下间距*/ |
||||
|
.customer-css .customer-button{ |
||||
|
margin-top: 25px; |
||||
|
} |
||||
|
|
||||
|
/*调节样式*/ |
||||
|
.customer-item{ |
||||
|
margin-top: -10px; |
||||
|
} |
||||
|
/*fieldset下table的样式*/ |
||||
|
.customer-fieldset /deep/ .el-table__header th.is-leaf{ |
||||
|
line-height: 16px; |
||||
|
} |
||||
|
|
||||
|
/deep/ .customer-tab .el-tabs__content{ |
||||
|
padding: 0px !important; |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
@ -0,0 +1,311 @@ |
|||||
|
<template> |
||||
|
<div class="customer-css" > |
||||
|
<!-- 查询时间和产品 --> |
||||
|
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;" > |
||||
|
<el-row> |
||||
|
<el-form-item :label="'报表名称:'"> |
||||
|
<el-input v-model="pageData.reportName" style="width: 120px"></el-input> |
||||
|
</el-form-item> |
||||
|
<el-form-item :label="'报表分类:'"> |
||||
|
<el-select v-model="pageData.reportType" style="width: 130px"> |
||||
|
<el-option |
||||
|
v-for="(item, index) in reportTypeList" |
||||
|
:key="index" |
||||
|
:label="item.baseData" |
||||
|
:value="item.baseData"> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</el-form-item> |
||||
|
<el-form-item :label="''" style="margin-left: 50px; margin-top: 20px;"> |
||||
|
<el-button class="customer-bun-min" type="primary" @click="refreshPageTables" style="margin-left: 10px; margin-bottom: 5px;">查询</el-button> |
||||
|
</el-form-item> |
||||
|
</el-row> |
||||
|
</el-form> |
||||
|
<!-- 工单主表信息 --> |
||||
|
<el-main style="margin-top: 5px; padding: 0px; width: 100%;"> |
||||
|
<el-form :inline="true" label-position="top" label-width="100px"> |
||||
|
<el-form-item :label="'主记录'"> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
<el-table |
||||
|
:height="height" |
||||
|
:data="reportList" |
||||
|
border |
||||
|
ref="reportTable" |
||||
|
highlight-current-row |
||||
|
@row-click="setCurrentReportRow" |
||||
|
v-loading="dataListLoading" |
||||
|
style="margin-top: -20px; width: 100%;"> |
||||
|
<el-table-column |
||||
|
fixed="left" |
||||
|
header-align="center" |
||||
|
align="center" |
||||
|
width="220" |
||||
|
:label="'操作'"> |
||||
|
<template slot-scope="scope"> |
||||
|
<a class="customer-a" @click="showCustomerReportSearchColumnModal(scope.row)">报表查询</a> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
<el-table-column |
||||
|
v-for="(item,index) in columnReportArray" :key="index" |
||||
|
:sortable="item.columnSortable" |
||||
|
:prop="item.columnProp" |
||||
|
:header-align="item.headerAlign" |
||||
|
:show-overflow-tooltip="item.showOverflowTooltip" |
||||
|
:align="item.align" |
||||
|
:fixed="item.fixed" |
||||
|
:width="item.columnWidth" |
||||
|
:label="item.columnLabel"> |
||||
|
<template slot-scope="scope"> |
||||
|
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span> |
||||
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
||||
|
style="width: 100px; height: 80px"/></span> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</el-main> |
||||
|
|
||||
|
<!-- 查询列展示 --> |
||||
|
<showCustomerReportSearchColumn ref="showCustomerReportSearchColumn" :close-on-click-modal="false" |
||||
|
:visible.sync="showCustomerReportSearchColumnFlag" |
||||
|
@refreshCurrentPage = "refreshCurrentPage"> |
||||
|
</showCustomerReportSearchColumn> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
/*组件*/ |
||||
|
import showCustomerReportSearchColumn from '@/views/modules/report/com_show_customer_report_search_column';/*新增自定义报表的功能*/ |
||||
|
import { |
||||
|
getReportTypeList, |
||||
|
getCurrentPageTables, |
||||
|
} from '@/api/report/user_customer_report.js' |
||||
|
|
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
height: 200, |
||||
|
reportTypeList: [], |
||||
|
addCustomerReportFlag: false, |
||||
|
updateCustomerReportFlag: false, |
||||
|
editCustomerReportSearchColumnFlag: false, |
||||
|
showCustomerReportSearchColumnFlag: false, |
||||
|
showAuthCustomerReportFlag: false, |
||||
|
currentReportRow: {}, |
||||
|
pageData: { |
||||
|
site: this.$store.state.user.site, |
||||
|
username: this.$store.state.user.name, |
||||
|
reportName: '', |
||||
|
reportType: '', |
||||
|
seqNo: 0, |
||||
|
status: 1, |
||||
|
}, |
||||
|
reportList: [], |
||||
|
dataListLoading: false, |
||||
|
columnReportArray: [ |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5306, |
||||
|
serialNumber: '5306ReportReportId', |
||||
|
tableId: "5306Report", |
||||
|
tableName: "自定义报表", |
||||
|
columnProp: "reportId", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "报表ID", |
||||
|
columnWidth: '', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5306, |
||||
|
serialNumber: '5306ReportReportName', |
||||
|
tableId: "5306Report", |
||||
|
tableName: "自定义报表", |
||||
|
columnProp: "reportName", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "报表名称", |
||||
|
columnWidth: '', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5306, |
||||
|
serialNumber: '5306ReportReportType', |
||||
|
tableId: "5306Report", |
||||
|
tableName: "自定义报表", |
||||
|
columnProp: "reportType", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "报表分类", |
||||
|
columnWidth: '', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
{ |
||||
|
userId: this.$store.state.user.name, |
||||
|
functionId: 5306, |
||||
|
serialNumber: '5306ReportReportRemark', |
||||
|
tableId: "5306Report", |
||||
|
tableName: "自定义报表", |
||||
|
columnProp: "reportRemark", |
||||
|
headerAlign: "center", |
||||
|
align: "center", |
||||
|
columnLabel: "备注", |
||||
|
columnWidth: '', |
||||
|
columnHidden: false, |
||||
|
columnImage: false, |
||||
|
columnSortable: false, |
||||
|
sortLv: 0, |
||||
|
status: true, |
||||
|
fixed: false |
||||
|
}, |
||||
|
], |
||||
|
} |
||||
|
}, |
||||
|
/*组件*/ |
||||
|
components: { |
||||
|
showCustomerReportSearchColumn,/*显示查询列参数*/ |
||||
|
}, |
||||
|
|
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.height = window.innerHeight - 165; |
||||
|
}) |
||||
|
}, |
||||
|
methods: { |
||||
|
|
||||
|
/*刷新报工的类型*/ |
||||
|
refreshReportType(){ |
||||
|
let requestData = {'type': 'report_type'}; |
||||
|
getReportTypeList(requestData).then(({data}) => { |
||||
|
this.reportTypeList = data.rows; |
||||
|
//选则第一个 |
||||
|
this.pageData.reportType = data.rows[0].baseData; |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
/*刷新页面table*/ |
||||
|
refreshCurrentPage(){ |
||||
|
this.refreshPageTables(); |
||||
|
}, |
||||
|
|
||||
|
/*获取工单信息*/ |
||||
|
refreshPageTables() { |
||||
|
getCurrentPageTables(this.pageData).then(({data}) => { |
||||
|
this.reportList = data.rows; |
||||
|
//清空已经选好的行数据 |
||||
|
this.currentReportRow = null; |
||||
|
}) |
||||
|
}, |
||||
|
|
||||
|
/*展示查询列*/ |
||||
|
showCustomerReportSearchColumnModal(currentRow){ |
||||
|
this.$nextTick(() => { |
||||
|
this.showCustomerReportSearchColumnFlag = true; |
||||
|
this.$refs.showCustomerReportSearchColumn.init(currentRow.reportId); |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
/*设置工艺的行*/ |
||||
|
setCurrentReportRow(row, column, event) { |
||||
|
this.currentReportRow = row; |
||||
|
}, |
||||
|
|
||||
|
}, |
||||
|
created() { |
||||
|
//查询报表的类型 |
||||
|
this.refreshReportType(); |
||||
|
}, |
||||
|
|
||||
|
|
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<!--当前页面的标签样式--> |
||||
|
<style scoped lang="scss"> |
||||
|
|
||||
|
/*针对el-card*/ |
||||
|
.customer-card .el-form-item__content{ |
||||
|
margin-top: -15px; |
||||
|
} |
||||
|
.customer-card .el-form-item{ |
||||
|
height: 22px; |
||||
|
} |
||||
|
|
||||
|
.customer-border .el-form-item__content{ |
||||
|
margin-top: -30px; |
||||
|
} |
||||
|
|
||||
|
/*全局年与日类型 宽度*/ |
||||
|
div.el-time-width{ |
||||
|
width: 110px !important; |
||||
|
} |
||||
|
/* 全局时间右边框*/ |
||||
|
.customer-css input.el-input__inner{ |
||||
|
height: 22px !important; |
||||
|
padding-right: 0px !important; |
||||
|
} |
||||
|
/* 控制el-card标签的数据*/ |
||||
|
div.customer-el-card { |
||||
|
margin-left: 110px; |
||||
|
margin-top: -15px; |
||||
|
height: 20px; |
||||
|
width: 60px; |
||||
|
} |
||||
|
/* 颜色控制 */ |
||||
|
div.customer-el-card-pink { |
||||
|
background: #FF00FF; |
||||
|
} |
||||
|
|
||||
|
div.customer-el-card-orange { |
||||
|
background: #FFD700; |
||||
|
} |
||||
|
|
||||
|
div.customer-el-card-blue { |
||||
|
background: #0000CD; |
||||
|
} |
||||
|
|
||||
|
/*清掉样式*/ |
||||
|
.el-radio+.el-radio { |
||||
|
margin-left: 0px; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/*当前按钮的通用样式*/ |
||||
|
.customer-css .customer-bun-mid{ |
||||
|
width: 60px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
.customer-css .customer-bun-min{ |
||||
|
width: 50px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
|
||||
|
.customer-css .customer-bun-max{ |
||||
|
width: 80px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
/*当前按钮的通用样式*/ |
||||
|
.customer-css .el-button--medium { |
||||
|
padding: 5px 5px; |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue