|
@@ -4,8 +4,13 @@
|
|
|
<AuthButton :auth="pageAuthBtnAdd" />
|
|
|
<AuthButton :auth="pageAuthBtnQuery" />
|
|
|
</PublicPageHeader>
|
|
|
- <div class="TablePage_content">
|
|
|
- <PublicPageTable :loading="loading" :table-cols="tableCols" :table-btns="authBtns" :data="tableData" :header-cell-class-name="headerCellClass" :row-class-name="rowClass" :cell-class-name="cellClass" :formatter="tableFormatter" show-summary @mounted="tableMountedHandler" @load="load" @cell-click="cellClickHandler" @handleEdit="handleEdit" @handleOther="handleOther" @handleRemove="handleRemove" />
|
|
|
+ <div class="TablePage_content flex-wrap">
|
|
|
+ <div v-if="treeData.length" class="TablePage_content_left">
|
|
|
+ <PublicPageTree :tree-data="treeData" @treeNodeClick="treeNodeClick" />
|
|
|
+ </div>
|
|
|
+ <div class="TablePage_content_right">
|
|
|
+ <PublicPageTable :loading="loading" :table-cols="tableCols" :table-btns="authBtns" :data="tableData" :header-cell-class-name="headerCellClass" :row-class-name="rowClass" :cell-class-name="cellClass" :formatter="tableFormatter" show-summary @mounted="tableMountedHandler" @load="load" @cell-click="cellClickHandler" @handleEdit="handleEdit" @handleOther="handleOther" @handleRemove="handleRemove" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="TablePage_dialog">
|
|
|
<!--新增/编辑-->
|
|
@@ -72,23 +77,27 @@
|
|
|
<script>
|
|
|
import PublicPageHeader from '@/components/PublicPageHeader'
|
|
|
import PublicPageTable from '@/components/SimpleTable'
|
|
|
+import PublicPageTree from '@/components/publicPageTree'
|
|
|
import PublicPageDialog from '@/components/PublicPageDialog'
|
|
|
import AdvancedQuery from '@/components/AdvancedQuery'
|
|
|
import AuthButton from '@/components/AuthButton'
|
|
|
import { mapGetters } from 'vuex'
|
|
|
-import { Query, newData, modifyData, moveData, abnormalDataRecovery } from "@/api/webApi"
|
|
|
+import { Query, newData, modifyData, moveData } from "@/api/webApi"
|
|
|
|
|
|
export default {
|
|
|
name: 'TablePage',
|
|
|
- components: { PublicPageHeader, PublicPageTable, PublicPageDialog, AdvancedQuery, AuthButton },
|
|
|
+ components: { PublicPageHeader, PublicPageTable, PublicPageDialog, PublicPageTree, AdvancedQuery, AuthButton },
|
|
|
data () {
|
|
|
return {
|
|
|
page: 0, //当前table页面
|
|
|
noMore: false, //当前table是否加载到最后开关
|
|
|
loading: false, //页面加载
|
|
|
advancedDrawer: false, //高级查询弹框开关
|
|
|
+ defaultfilter: { 1: 1 }, //默认查询参数
|
|
|
dialogFlag: false,
|
|
|
pageTitle: '', //页面名称
|
|
|
+ treeData: [], //tree数据
|
|
|
+ treeParameters: {}, //tree传递参数
|
|
|
tableCols: [], //表头数据
|
|
|
tableData: [], //表格数据
|
|
|
tableBtns: [], //表格按钮权限
|
|
@@ -143,9 +152,8 @@ export default {
|
|
|
if (dropdownlist || dropdownlist == 0) return [{ required: itemReq, message: `${columnname}不能为空`, trigger: 'change' }]
|
|
|
else if (itemType == 'date' || itemType == 'datetime') return [{ required: itemReq, type: 'date', message: `${columnname}不能为空`, trigger: 'change' }]
|
|
|
else
|
|
|
- if (itemReq && !itemRule) return [{ required: itemReq, message: `${columnname}不能为空`, trigger: 'blur' }]
|
|
|
- return [{ required: itemReq, message: `${columnname}不能为空`, trigger: 'blur' }, { pattern: new RegExp(formatrule), message: `请输入合法的${columnname}规则`, trigger: 'blur' }]
|
|
|
-
|
|
|
+ if (itemReq && itemRule) return [{ required: itemReq, message: `${columnname}不能为空`, trigger: 'blur' }, { pattern: new RegExp(formatrule), message: `请输入合法的${columnname}规则`, trigger: 'blur' }]
|
|
|
+ return [{ required: itemReq, message: `${columnname}不能为空`, trigger: 'blur' }]
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -163,6 +171,9 @@ export default {
|
|
|
//获取当前页面权限类型
|
|
|
const pageAuthArrs = pageAuths.filter(item => item['superiorid'] == auth_id)
|
|
|
if (!pageAuthArrs.length) return
|
|
|
+ //获取tree权限
|
|
|
+ const pageAuthtrees = pageAuthArrs.filter(item => item.pagetype == 5)
|
|
|
+ if (pageAuthtrees?.length) this.getPageTreeSetting(pageAuths, pageAuthtrees)
|
|
|
//获取table权限
|
|
|
const pageAuthtables = pageAuthArrs.filter(item => item.pagetype == 3)
|
|
|
if (pageAuthtables?.length) this.getPageTableSetting(pageAuths, pageAuthtables)
|
|
@@ -170,17 +181,26 @@ export default {
|
|
|
const pageAuthbtns = pageAuthArrs.filter(item => item.pagetype == 4)
|
|
|
if (pageAuthbtns?.length) this.getPageBtnSetting(pageAuthbtns)
|
|
|
},
|
|
|
+ //根据页面tree设置数据
|
|
|
+ getPageTreeSetting (pageAuths, pageAuthtrees) {
|
|
|
+ const { passparameters } = pageAuthtrees[0]
|
|
|
+ this.treeParameters = passparameters
|
|
|
+ this.treeData = pageAuthtrees
|
|
|
+ },
|
|
|
//根据页面table设置数据
|
|
|
getPageTableSetting (pageAuths, pageAuthtables) {
|
|
|
const authTableObj = pageAuthtables[0]
|
|
|
+ console.log(authTableObj)
|
|
|
//获取当前页面table的配置
|
|
|
- const { pagename, pageconfigurationid, serviceid, pagecode, userpermissionsid } = authTableObj
|
|
|
+ const { pagename, pageconfigurationid, serviceid, pagecode, userpermissionsid, defaultfilter } = authTableObj
|
|
|
//获取当前页面table的按钮权限
|
|
|
const currPageBtns = pageAuths.filter(item => item['superiorid'] == pageconfigurationid)
|
|
|
if (currPageBtns?.length) this.tableBtns.push(...currPageBtns)
|
|
|
this.authBtns = pageAuths.filter(item => item.superiorid == pageconfigurationid && item.pagetype == 4)
|
|
|
this.pageServiceId = serviceid;
|
|
|
this.pageTitle = pagename
|
|
|
+ console.log(defaultfilter)
|
|
|
+ this.defaultfilter = defaultfilter ? defaultfilter : { 1: 1 }
|
|
|
this.getColumnData(pagecode, userpermissionsid)
|
|
|
},
|
|
|
//根据页面按钮设置数据
|
|
@@ -211,6 +231,25 @@ export default {
|
|
|
console.log(error)
|
|
|
}
|
|
|
},
|
|
|
+ //获取tree点击
|
|
|
+ treeNodeClick (data) {
|
|
|
+ const filterItem = this.formatDefault(this.treeParameters, data)
|
|
|
+ if (!Object.keys(filterItem).length) return
|
|
|
+ this.defaultfilter = filterItem
|
|
|
+ this.queryTableData()
|
|
|
+ },
|
|
|
+ //格式化传递参数数据
|
|
|
+ formatDefault (item, data) {
|
|
|
+ if (typeof item != 'string') return {}
|
|
|
+ const filterItem = {}
|
|
|
+ const parameters = item.replace('{', '').replace('}', '')
|
|
|
+ const parametersSplit = parameters?.split(',')
|
|
|
+ parametersSplit.map(item => {
|
|
|
+ const [key, val] = item?.split(':')
|
|
|
+ filterItem[key] = data[val]
|
|
|
+ })
|
|
|
+ return filterItem
|
|
|
+ },
|
|
|
//获取表单下拉数据
|
|
|
changeSelect (code, item) { },
|
|
|
inputChangeHandler (data) {
|
|
@@ -477,8 +516,9 @@ export default {
|
|
|
this.queryTableData()
|
|
|
},
|
|
|
async queryTableData () {
|
|
|
+ this.resetTable()
|
|
|
this.loading = true;
|
|
|
- const datacontent = { filter: { 1: 1 } }
|
|
|
+ const datacontent = { filter: this.defaultfilter }
|
|
|
try {
|
|
|
const { code, returnData } = await Query({
|
|
|
page: ++this.page,
|
|
@@ -513,6 +553,13 @@ export default {
|
|
|
&_content {
|
|
|
margin-top: 20px;
|
|
|
height: calc(100vh - 180px);
|
|
|
+ &_left {
|
|
|
+ width: 360px;
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+ &_right {
|
|
|
+ flex: 1;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</style>
|