1
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
-- 评优评先申请表新增历史导入来源和类型名称字段。
|
||||
ALTER TABLE `evaluate_apply`
|
||||
ADD COLUMN `source` int(2) DEFAULT 0 COMMENT '来源 0.流程申请 1.历史导入' AFTER `honorTypeId`,
|
||||
ADD COLUMN `typeName` varchar(200) DEFAULT NULL COMMENT '类型名称' AFTER `source`;
|
||||
@@ -170,6 +170,16 @@ module.exports = {
|
||||
type: Number,
|
||||
default: 300
|
||||
},
|
||||
// 富文本编辑器占位提示,透传给 wangEditor 初始化配置。
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
// 编辑区顶部红色提示,只做展示,不写入编辑器正文内容。
|
||||
topTip: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
menus: {
|
||||
type: Array,
|
||||
default: () => {
|
||||
@@ -205,13 +215,18 @@ module.exports = {
|
||||
data() {
|
||||
return {
|
||||
editor: null,
|
||||
cursorPos: 0
|
||||
cursorPos: 0,
|
||||
topTipElement: null
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initEditor()
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
this.removeTopTip()
|
||||
},
|
||||
|
||||
watch: {
|
||||
value: {
|
||||
handler: function (newValue) {
|
||||
@@ -229,6 +244,13 @@ module.exports = {
|
||||
})
|
||||
},
|
||||
immediate: true
|
||||
},
|
||||
topTip: {
|
||||
handler: function () {
|
||||
this.$nextTick(() => {
|
||||
this.renderTopTip()
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -266,7 +288,43 @@ module.exports = {
|
||||
this.editor.config.pasteFilterStyle = false
|
||||
this.editor.config.height = this.height
|
||||
this.editor.config.menus = this.menus
|
||||
// wangEditor 的 placeholder 必须在 create 前设置,父页面传入才会生效。
|
||||
this.editor.config.placeholder = this.placeholder
|
||||
this.editor.create()
|
||||
this.renderTopTip()
|
||||
},
|
||||
renderTopTip() {
|
||||
if (!this.editor || !this.$refs.editorRef) {
|
||||
return
|
||||
}
|
||||
const textContainer = this.$refs.editorRef.querySelector(".w-e-text-container")
|
||||
if (!textContainer) {
|
||||
return
|
||||
}
|
||||
if (!this.topTip) {
|
||||
this.removeTopTip()
|
||||
return
|
||||
}
|
||||
if (!this.topTipElement) {
|
||||
this.topTipElement = document.createElement("div")
|
||||
this.topTipElement.setAttribute("contenteditable", "false")
|
||||
this.topTipElement.style.color = "#f56c6c"
|
||||
this.topTipElement.style.fontSize = "12px"
|
||||
this.topTipElement.style.lineHeight = "20px"
|
||||
this.topTipElement.style.padding = "6px 10px 0"
|
||||
this.topTipElement.style.userSelect = "none"
|
||||
this.topTipElement.style.pointerEvents = "none"
|
||||
}
|
||||
// 提示节点放在可编辑正文区域外层,保证用户无法删除且保存内容不携带该提示。
|
||||
this.topTipElement.innerText = this.topTip
|
||||
if (textContainer.firstChild !== this.topTipElement) {
|
||||
textContainer.insertBefore(this.topTipElement, textContainer.firstChild)
|
||||
}
|
||||
},
|
||||
removeTopTip() {
|
||||
if (this.topTipElement && this.topTipElement.parentNode) {
|
||||
this.topTipElement.parentNode.removeChild(this.topTipElement)
|
||||
}
|
||||
},
|
||||
uploadFiles(resultFiles) {
|
||||
return resultFiles.map(async (file) => {
|
||||
|
||||
@@ -133,6 +133,12 @@ module.exports = {
|
||||
default: 1024 * 1024 * 10,
|
||||
required: false
|
||||
},
|
||||
// 是否限制上传文件大小,默认保留原有大小校验逻辑。
|
||||
limit_upload_size: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
required: false
|
||||
},
|
||||
// 上传按钮文字
|
||||
upload_text: {
|
||||
type: String,
|
||||
@@ -216,7 +222,7 @@ module.exports = {
|
||||
} else {
|
||||
tips = tips + '不限格式;'
|
||||
}
|
||||
if (fileSize) {
|
||||
if (this.limit_upload_size && fileSize) {
|
||||
tips = tips + `单个文件大小不能超过<span style="color: red">${fileSize / 1024 / 1024}</span>M;`
|
||||
}
|
||||
return tips
|
||||
@@ -313,7 +319,8 @@ module.exports = {
|
||||
// 这是兜底逻辑,保准只让这个image类型上传图片
|
||||
beforeUpload(file) {
|
||||
|
||||
if (file.size > this.upload_size) {
|
||||
// 需要兼容部分业务不限制附件大小,关闭后仅跳过大小校验,不影响数量和格式控制。
|
||||
if (this.limit_upload_size && file.size > this.upload_size) {
|
||||
this.$message.error("文件过大,请上传小于" + (this.upload_size / 1024 / 1024).toFixed(0) + "M的文件!")
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -419,6 +419,25 @@ layout("/layouts/v4/baseLayout.html"){
|
||||
},
|
||||
|
||||
defaultSelect() {
|
||||
// 应用中心点击根菜单时会缓存完整应用信息,根菜单配置了href则应优先进入根菜单页面。
|
||||
try {
|
||||
const rootApp = JSON.parse(window.sessionStorage.getItem("zhgh_sub_app"))
|
||||
const currentAppId = GetQueryString("appId")
|
||||
const hasRootHref = rootApp && typeof rootApp.href === "string" && rootApp.href.trim() !== ""
|
||||
// 校验缓存应用与当前URL一致,避免复用旧标签页缓存时跳转到其他应用。
|
||||
if (hasRootHref && String(rootApp.id) === currentAppId) {
|
||||
this.activeMenuIndex = rootApp.id
|
||||
this.openedMenus = []
|
||||
this.$nextTick(() => {
|
||||
this.menuSelect(this.activeMenuIndex, this.openedMenus)
|
||||
commonUtil.pjaxPush(getBaseSubAppPath(rootApp.href))
|
||||
})
|
||||
return
|
||||
}
|
||||
} catch (e) {
|
||||
// 根菜单缓存缺失或格式异常时,继续使用子菜单href作为默认入口。
|
||||
}
|
||||
|
||||
// 查找第一个有href的子菜单
|
||||
function findFirstChildWithHref(menus) {
|
||||
for (const menu of menus) {
|
||||
|
||||
@@ -19,7 +19,7 @@ const branchUnionGroupManage = {
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card shadow="never" style="border: 1px solid var(--border-color-lighter); margin-top: 10px">
|
||||
<el-table :data="tableData" border>
|
||||
<el-table :data="tableData" :height="table_height ? Math.max(200, table_height - 90) : null" border>
|
||||
<el-table-column type="index" width="50" label="序号"></el-table-column>
|
||||
<el-table-column prop="code" label="小组编码" width="120px"></el-table-column>
|
||||
<el-table-column prop="name" label="小组名称" width="200px"></el-table-column>
|
||||
@@ -85,6 +85,11 @@ const branchUnionGroupManage = {
|
||||
union_id: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// 工会小组列表包含分页,父页面传入高度后预留分页区域。
|
||||
table_height: {
|
||||
type: Number,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
||||
@@ -16,7 +16,7 @@ const branchUnionPartUnitManage = {
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card shadow="never" style="border: 1px solid var(--border-color-lighter); margin-top: 10px">
|
||||
<el-table :data="tableData" border>
|
||||
<el-table :data="tableData" :height="table_height ? Math.max(200, table_height - 40) : null" border>
|
||||
<el-table-column type="index" width="50" label="序号"></el-table-column>
|
||||
<el-table-column prop="unitcode" label="单位编码"></el-table-column>
|
||||
<el-table-column prop="name" label="单位名称"></el-table-column>
|
||||
@@ -48,6 +48,11 @@ const branchUnionPartUnitManage = {
|
||||
union_id: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// 父页面可传入可用高度;默认值保持组件在其他页面的原有展示能力。
|
||||
table_height: {
|
||||
type: Number,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
||||
@@ -45,7 +45,7 @@ const branchUnionUserManage = {
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card shadow="never" style="border: 1px solid var(--border-color-lighter); margin-top: 10px">
|
||||
<el-table :data="tableData" border size="small">
|
||||
<el-table :data="tableData" :height="table_height ? Math.max(200, table_height - 40) : null" border size="small">
|
||||
<el-table-column prop="loginName" label="工号"></el-table-column>
|
||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="mobile" label="联系方式"></el-table-column>
|
||||
@@ -123,6 +123,11 @@ const branchUnionUserManage = {
|
||||
union_id: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
// 父页面可传入可用高度;默认值保持组件在其他页面的原有展示能力。
|
||||
table_height: {
|
||||
type: Number,
|
||||
default: null
|
||||
}
|
||||
},
|
||||
data() {
|
||||
|
||||
@@ -15,10 +15,10 @@ layout("/layouts/platform.html"){
|
||||
<table-tool>
|
||||
<el-button type="primary" size="mini" icon="el-icon-plus" @click="openAdd">新增</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" border stripe>
|
||||
<el-table :data="tableData" border stripe @sort-change="pageOrder">
|
||||
<el-table-column label="序号" type="index" :index="indexMethod" width="50px"></el-table-column>
|
||||
<el-table-column prop="name" label="名称"></el-table-column>
|
||||
<el-table-column prop="code" label="编码"></el-table-column>
|
||||
<el-table-column prop="name" label="名称" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="code" label="编码" sortable="custom"></el-table-column>
|
||||
<el-table-column label="操作" width="150px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="openEdit(row)">编辑</el-button>
|
||||
|
||||
@@ -23,12 +23,12 @@ layout("/layouts/platform.html"){
|
||||
<table-tool>
|
||||
<el-button type="primary" size="small" icon="el-icon-refresh" @click="syncSysUnit">同步系统单位</el-button>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" border ref="tableRef" height="100%">
|
||||
<el-table :data="tableData" border ref="tableRef" height="100%" @sort-change="pageOrder">
|
||||
<el-table-column label="序号" type="index" :index="indexMethod" width="60"></el-table-column>
|
||||
<el-table-column prop="name" label="单位名称" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="code" label="单位编码" width="150px"></el-table-column>
|
||||
<el-table-column prop="name" label="单位名称" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="code" label="单位编码" sortable="custom" width="150px"></el-table-column>
|
||||
<!-- <el-table-column prop="branchSchoolLeader" label="分管校领导及联系方式" width="180px"></el-table-column>-->
|
||||
<el-table-column prop="unitLeader" label="单位领导及联系方式" width="180px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="unitLeader" label="单位领导及联系方式" sortable="custom" width="180px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="操作" width="350px">
|
||||
<template slot-scope="{row}">
|
||||
<!-- <el-button size="mini" type="primary" @click="$refs.userRef.onOpen(row.id,true)">设置分管校领导</el-button>-->
|
||||
|
||||
@@ -196,26 +196,26 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="主办单位" prop="masterUnitName" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="协办单位" prop="slaveUnitNames" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column label="主办单位" prop="masterUnitName" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="协办单位" prop="slaveUnitNames" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
|
||||
+1
@@ -137,6 +137,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+3
-2
@@ -1,4 +1,4 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
@@ -31,7 +31,8 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+33
-15
@@ -1,4 +1,4 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<style>
|
||||
@@ -204,11 +204,12 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<el-button size="mini" type="primary" @click="exportStatistics">导出统计数据</el-button>
|
||||
</div>
|
||||
<el-table :data="statisticsRows" border stripe style="width: 100%" v-loading="tableLoading">
|
||||
<el-table-column prop="dimension" label="统计维度" width="180"></el-table-column>
|
||||
<el-table-column prop="itemName" label="分类项" min-width="260" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="count" label="数量" width="120"></el-table-column>
|
||||
<el-table-column prop="rate" label="占比" width="120"></el-table-column>
|
||||
<el-table :data="statisticsRows" border stripe style="width: 100%" v-loading="tableLoading"
|
||||
@sort-change="statisticsOrder">
|
||||
<el-table-column prop="dimension" label="统计维度" sortable="custom" width="180"></el-table-column>
|
||||
<el-table-column prop="itemName" label="分类项" sortable="custom" min-width="260" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="count" label="数量" sortable="custom" width="120"></el-table-column>
|
||||
<el-table-column prop="rate" label="占比" sortable="custom" width="120"></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
@@ -220,14 +221,15 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<el-button size="mini" type="primary" @click="exportAnalysis">导出分析数据</el-button>
|
||||
</div>
|
||||
<el-table :data="analysisRows" border stripe style="width: 100%" v-loading="tableLoading">
|
||||
<el-table-column prop="dimension" label="统计维度" width="160"></el-table-column>
|
||||
<el-table-column prop="total" label="总量" width="100"></el-table-column>
|
||||
<el-table-column prop="categoryCount" label="分类数量" width="120"></el-table-column>
|
||||
<el-table-column prop="topItem" label="最高项" min-width="180" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="topCount" label="最高数量" width="120"></el-table-column>
|
||||
<el-table-column prop="topRate" label="最高占比" width="120"></el-table-column>
|
||||
<el-table-column prop="analysis" label="分析结论" min-width="320" show-overflow-tooltip></el-table-column>
|
||||
<el-table :data="analysisRows" border stripe style="width: 100%" v-loading="tableLoading"
|
||||
@sort-change="analysisOrder">
|
||||
<el-table-column prop="dimension" label="统计维度" sortable="custom" width="160"></el-table-column>
|
||||
<el-table-column prop="total" label="总量" sortable="custom" width="100"></el-table-column>
|
||||
<el-table-column prop="categoryCount" label="分类数量" sortable="custom" width="120"></el-table-column>
|
||||
<el-table-column prop="topItem" label="最高项" sortable="custom" min-width="180" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column prop="topCount" label="最高数量" sortable="custom" width="120"></el-table-column>
|
||||
<el-table-column prop="topRate" label="最高占比" sortable="custom" width="120"></el-table-column>
|
||||
<el-table-column prop="analysis" label="分析结论" sortable="custom" min-width="320" show-overflow-tooltip></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
@@ -283,7 +285,11 @@ layout("/layouts/platform.html"){
|
||||
return {
|
||||
pageForm: {
|
||||
sessionId: "",
|
||||
dimension: ""
|
||||
dimension: "",
|
||||
statisticsOrderName: "",
|
||||
statisticsOrderBy: "",
|
||||
analysisOrderName: "",
|
||||
analysisOrderBy: ""
|
||||
},
|
||||
dimensionOptions: [
|
||||
{label: "提案人单位", value: "提案人单位"},
|
||||
@@ -320,6 +326,18 @@ layout("/layouts/platform.html"){
|
||||
this.listSession()
|
||||
},
|
||||
methods: {
|
||||
// 统计数据表使用独立排序参数,避免与分析数据表的排序状态相互覆盖。
|
||||
statisticsOrder(column) {
|
||||
this.pageForm.statisticsOrderName = column.prop
|
||||
this.pageForm.statisticsOrderBy = column.order
|
||||
this.doSearch()
|
||||
},
|
||||
// 分析数据表使用独立排序参数,两个接口刷新时分别应用各自白名单。
|
||||
analysisOrder(column) {
|
||||
this.pageForm.analysisOrderName = column.prop
|
||||
this.pageForm.analysisOrderBy = column.order
|
||||
this.doSearch()
|
||||
},
|
||||
toggleChartView() {
|
||||
this.showChart = !this.showChart
|
||||
if (this.showChart) {
|
||||
|
||||
+1
@@ -89,6 +89,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+6
@@ -206,6 +206,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
@@ -214,6 +215,11 @@ layout("/layouts/platform.html"){
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
<!-- 立案类型在数据库中保存字典编码,列表统一转换为中文名称展示。 -->
|
||||
<template v-else-if="column.prop === 'caseFilingType'" scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_TYPE"
|
||||
:value="row.caseFilingType"></dict-tag>
|
||||
</template>
|
||||
<template v-else-if="column.prop === 'merge'" scope="{row}">
|
||||
<el-tag v-if="row.merge" size="small">是</el-tag>
|
||||
<el-tag v-else type="warning" size="small">否</el-tag>
|
||||
|
||||
+30
-2
@@ -14,7 +14,8 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="代表团列表" :columns.sync="tableColumns"></table-tool>
|
||||
<el-table :data="tableData" ref="tableRef" header-align="center" style="width: 100%" row-key="id" show-summary>
|
||||
<el-table :data="tableData" ref="tableRef" header-align="center" style="width: 100%" row-key="id"
|
||||
show-summary @sort-change="pageOrder">
|
||||
<el-table-column
|
||||
:index="indexMethod"
|
||||
label="序号"
|
||||
@@ -28,6 +29,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
@@ -61,6 +63,30 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
||||
<!-- 提案明细组件模板独立放在页面中,避免在JavaScript中使用模板字符串。 -->
|
||||
<script type="text/x-template" id="proposal-table-template" nonce="${cspNonce!}">
|
||||
<div>
|
||||
<el-table :data="tableData" ref="tableRef" header-align="center" style="width: 100%" row-key="id"
|
||||
@sort-change="pageOrder">
|
||||
<el-table-column label="序号" width="50px" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="200px"></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="届次" prop="sessionName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="当前节点" prop="curTaskName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="100px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="$emit('view-single-proposal',row)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("proposalTable.js"){}#-->
|
||||
<!--#include("../../common/info.js"){}#-->
|
||||
@@ -128,7 +154,9 @@ layout("/layouts/platform.html"){
|
||||
pageData() {
|
||||
this.$axios
|
||||
.post(loc() + "/pageData", {
|
||||
sessionId: this.sessionId
|
||||
sessionId: this.sessionId,
|
||||
pageOrderName: this.pageForm.pageOrderName,
|
||||
pageOrderBy: this.pageForm.pageOrderBy
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
|
||||
+2
-20
@@ -1,24 +1,6 @@
|
||||
const PROPOSAL_TABLE = {
|
||||
template: `
|
||||
<div>
|
||||
<el-table :data="tableData" ref="tableRef" header-align="center" style="width: 100%" row-key="id" @sort-change="pageOrder">
|
||||
<el-table-column label="序号" width="50px" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="200px"></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name"></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="届次" prop="sessionName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="当前节点" prop="curTaskName"></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="100px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="$emit('view-single-proposal',row)">查看</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</div>
|
||||
`,
|
||||
// 组件模板由页面中的text/x-template节点提供,避免使用JavaScript模板字符串。
|
||||
template: "#proposal-table-template",
|
||||
props: {
|
||||
sessionId: {
|
||||
type: String,
|
||||
|
||||
+11
-11
@@ -94,35 +94,35 @@ layout("/layouts/platform.html"){
|
||||
<table-tool></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="120px" sortable></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="届次" prop="sessionName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" width="120px" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="届次" prop="sessionName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="立案类型" prop="caseFilingType">
|
||||
<el-table-column label="立案类型" prop="caseFilingType" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_TYPE"
|
||||
:value="row.caseFilingType"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="merge">
|
||||
<el-table-column label="是否并案" prop="merge" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<el-tag v-if="row.merge" size="small">是</el-tag>
|
||||
<el-tag v-else type="warning" size="small">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="承办单位" prop="undertakeUnits" show-overflow-tooltip>
|
||||
<el-table-column label="承办单位" prop="undertakeUnits" sortable="custom" show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
{{ getUndertakeDisplay(row) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
|
||||
+9
-9
@@ -24,19 +24,19 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-table :data="tableData">
|
||||
<el-table :data="tableData" @sort-change="pageOrder">
|
||||
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="单位名称" prop="unitName" width="400" sortable show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案总数" prop="sum" sortable></el-table-column>
|
||||
<el-table-column label="单位名称" prop="unitName" width="400" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案总数" prop="sum" sortable="custom"></el-table-column>
|
||||
<el-table-column label="主办提案">
|
||||
<el-table-column label="提案数量" prop="masterSum" sortable></el-table-column>
|
||||
<el-table-column label="已答复" prop="masterReplySum" sortable></el-table-column>
|
||||
<el-table-column label="未答复" prop="masterNoReplySum" sortable></el-table-column>
|
||||
<el-table-column label="提案数量" prop="masterSum" sortable="custom"></el-table-column>
|
||||
<el-table-column label="已答复" prop="masterReplySum" sortable="custom"></el-table-column>
|
||||
<el-table-column label="未答复" prop="masterNoReplySum" sortable="custom"></el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="协办提案">
|
||||
<el-table-column label="提案数量" prop="slaveSum" sortable></el-table-column>
|
||||
<el-table-column label="已答复" prop="slaveReplySum" sortable v-if="slaveNeedReply"></el-table-column>
|
||||
<el-table-column label="未答复" prop="slaveNoReplySum" sortable v-if="slaveNeedReply"></el-table-column>
|
||||
<el-table-column label="提案数量" prop="slaveSum" sortable="custom"></el-table-column>
|
||||
<el-table-column label="已答复" prop="slaveReplySum" sortable="custom" v-if="slaveNeedReply"></el-table-column>
|
||||
<el-table-column label="未答复" prop="slaveNoReplySum" sortable="custom" v-if="slaveNeedReply"></el-table-column>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
+6
-6
@@ -22,14 +22,14 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never">
|
||||
<el-table :data="tableData">
|
||||
<el-table :data="tableData" @sort-change="pageOrder">
|
||||
<el-table-column label="序号" type="index" width="50"></el-table-column>
|
||||
<el-table-column label="单位名称" prop="unitName" width="400" sortable show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案总数" prop="sum" sortable></el-table-column>
|
||||
<el-table-column label="主办提案数" prop="masterSum" sortable></el-table-column>
|
||||
<el-table-column label="协办提案数" prop="slaveSum" sortable></el-table-column>
|
||||
<el-table-column label="单位名称" prop="unitName" width="400" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案总数" prop="sum" sortable="custom"></el-table-column>
|
||||
<el-table-column label="主办提案数" prop="masterSum" sortable="custom"></el-table-column>
|
||||
<el-table-column label="协办提案数" prop="slaveSum" sortable="custom"></el-table-column>
|
||||
<template v-for="dict in dict.type.PROPOSAL_FEEDBACK">
|
||||
<el-table-column :label="dict.label" :prop="dict.code" sortable></el-table-column>
|
||||
<el-table-column :label="dict.label" :prop="dict.code" sortable="custom"></el-table-column>
|
||||
</template>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
+10
-10
@@ -96,29 +96,29 @@ layout("/layouts/platform.html"){
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="承办单位" prop="undertakeUnits" show-overflow-tooltip>
|
||||
<el-table-column label="承办单位" prop="undertakeUnits" sortable="custom" show-overflow-tooltip>
|
||||
<template slot-scope="{row}">
|
||||
{{ getUndertakeDisplay(row) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
|
||||
@@ -76,25 +76,25 @@ layout("/layouts/platform.html"){
|
||||
<table-tool></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="warning">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
|
||||
+12
-12
@@ -9,7 +9,7 @@ layout("/layouts/platform.html"){
|
||||
<el-card shadow="never">
|
||||
<search @search="doSearch">
|
||||
<search-item label="教代会">
|
||||
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会" v-model="pageForm.sessionId">
|
||||
<el-select @change="meetingChange" clearable filterable placeholder="所属教代会" v-model="pageForm.searchSessionId">
|
||||
<el-option :key="item.id" :label="item.fullName" :value="item.id" v-for="item in sessionOptions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
@@ -70,24 +70,24 @@ layout("/layouts/platform.html"){
|
||||
<table-tool></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message" size="small"></enum-tag>
|
||||
</template>
|
||||
@@ -157,7 +157,7 @@ layout("/layouts/platform.html"){
|
||||
this.listDelegation()
|
||||
},
|
||||
listDelegation() {
|
||||
this.$axios.post("/platform/proposal/common/listDelegation", { sessionId: this.pageForm.sessionId }).then((res) => {
|
||||
this.$axios.post("/platform/proposal/common/listDelegation", { sessionId: this.pageForm.searchSessionId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.delegationOptions = res.data
|
||||
}
|
||||
@@ -168,7 +168,7 @@ layout("/layouts/platform.html"){
|
||||
if (res.code === 0) {
|
||||
this.sessionOptions = res.data
|
||||
if (this.sessionOptions) {
|
||||
this.$set(this.pageForm, "sessionId", this.sessionOptions[0].id)
|
||||
this.$set(this.pageForm, "searchSessionId", this.sessionOptions[0].id)
|
||||
this.listDelegation()
|
||||
this.pageData()
|
||||
}
|
||||
|
||||
+2
-2
@@ -58,7 +58,7 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:width="column.width"
|
||||
:sortable="column.sortable"
|
||||
sortable="custom"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
@@ -95,7 +95,7 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:key="column.prop"
|
||||
:width="column.width"
|
||||
:sortable="column.sortable"
|
||||
sortable="custom"
|
||||
align="center"
|
||||
header-align="center"
|
||||
show-overflow-tooltip
|
||||
|
||||
+10
-10
@@ -76,31 +76,31 @@ layout("/layouts/platform.html"){
|
||||
<table-tool></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="warning">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="反馈评价" prop="tf_feedback" width="150px">
|
||||
<el-table-column label="反馈评价" prop="tf_feedback" sortable="custom" width="150px">
|
||||
<template slot-scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_FEEDBACK" :value="row.tf_feedback"></dict-tag>
|
||||
</template>
|
||||
|
||||
@@ -70,24 +70,24 @@ layout("/layouts/platform.html"){
|
||||
<table-tool></table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" header-align="center" style="width: 100%" row-key="id">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom" width="100px" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
|
||||
+1
@@ -34,6 +34,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -48,6 +48,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -44,6 +44,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -75,6 +75,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -76,6 +76,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+3
-2
@@ -1,4 +1,4 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
@@ -28,7 +28,8 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -38,6 +38,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+8
-9
@@ -39,6 +39,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
@@ -196,15 +197,13 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
|
||||
// 获取立案信息
|
||||
async getCaseInfo(instId) {
|
||||
const {
|
||||
data,
|
||||
code
|
||||
} = await this.$axios.post('/platform/proposal/feedbackEvaluation/caseInfo', {instId})
|
||||
if (code === 0) {
|
||||
return data
|
||||
}
|
||||
// 获取立案信息并返回 Promise,供表单初始化按原顺序等待结果。
|
||||
getCaseInfo(instId) {
|
||||
return this.$axios.post('/platform/proposal/feedbackEvaluation/caseInfo', {instId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
return res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 教代会
|
||||
|
||||
+7
-7
@@ -24,13 +24,13 @@ layout("/layouts/platform.html"){
|
||||
</table-tool>
|
||||
<el-table :data="tableData" @sort-change="pageOrder" style="width: 100%">
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code"></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName"></el-table-column>
|
||||
<el-table-column label="届次" prop="sessionName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案类别" prop="typeName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="届次" prop="sessionName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="curTaskName" label="当前节点" sortable="custom"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态" sortable="custom">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message" size="small"></enum-tag>
|
||||
</template>
|
||||
|
||||
@@ -35,6 +35,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
@@ -147,6 +148,74 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<script type="text/x-template" id="proposal-invite-seconder-template">
|
||||
<div>
|
||||
<search @search="doSearch">
|
||||
<search-item label="关键字">
|
||||
<el-input v-model="pageForm.searchKeyword" placeholder="请输入工号或者姓名查询"
|
||||
clearable></el-input>
|
||||
</search-item>
|
||||
<search-item label="代表团">
|
||||
<el-select clearable filterable placeholder="所属代表团" v-model="pageForm.delegationId"
|
||||
style="width: 100%">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in delegationOptions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
|
||||
<div style="display: flex;column-gap: 50px;">
|
||||
<div style="flex: 1">
|
||||
<el-divider class="mt10 mb10"></el-divider>
|
||||
<div>
|
||||
<table-tool label="代表数据">
|
||||
<el-radio-group v-model="pageForm.isInvite" @change="doSearch" size="small"
|
||||
style="margin-left: 5px;">
|
||||
<el-radio-button :label="true">已邀请</el-radio-button>
|
||||
<el-radio-button :label="false">可邀请</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" ref="tableRef" @sort-change="pageOrder" header-align="center"
|
||||
style="width: 100%" :row-key="getRowKey">
|
||||
<el-table-column type="selection" reserve-selection
|
||||
v-if="!pageForm.isInvite"></el-table-column>
|
||||
<el-table-column label="序号" width="50px" type="index"
|
||||
:index="indexMethod"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" sortable="custom"></el-table-column>
|
||||
<el-table-column label="单位" prop="unitName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="flex: 1">
|
||||
<el-divider class="mt10 mb10"></el-divider>
|
||||
<div v-if="$refs.tableRef">
|
||||
<table-tool label="当前已选择"></table-tool>
|
||||
<el-table :data="$refs.tableRef.selection">
|
||||
<el-table-column label="序号" width="50px" type="index"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName" sortable></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName" sortable></el-table-column>
|
||||
<el-table-column label="性别" prop="sex" sortable></el-table-column>
|
||||
<el-table-column label="单位" prop="unitName" sortable></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionName" sortable></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable></el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-row type="flex" justify="center" class="p10">
|
||||
<el-button @click="">取消</el-button>
|
||||
<el-button @click="invite" type="primary">邀请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../../common/info.js"){}#-->
|
||||
<!--#include("inviteSeconder.js"){}#-->
|
||||
|
||||
+8
-82
@@ -1,81 +1,5 @@
|
||||
const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
/*language=HTML*/
|
||||
template: `
|
||||
<div>
|
||||
<search @search="doSearch">
|
||||
<search-item label="关键字">
|
||||
<el-input v-model="pageForm.searchKeyword" placeholder="请输入工号或者姓名查询"
|
||||
clearable></el-input>
|
||||
</search-item>
|
||||
<search-item label="代表团">
|
||||
<el-select clearable filterable placeholder="所属代表团" v-model="pageForm.delegationId"
|
||||
style="width: 100%">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in delegationOptions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
</search>
|
||||
|
||||
<div style="display: flex;column-gap: 50px;">
|
||||
<div style="flex: 1">
|
||||
<el-divider class="mt10 mb10"></el-divider>
|
||||
<div>
|
||||
<table-tool label="代表数据">
|
||||
<!-- <el-button size="small" @click="invite" type="primary" icon="el-icon-plus"-->
|
||||
<!-- :disabled="pageForm.isInvite">邀请-->
|
||||
<!-- </el-button>-->
|
||||
<el-radio-group v-model="pageForm.isInvite" @change="doSearch" size="small"
|
||||
style="margin-left: 5px;">
|
||||
<el-radio-button :label="true">已邀请</el-radio-button>
|
||||
<el-radio-button :label="false">可邀请</el-radio-button>
|
||||
</el-radio-group>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" ref="tableRef" @sort-change="pageOrder" header-align="center"
|
||||
style="width: 100%" :row-key="getRowKey">
|
||||
<el-table-column type="selection" reserve-selection
|
||||
v-if="!pageForm.isInvite"></el-table-column>
|
||||
<el-table-column label="序号" width="50px" type="index"
|
||||
:index="indexMethod"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName"></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||
<el-table-column label="单位" prop="unitName"></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<!-- <el-table-column label="操作" width="150px">-->
|
||||
<!-- <template scope="{row}">-->
|
||||
<!-- <el-button size="mini" type="primary" @click="invite(row)">邀请</el-button>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="flex: 1">
|
||||
<el-divider class="mt10 mb10"></el-divider>
|
||||
<div v-if="$refs.tableRef">
|
||||
<table-tool label="当前已选择"></table-tool>
|
||||
|
||||
<el-table :data="$refs.tableRef.selection">
|
||||
<el-table-column label="序号" width="50px" type="index"></el-table-column>
|
||||
<el-table-column label="工号" prop="loginName"></el-table-column>
|
||||
<el-table-column label="姓名" prop="userName"></el-table-column>
|
||||
<el-table-column label="性别" prop="sex"></el-table-column>
|
||||
<el-table-column label="单位" prop="unitName"></el-table-column>
|
||||
<el-table-column label="分工会" prop="unionName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
</el-table>
|
||||
|
||||
<el-row type="flex" justify="center" class="p10">
|
||||
<el-button @click="">取消</el-button>
|
||||
<el-button @click="invite" type="primary">邀请</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`,
|
||||
template: "#proposal-invite-seconder-template",
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
return {
|
||||
@@ -173,11 +97,13 @@ const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
})
|
||||
},
|
||||
|
||||
async getConfig() {
|
||||
const {code, data} = await this.$axios.post("/platform/proposal/common/config")
|
||||
if (code === 0) {
|
||||
this.config = data
|
||||
}
|
||||
// 加载附议人数配置,并返回 Promise 保证弹窗按原顺序初始化。
|
||||
getConfig() {
|
||||
return this.$axios.post("/platform/proposal/common/config").then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.config = res.data
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -49,6 +49,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -72,6 +72,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -36,6 +36,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+2
-1
@@ -109,7 +109,8 @@ layout("/layouts/platform.html"){
|
||||
:prop="column.prop"
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+1
@@ -45,6 +45,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+9
-9
@@ -54,29 +54,29 @@ layout("/layouts/platform.html"){
|
||||
:row-key="(val)=>{val.id + val.processInstanceTaskId}"
|
||||
>
|
||||
<el-table-column label="序号" width="50" type="index" :index="indexMethod"></el-table-column>
|
||||
<el-table-column label="提案编号" prop="code" sortable></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult">
|
||||
<el-table-column label="提案编号" prop="code" sortable="custom"></el-table-column>
|
||||
<el-table-column label="提案名称" prop="name" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="提案人" prop="createUserName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="代表团" prop="delegationName" sortable="custom"></el-table-column>
|
||||
<el-table-column label="立案结果" prop="caseFilingResult" sortable="custom">
|
||||
<template scope="{row}">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="row.caseFilingResult"></dict-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否并案" prop="isConsolidation" width="100">
|
||||
<el-table-column label="是否并案" prop="isConsolidation" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag size="mini" v-if="row.isConsolidation" type="success">是</el-tag>
|
||||
<el-tag size="mini" v-else type="danger">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否主办" prop="isMasterUnderTake" width="100">
|
||||
<el-table-column label="是否主办" prop="isMasterUnderTake" sortable="custom" width="100">
|
||||
<template scope="{row}">
|
||||
<el-tag v-if="row.isMasterUnderTake" size="mini" type="success">是</el-tag>
|
||||
<el-tag v-else size="mini" type="info">否</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="承办单位" prop="underTakeName" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="当前节点" prop="processInstanceNodeName" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="承办单位" prop="underTakeName" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="当前节点" prop="processInstanceNodeName" sortable="custom" show-overflow-tooltip></el-table-column>
|
||||
<el-table-column label="操作" fixed="right" width="100px">
|
||||
<template scope="{row}">
|
||||
<el-button size="mini" type="primary" @click="onOpen(row)">查看</el-button>
|
||||
|
||||
+2
-1
@@ -110,6 +110,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
@@ -131,7 +132,7 @@ layout("/layouts/platform.html"){
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="转交" prop="transfer"
|
||||
<el-table-column label="转交" prop="transfer" sortable="custom"
|
||||
v-if="pageForm.approval && $auth.hasRoleOr('SYSADMIN,PROPOSAL_UNIT_LEADER')">
|
||||
<template slot-scope="{row}">
|
||||
{{row.transferUserName}}
|
||||
|
||||
+1
@@ -37,6 +37,7 @@ layout("/layouts/platform.html"){
|
||||
:key="column.key"
|
||||
:min-width="column.width"
|
||||
:fixed="column.fixed"
|
||||
sortable="custom"
|
||||
show-overflow-tooltip
|
||||
v-for="column in tableColumns"
|
||||
v-if="column.visible !== false"
|
||||
|
||||
+3
-2
@@ -142,11 +142,11 @@ layout("/layouts/platform.html"){
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="案由" prop="brief">
|
||||
<text-editor v-model="formData.brief" key="brief" placeholder="案由"></text-editor>
|
||||
<text-editor v-model="formData.brief" key="brief" top-tip="(提案内容已进入深入调研,具备真实性、广泛性、代表性)"></text-editor>
|
||||
</el-form-item>
|
||||
<el-form-item label="建议措施" prop="measures">
|
||||
<text-editor v-model="formData.measures" key="measures"
|
||||
placeholder="建议措施"></text-editor>
|
||||
top-tip="(建议措施内容具体,具备科学性,可执行性)"></text-editor>
|
||||
</el-form-item>
|
||||
<el-form-item label="附件上传" prop="files">
|
||||
<file-upload
|
||||
@@ -154,6 +154,7 @@ layout("/layouts/platform.html"){
|
||||
:upload_number="5"
|
||||
upload_result_category="array"
|
||||
upload_mode="drag"
|
||||
:limit_upload_size="false"
|
||||
complete_result
|
||||
></file-upload>
|
||||
</el-form-item>
|
||||
|
||||
@@ -49,13 +49,13 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="unionName" label="所属工会"></el-table-column>
|
||||
<el-table-column prop="unitName" label="所属单位"></el-table-column>
|
||||
<!-- <el-table-column prop="submitTime" label="投稿时间"></el-table-column>-->
|
||||
<el-table-column prop="curTaskName" label="当前节点"></el-table-column>
|
||||
<el-table-column prop="instanceState" label="流程状态">
|
||||
<template slot-scope="{row}">
|
||||
<enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"
|
||||
size="small"></enum-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column prop="curTaskName" label="当前节点"></el-table-column>-->
|
||||
<!-- <el-table-column prop="instanceState" label="流程状态">-->
|
||||
<!-- <template slot-scope="{row}">-->
|
||||
<!-- <enum-tag :value="row.instanceState" name="ProcessInstanceStateEnum" label_key="message"-->
|
||||
<!-- size="small"></enum-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="操作" fixed="right" width="200px">
|
||||
<template slot-scope="{row}">
|
||||
<el-button @click="openView(row)" size="mini" type="primary">查看</el-button>
|
||||
|
||||
+12
-10
@@ -25,13 +25,14 @@ const HEAD_FORM_TEMPLATE = {
|
||||
placeholder="请输入工号或者姓名"
|
||||
style="width: 100%"></user-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="viceUserId" label="副团长">
|
||||
<user-select v-model="formData.viceUserId"
|
||||
<el-form-item prop="viceUserIds" label="副团长">
|
||||
<user-select v-model="formData.viceUserIds"
|
||||
v-if="headDialogFormVisible"
|
||||
api="/platform/teacherCongress/delegation/notHeadUser"
|
||||
:api_params="{sessionId:formData.sessionId,delegationId:formData.delegationId}"
|
||||
api_input_key_name="keyWord"
|
||||
:option_list="viceHeadOptions"
|
||||
:multiple="true"
|
||||
option_value="userId"
|
||||
:option_label_func="(item)=>{return item.userName + item.loginName + '(' + item.unitName + ')'}"
|
||||
placeholder="请输入工号或者姓名"
|
||||
@@ -70,7 +71,7 @@ const HEAD_FORM_TEMPLATE = {
|
||||
name: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
code: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
userId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
//viceUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
//viceUserIds: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||
//contactUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}]
|
||||
}
|
||||
}
|
||||
@@ -84,7 +85,8 @@ const HEAD_FORM_TEMPLATE = {
|
||||
this.listSession()
|
||||
this.formData = {
|
||||
sessionId,
|
||||
delegationId
|
||||
delegationId,
|
||||
viceUserIds: []
|
||||
}
|
||||
this.findHeadUser()
|
||||
},
|
||||
@@ -97,8 +99,8 @@ const HEAD_FORM_TEMPLATE = {
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
if (res.data) {
|
||||
this.headOptions = [res.data]
|
||||
this.$set(this.formData, "userId", res.data.userId)
|
||||
this.headOptions = res.data
|
||||
this.$set(this.formData, "userId", res.data.length > 0 ? res.data[0].userId : null)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -108,8 +110,8 @@ const HEAD_FORM_TEMPLATE = {
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
if (res.data) {
|
||||
this.viceHeadOptions = [res.data]
|
||||
this.$set(this.formData, "viceUserId", res.data.userId)
|
||||
this.viceHeadOptions = res.data
|
||||
this.$set(this.formData, "viceUserIds", res.data.map((item) => item.userId))
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -119,8 +121,8 @@ const HEAD_FORM_TEMPLATE = {
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
if (res.data) {
|
||||
this.contactOptions = [res.data]
|
||||
this.$set(this.formData, "contactUserId", res.data.userId)
|
||||
this.contactOptions = res.data
|
||||
this.$set(this.formData, "contactUserId", res.data.length > 0 ? res.data[0].userId : null)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
+20
-12
@@ -6,12 +6,13 @@ const HEAD_TABLE_TEMPLATE = {
|
||||
</table-tool>
|
||||
<el-table :data="tableData" border>
|
||||
<el-table-column type="index" label="序号" width="100px"></el-table-column>
|
||||
<el-table-column prop="roleName" label="类型"></el-table-column>
|
||||
<el-table-column prop="loginName" label="工号"></el-table-column>
|
||||
<el-table-column prop="userName" label="姓名"></el-table-column>
|
||||
<el-table-column prop="mobile" label="电话"></el-table-column>
|
||||
<el-table-column label="操作" width="100px">
|
||||
<template scope="scope">
|
||||
<el-link type="danger" @click="doDelete(scope.row.userId)">删除</el-link>
|
||||
<el-link type="danger" @click="doDelete(scope.row.userId, scope.row.roleType)">删除</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@@ -52,27 +53,33 @@ const HEAD_TABLE_TEMPLATE = {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 查询团长和副团长,副团长可能存在多人,需要完整展示。
|
||||
pageData() {
|
||||
this.$axios
|
||||
const headRequest = this.listHeadUser("TEACHER_CONGRESS_DELEGATION_HEAD", "团长")
|
||||
const viceHeadRequest = this.listHeadUser("TEACHER_CONGRESS_VICE_DELEGATION_HEAD", "副团长")
|
||||
Promise.all([headRequest, viceHeadRequest]).then((values) => {
|
||||
this.tableData = values[0].concat(values[1])
|
||||
})
|
||||
},
|
||||
// 按角色查询负责人,并补充表格展示所需的角色名称和角色编码。
|
||||
listHeadUser(roleType, roleName) {
|
||||
return this.$axios
|
||||
.post("/platform/teacherCongress/delegation/headUser", {
|
||||
...this.pageForm,
|
||||
sessionId: this.session_id,
|
||||
delegationId: this.delegation_id
|
||||
delegationId: this.delegation_id,
|
||||
type: roleType
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
if (res.data) {
|
||||
this.tableData = [res.data]
|
||||
} else {
|
||||
this.tableData = []
|
||||
}
|
||||
if (res.code === 0 && res.data) {
|
||||
return res.data.map((item) => Object.assign({roleName, roleType}, item))
|
||||
}
|
||||
return []
|
||||
})
|
||||
},
|
||||
open() {
|
||||
this.$emit("open", this.delegation_id, this.session_id)
|
||||
},
|
||||
doDelete(userId) {
|
||||
doDelete(userId, roleType) {
|
||||
this.$confirm("您确定要删除吗?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
@@ -82,7 +89,8 @@ const HEAD_TABLE_TEMPLATE = {
|
||||
.post("/platform/teacherCongress/delegation/deleteHead", {
|
||||
userId,
|
||||
sessionId: this.session_id,
|
||||
delegationId: this.delegation_id
|
||||
delegationId: this.delegation_id,
|
||||
type: roleType
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
|
||||
+3
-2
@@ -1,10 +1,10 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||
<common-query ref="commonQueryRef" user-attribute-multiple @search="search"></common-query>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="申请列表">
|
||||
@@ -86,6 +86,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
+13
-48
@@ -1,51 +1,12 @@
|
||||
const COMMON_QUERY = {
|
||||
template: /*language=HTML*/ `
|
||||
<search @search="doSearch">
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<template v-if="$auth.hasRoleOr(['SYSADMIN', 'SCHOOL_UNION_ADMIN', 'BRANCH_UNION_CHAIRMAN'])">
|
||||
<search-item label="所属工会">
|
||||
<el-select
|
||||
@change="flushUnits"
|
||||
@clear="flushUnits"
|
||||
clearable
|
||||
filterable
|
||||
placeholder="请选择所属工会"
|
||||
style="width: 100%"
|
||||
v-model="pageForm.unionId"
|
||||
>
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%" v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id" v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
|
||||
code="USER_STATE" multiple collapse-tags></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
|
||||
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
|
||||
</search-item>
|
||||
<!-- <search-item label="编制类别">-->
|
||||
<!-- <dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"-->
|
||||
<!-- code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>-->
|
||||
<!-- </search-item>-->
|
||||
<search-item label="人员分类">
|
||||
<dict-select v-model="pageForm.aidFundMemberUserType" code="AIDFUND_MEMBER_USER_TYPE"
|
||||
style="width: 100%"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" code="USER_ATTRIBUTE"
|
||||
style="width: 100%"></dict-select>
|
||||
</search-item>
|
||||
</template>
|
||||
</search>
|
||||
`,
|
||||
const COMMON_QUERY = {
|
||||
template: "#member-apply-common-query-template",
|
||||
props: {
|
||||
// 默认保持原单选行为,仅由明确传参的页面开启人员属性多选。
|
||||
userAttributeMultiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
@@ -59,6 +20,8 @@
|
||||
userStates: [],
|
||||
personTypes: [],
|
||||
preparedBys: [],
|
||||
userAttribute: '',
|
||||
userAttributes: [],
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -68,6 +31,8 @@
|
||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||
// 多选值沿用现有数组参数的JSON提交口径,便于后端稳定绑定List。
|
||||
pageForm.userAttributes = JSON.stringify(this.pageForm.userAttributes)
|
||||
this.$emit('search', pageForm)
|
||||
},
|
||||
async initData(){
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||
<common-query ref="commonQueryRef" user-attribute-multiple @search="search"></common-query>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
@@ -71,6 +71,8 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
+3
-2
@@ -1,10 +1,10 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||
<common-query ref="commonQueryRef" user-attribute-multiple @search="search"></common-query>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
@@ -104,6 +104,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
</guava>
|
||||
</div>
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
+1
@@ -87,6 +87,7 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
+3
-2
@@ -1,11 +1,11 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||
<common-query ref="commonQueryRef" user-attribute-multiple @search="search"></common-query>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
@@ -75,6 +75,7 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
|
||||
+12
-42
@@ -1,45 +1,12 @@
|
||||
const COMMON_QUERY = {
|
||||
template: /*language=HTML*/ `
|
||||
<search @search="doSearch">
|
||||
<search-item label="姓名/工号">
|
||||
<el-input placeholder="请输入姓名或工号" clearable v-model="pageForm.searchKeyword"></el-input>
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="flushUnits" @clear="flushUnits" clearable filterable
|
||||
placeholder="请选择所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态">
|
||||
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
|
||||
code="USER_STATE" multiple collapse-tags></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型">
|
||||
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
|
||||
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
|
||||
</search-item>
|
||||
<!-- <search-item label="编制类别">-->
|
||||
<!-- <dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"-->
|
||||
<!-- code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>-->
|
||||
<!-- </search-item>-->
|
||||
<search-item label="人员分类">
|
||||
<dict-select v-model="pageForm.aidFundMemberUserType" placeholder="请选择人员分类" @change="doSearch"
|
||||
code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE"></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
`,
|
||||
const COMMON_QUERY = {
|
||||
template: "#member-change-common-query-template",
|
||||
props: {
|
||||
// 未显式开启时保持原单选行为,避免影响未列入本次范围的页面。
|
||||
userAttributeMultiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
store,
|
||||
mixins: [initTableMixins],
|
||||
data() {
|
||||
@@ -55,6 +22,7 @@
|
||||
preparedBys: [],
|
||||
aidFundMemberUserType: '',
|
||||
userAttribute: '',
|
||||
userAttributes: [],
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -64,6 +32,8 @@
|
||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||
// 多选人员属性沿用现有数组查询参数的JSON提交方式。
|
||||
pageForm.userAttributes = JSON.stringify(this.pageForm.userAttributes)
|
||||
this.$emit('search', pageForm)
|
||||
},
|
||||
async initData(){
|
||||
|
||||
@@ -43,8 +43,8 @@ layout("/layouts/platform.html"){
|
||||
code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE"></dict-select>
|
||||
<dict-select v-model="pageForm.userAttributes" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE" multiple collapse-tags clearable></dict-select>
|
||||
</search-item>
|
||||
<search-item label="更新日期">
|
||||
<el-date-picker :picker-options="pickerOptions" @change="changeDateRangeChange"
|
||||
@@ -514,7 +514,7 @@ layout("/layouts/platform.html"){
|
||||
isMember: 1,
|
||||
changeTypes: [],
|
||||
aidFundMemberUserType: "",
|
||||
userAttribute: "",
|
||||
userAttributes: [],
|
||||
},
|
||||
unions: [],
|
||||
units: [],
|
||||
@@ -582,6 +582,16 @@ layout("/layouts/platform.html"){
|
||||
"member-all-change": MEMBER_ALL_CHANGE_INFO,
|
||||
},
|
||||
methods: {
|
||||
// 分页和导出共用该参数构建方法,保证人员属性多选值始终按 JSON 数组提交。
|
||||
buildQueryPageForm(source = this.pageForm) {
|
||||
const pageForm = clone(source)
|
||||
pageForm.userAttributes = JSON.stringify(source.userAttributes || [])
|
||||
return pageForm
|
||||
},
|
||||
// 覆盖公共分页方法,使后端按人员属性集合执行查询。
|
||||
pageData(data = null) {
|
||||
return initTableMixins.methods.pageData.call(this, this.buildQueryPageForm(data || this.pageForm))
|
||||
},
|
||||
dropdownCommand(command) {
|
||||
const {type, data} = command
|
||||
if (type === 'view') {
|
||||
@@ -642,7 +652,7 @@ layout("/layouts/platform.html"){
|
||||
* 导出会员名单
|
||||
*/
|
||||
exportExcel() {
|
||||
const pageForm = clone(this.pageForm)
|
||||
const pageForm = this.buildQueryPageForm()
|
||||
const data = this.tableColumns.filter(item => this.checkedFields.includes(item.prop)).map(item => {
|
||||
return {prop: item.prop, label: item.label}
|
||||
})
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||
<common-query ref="commonQueryRef" user-attribute-multiple @search="search"></common-query>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
@@ -54,6 +54,7 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
@@ -43,8 +43,8 @@ layout("/layouts/platform.html"){
|
||||
code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE"></dict-select>
|
||||
<dict-select v-model="pageForm.userAttributes" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE" multiple collapse-tags clearable></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
@@ -151,7 +151,7 @@ layout("/layouts/platform.html"){
|
||||
personType: "",
|
||||
changeType: "",
|
||||
aidFundMemberUserType: "",
|
||||
userAttribute: ""
|
||||
userAttributes: []
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -198,6 +198,8 @@ layout("/layouts/platform.html"){
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
pageForm.changeTypes = JSON.stringify(pageForm.changeTypes)
|
||||
pageForm.changeOrigins = JSON.stringify(pageForm.changeOrigins)
|
||||
// 人员属性为多选条件,提交前转换为后端可解析的 JSON 数组。
|
||||
pageForm.userAttributes = JSON.stringify(pageForm.userAttributes)
|
||||
|
||||
this.$axios.post(loc() + '/pageData', pageForm)
|
||||
.then(res => {
|
||||
|
||||
+3
-2
@@ -1,11 +1,11 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<el-card shadow="never">
|
||||
<common-query ref="commonQueryRef" @search="search"></common-query>
|
||||
<common-query ref="commonQueryRef" user-attribute-multiple @search="search"></common-query>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
@@ -77,6 +77,7 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
|
||||
+1
@@ -75,6 +75,7 @@ layout("/layouts/platform.html"){
|
||||
</guava>
|
||||
</div>
|
||||
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
|
||||
<!--#include("../common/info.js"){}#-->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app">
|
||||
@@ -42,6 +42,7 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../../common/info/memberInfo.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
+5
-58
@@ -1,60 +1,5 @@
|
||||
const COMMON_QUERY = {
|
||||
template: /*language=HTML*/ `
|
||||
<search @search="doSearch">
|
||||
<search-item label="姓名/工号">
|
||||
<el-select
|
||||
clearable
|
||||
v-model="pageForm.userIds"
|
||||
filterable
|
||||
remote
|
||||
collapse-tags
|
||||
placeholder="请输入姓名或工号"
|
||||
:remote-method="queryUser"
|
||||
@change="doSearch"
|
||||
style="width: 100%"
|
||||
multiple
|
||||
>
|
||||
<el-option v-for="o in userList" :label="o.username + '(' + o.loginname + ')'" :value="o.id"
|
||||
:key="o.id"></el-option>
|
||||
</el-select>
|
||||
<!-- <el-input placeholder="请输入内容" clearable v-model="pageForm.searchKeyword"></el-input>-->
|
||||
</search-item>
|
||||
<search-item label="所属工会">
|
||||
<el-select @change="handleUnionChange" @clear="handleUnionClear" clearable filterable
|
||||
placeholder="请选择所属工会" style="width: 100%;" v-model="pageForm.unionId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in unions"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="所属单位">
|
||||
<el-select clearable filterable placeholder="请选择所属单位" style="width: 100%"
|
||||
v-model="pageForm.unitId">
|
||||
<el-option :key="item.id" :label="item.name" :value="item.id"
|
||||
v-for="item in units"></el-option>
|
||||
</el-select>
|
||||
</search-item>
|
||||
<search-item label="在职状态" v-if="!query_disable">
|
||||
<dict-select v-model="pageForm.userStates" placeholder="请选择在职状态" @change="doSearch"
|
||||
code="USER_STATE" multiple collapse-tags></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员类型" v-if="!query_disable">
|
||||
<dict-select v-model="pageForm.personTypes" placeholder="请选择人员类型" @change="doSearch"
|
||||
code="USER_PERSON_TYPE" multiple collapse-tags></dict-select>
|
||||
</search-item>
|
||||
<!-- <search-item label="编制类别">-->
|
||||
<!-- <dict-select v-model="pageForm.preparedBys" placeholder="请选择编制类别" @change="doSearch"-->
|
||||
<!-- code="USER_PREPARED_BY_TYPE" multiple collapse-tags></dict-select>-->
|
||||
<!-- </search-item>-->
|
||||
<search-item label="人员分类">
|
||||
<dict-select v-model="pageForm.aidFundMemberUserType" placeholder="请选择人员分类" @change="doSearch"
|
||||
code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE"></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
`,
|
||||
const COMMON_QUERY = {
|
||||
template: "#member-info-common-query-template",
|
||||
store,
|
||||
props: {
|
||||
query_disable: {
|
||||
@@ -77,7 +22,7 @@
|
||||
personTypes: [],
|
||||
preparedBys: [],
|
||||
aidFundMemberUserType: '',
|
||||
userAttribute: '',
|
||||
userAttributes: [],
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -92,6 +37,8 @@
|
||||
pageForm.userStates = JSON.stringify(this.pageForm.userStates)
|
||||
pageForm.personTypes = JSON.stringify(this.pageForm.personTypes)
|
||||
pageForm.preparedBys = JSON.stringify(this.pageForm.preparedBys)
|
||||
// 人员属性多选值按现有数组查询参数口径提交。
|
||||
pageForm.userAttributes = JSON.stringify(this.pageForm.userAttributes)
|
||||
this.$emit('search', pageForm)
|
||||
},
|
||||
handleUnionChange() {
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
|
||||
@@ -183,6 +183,7 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</guava>
|
||||
</div>
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("../../common/info/memberInfo.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
|
||||
@@ -1,44 +1,54 @@
|
||||
<!--#
|
||||
<!--#
|
||||
layout("/layouts/platform.html"){
|
||||
#-->
|
||||
<div id="app" v-cloak>
|
||||
<guava ref="guava">
|
||||
<template>
|
||||
<el-row type="flex" :gutter="20" style="height: calc(100vh - 126px)">
|
||||
<el-col :span="5">
|
||||
<el-card shadow="never" style="height: 100%" :body-style="{ height: '100%' }">
|
||||
<el-input placeholder="请输入关键字进行查找" v-model="filterText" clearable></el-input>
|
||||
<div style="max-height: calc(100vh - 205px); overflow-y: auto; margin-top: 10px;">
|
||||
<el-tree
|
||||
:data="treeData"
|
||||
ref="treeRef"
|
||||
node-key="id"
|
||||
:expand-on-click-node="false"
|
||||
:props="{
|
||||
children: 'children',
|
||||
label: 'name'
|
||||
}"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNode"
|
||||
highlight-current
|
||||
@node-click="treeNodeClick"
|
||||
>
|
||||
<template slot-scope="{ node, data }">
|
||||
<span class="el-tree-node__label">
|
||||
<i class="el-icon-folder-opened" v-if="node.level===1"></i>
|
||||
<i class="el-icon-folder" v-else></i>
|
||||
{{node.label}}
|
||||
</span>
|
||||
</template>
|
||||
</el-tree>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="19">
|
||||
<el-card shadow="never" v-show="tabActive === 'memberList'">
|
||||
<div class="member-group-layout" :class="{ 'is-tree-collapsed': treeCollapsed }">
|
||||
<aside class="member-group-tree-panel">
|
||||
<div class="member-group-tree-content" v-show="!treeCollapsed">
|
||||
<el-card shadow="never" class="member-group-tree-card" :body-style="{ height: '100%' }">
|
||||
<el-input placeholder="请输入关键字进行查找" v-model="filterText" clearable></el-input>
|
||||
<div class="member-group-tree-scroll">
|
||||
<el-tree
|
||||
:data="treeData"
|
||||
ref="treeRef"
|
||||
node-key="id"
|
||||
:expand-on-click-node="false"
|
||||
:props="{
|
||||
children: 'children',
|
||||
label: 'name'
|
||||
}"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNode"
|
||||
highlight-current
|
||||
@node-click="treeNodeClick"
|
||||
>
|
||||
<template slot-scope="{ node, data }">
|
||||
<span class="el-tree-node__label">
|
||||
<i class="el-icon-folder-opened" v-if="node.level===1"></i>
|
||||
<i class="el-icon-folder" v-else></i>
|
||||
{{node.label}}
|
||||
</span>
|
||||
</template>
|
||||
</el-tree>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
<el-tooltip :content="treeCollapsed ? '展开组织树' : '收起组织树'" placement="right">
|
||||
<el-button
|
||||
class="member-group-tree-toggle"
|
||||
size="mini"
|
||||
:icon="treeCollapsed ? 'el-icon-arrow-right' : 'el-icon-arrow-left'"
|
||||
@click="toggleTree"
|
||||
></el-button>
|
||||
</el-tooltip>
|
||||
</aside>
|
||||
<main class="member-group-content">
|
||||
<el-card shadow="never" class="member-group-query-card" v-show="tabActive === 'memberList'">
|
||||
<common-query ref="commonQueryRef" @search="search" @union-change="queryUnionChange"></common-query>
|
||||
</el-card>
|
||||
<el-card shadow="never" v-show="tabActive !== 'memberList' && currentUnionId">
|
||||
<el-card shadow="never" class="member-group-overview-card" v-show="tabActive !== 'memberList' && currentUnionId">
|
||||
<div style="display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; color: #303133;">
|
||||
<i class="el-icon-office-building"></i>
|
||||
<span>{{ unionOverview.unionName || '-' }}</span>
|
||||
@@ -61,13 +71,14 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<el-card shadow="never" class="mt10 member-group-list-card">
|
||||
<el-tabs v-model="tabActive" type="card" @tab-click="tabChange">
|
||||
<el-tab-pane name="memberList">
|
||||
<span slot="label">
|
||||
<i class="el-icon-user"></i>
|
||||
会员列表
|
||||
</span>
|
||||
<div ref="memberListPaneRef" class="member-group-member-list">
|
||||
<table-tool label="会员列表">
|
||||
<el-button type="primary" size="small" icon="el-icon-upload2" @click="openImport">导入会员</el-button>
|
||||
<el-button
|
||||
@@ -113,7 +124,7 @@ layout("/layouts/platform.html"){
|
||||
</el-popover>
|
||||
</table-tool>
|
||||
|
||||
<el-table :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize" class="vi-table">
|
||||
<el-table ref="memberTableRef" :height="tableHeight" :data="tableData" style="width: 100%" row-key="id" @sort-change="pageOrder" :size="tableSize" class="vi-table">
|
||||
<el-table-column
|
||||
align="center"
|
||||
header-align="center"
|
||||
@@ -144,6 +155,7 @@ layout("/layouts/platform.html"){
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--#include("/layouts/pagination.html"){}#-->
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="branchUnionUserManage">
|
||||
<span slot="label">
|
||||
@@ -154,6 +166,7 @@ layout("/layouts/platform.html"){
|
||||
v-if="currentUnionId"
|
||||
ref="branchUnionUserManageRef"
|
||||
:union_id="currentUnionId"
|
||||
:table_height="tableHeight"
|
||||
></sys-union-branch-union-user-manage>
|
||||
<el-empty v-else description="请选择一个分工会"></el-empty>
|
||||
</el-tab-pane>
|
||||
@@ -166,6 +179,7 @@ layout("/layouts/platform.html"){
|
||||
v-if="currentUnionId"
|
||||
ref="branchUnionPartUnitManageRef"
|
||||
:union_id="currentUnionId"
|
||||
:table_height="tableHeight"
|
||||
></sys-union-branch-union-part-unit-manage>
|
||||
<el-empty v-else description="请选择一个分工会"></el-empty>
|
||||
</el-tab-pane>
|
||||
@@ -178,13 +192,14 @@ layout("/layouts/platform.html"){
|
||||
v-if="currentUnionId"
|
||||
ref="branchUnionGroupRef"
|
||||
:union_id="currentUnionId"
|
||||
:table_height="tableHeight"
|
||||
></sys-union-branch-union-group-manage>
|
||||
<el-empty v-else description="请选择一个分工会"></el-empty>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</main>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template #view>
|
||||
@@ -204,6 +219,205 @@ layout("/layouts/platform.html"){
|
||||
></file-import>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<style>
|
||||
/* 会员档案页独立布局:树折叠时仅保留切换按钮占用的窄轨道。 */
|
||||
#app .member-group-layout {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
gap: 16px;
|
||||
min-width: 0;
|
||||
height: calc(100vh - 82px);
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
#app .member-group-tree-panel {
|
||||
position: relative;
|
||||
flex: 0 0 clamp(280px, 20vw, 340px);
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#app .member-group-tree-panel::after {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 1;
|
||||
width: 1px;
|
||||
content: "";
|
||||
background: #dcdfe6;
|
||||
}
|
||||
|
||||
#app .member-group-tree-content,
|
||||
#app .member-group-tree-card {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#app .member-group-tree-card > .el-card__body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-tree-scroll {
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
margin-top: 10px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#app .member-group-tree-toggle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: -9px;
|
||||
z-index: 3;
|
||||
width: 18px;
|
||||
height: 34px;
|
||||
padding: 0;
|
||||
transform: translateY(-50%);
|
||||
color: #409eff;
|
||||
background: #ffffff;
|
||||
border-color: #dcdfe6;
|
||||
border-radius: 0 3px 3px 0;
|
||||
box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
#app .member-group-tree-toggle:hover,
|
||||
#app .member-group-tree-toggle:focus {
|
||||
color: #409eff;
|
||||
background: #ecf5ff;
|
||||
border-color: #409eff;
|
||||
}
|
||||
|
||||
#app .member-group-tree-toggle i {
|
||||
margin: 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#app .member-group-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1 1 auto;
|
||||
min-width: 0;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-layout.is-tree-collapsed .member-group-tree-panel {
|
||||
flex-basis: 18px;
|
||||
}
|
||||
|
||||
#app .member-group-layout.is-tree-collapsed .member-group-tree-toggle {
|
||||
right: 0;
|
||||
}
|
||||
|
||||
/* 查询项按可用宽度自动调整列数,减少固定比例布局造成的空白。 */
|
||||
#app .member-group-query-card .search {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||
gap: 12px 18px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#app .member-group-query-card .search .search-item {
|
||||
width: auto;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
#app .member-group-query-card .search .search-query {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
#app .member-group-query-card,
|
||||
#app .member-group-overview-card {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
/* 四个页签共用剩余高度,内容超出时仅在页签内容区域滚动。 */
|
||||
#app .member-group-list-card {
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-list-card > .el-card__body {
|
||||
height: 100%;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-list-card .el-tabs {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#app .member-group-list-card .el-tabs__header {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
#app .member-group-list-card .el-tabs__content {
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-list-card .el-tab-pane,
|
||||
#app .member-group-member-list,
|
||||
#app .member-group-list-card .el-tab-pane > div {
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-member-list,
|
||||
#app .member-group-list-card .el-tab-pane > div {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
#app .member-group-member-list > .ele-table-tool,
|
||||
#app .member-group-member-list > .el-pagination-container,
|
||||
#app .member-group-list-card .el-tab-pane > div > .el-card:first-child {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
#app .member-group-list-card .el-tab-pane > div > .el-card:last-of-type {
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-list-card .el-tab-pane > div > .el-card:last-of-type > .el-card__body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#app .member-group-member-list > .el-table,
|
||||
#app .member-group-list-card .el-tab-pane > div > .el-card:last-of-type > .el-card__body > .el-table {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
#app .member-group-tree-panel {
|
||||
flex-basis: 260px;
|
||||
}
|
||||
|
||||
#app .member-group-query-card .search {
|
||||
grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<!--#include("../common/commonQuery.html"){}#-->
|
||||
<script nonce="${cspNonce!}">
|
||||
<!--#include("archiveMember.js"){}#-->
|
||||
<!--#include("../common/commonQuery.js"){}#-->
|
||||
@@ -218,6 +432,9 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
filterText: null,
|
||||
treeCollapsed: false,
|
||||
tableHeight: 400,
|
||||
tableResizeObserver: null,
|
||||
unionRootId: "member-union-root",
|
||||
treeData: [],
|
||||
currentTreeData: null,
|
||||
@@ -237,8 +454,8 @@ layout("/layouts/platform.html"){
|
||||
{ prop: "personType", label: "人员类型", width: 120, sortable: true, checked: 0 },
|
||||
// { prop: "preparedBy", label: "编制类别", width: 120, sortable: true },
|
||||
{ prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 },
|
||||
{ prop: "unionName", label: "所属工会", width: 120, sortable: true },
|
||||
{ prop: "unitName", label: "所属单位", width: 120, sortable: true },
|
||||
{ prop: "unionName", label: "所属工会", sortable: true },
|
||||
{ prop: "unitName", label: "所属单位",sortable: true },
|
||||
// { prop: "aidFundMemberUserType", label: "人员分类", width: 120, sortable: true },
|
||||
// { prop: "userAttribute", label: "人员属性", width: 120, sortable: true },
|
||||
{ prop: "idCardType", label: "证件类型", width: 120, sortable: true, checked: 0 },
|
||||
@@ -277,6 +494,53 @@ layout("/layouts/platform.html"){
|
||||
"sys-union-branch-union-group-manage": branchUnionGroupManage,
|
||||
},
|
||||
methods: {
|
||||
// 切换组织树显示状态,并在内容宽度变化后重新计算固定列表格布局。
|
||||
toggleTree() {
|
||||
this.treeCollapsed = !this.treeCollapsed
|
||||
this.$nextTick(() => {
|
||||
this.updateTableHeight()
|
||||
if (this.$refs.memberTableRef) {
|
||||
this.$refs.memberTableRef.doLayout()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 根据页签内容区的实际高度计算表格高度,由 Element Table 管理表头和表体滚动。
|
||||
updateTableHeight() {
|
||||
this.$nextTick(() => {
|
||||
const tabsContent = this.$el.querySelector(".member-group-list-card .el-tabs__content")
|
||||
if (!tabsContent || tabsContent.clientHeight <= 0) {
|
||||
return
|
||||
}
|
||||
let availableHeight = tabsContent.clientHeight
|
||||
let reservedHeight = 100
|
||||
const memberPane = this.$refs.memberListPaneRef
|
||||
if (memberPane && memberPane.clientHeight > 0) {
|
||||
const tool = memberPane.querySelector(".ele-table-tool")
|
||||
const pagination = memberPane.querySelector(".el-pagination-container")
|
||||
// offsetHeight 不包含外边距,分页的 margin-top 需要一并扣除。
|
||||
const getOuterHeight = (element) => {
|
||||
if (!element) {
|
||||
return 0
|
||||
}
|
||||
const style = window.getComputedStyle(element)
|
||||
return element.offsetHeight
|
||||
+ (parseFloat(style.marginTop) || 0)
|
||||
+ (parseFloat(style.marginBottom) || 0)
|
||||
}
|
||||
availableHeight = memberPane.clientHeight
|
||||
reservedHeight = getOuterHeight(tool) + getOuterHeight(pagination)
|
||||
}
|
||||
const nextHeight = Math.max(240, Math.floor(availableHeight - reservedHeight))
|
||||
if (this.tableHeight !== nextHeight) {
|
||||
this.tableHeight = nextHeight
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.memberTableRef) {
|
||||
this.$refs.memberTableRef.doLayout()
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
openImport() {
|
||||
this.importDialog = true
|
||||
},
|
||||
@@ -402,6 +666,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
tabChange(tab) {
|
||||
this.$nextTick(() => {
|
||||
this.updateTableHeight()
|
||||
if (tab.name === "memberList") {
|
||||
if (this.$refs.commonQueryRef) {
|
||||
this.$refs.commonQueryRef.doSearch()
|
||||
@@ -422,6 +687,7 @@ layout("/layouts/platform.html"){
|
||||
this.$axios.post(loc() + "/unionOverview", { unionId: this.currentUnionId }).then((data) => {
|
||||
if (data.code === 0) {
|
||||
this.unionOverview = data.data || {}
|
||||
this.updateTableHeight()
|
||||
} else {
|
||||
this.$message.error(data.msg)
|
||||
}
|
||||
@@ -492,6 +758,25 @@ layout("/layouts/platform.html"){
|
||||
this.initDefaultView()
|
||||
this.getTreeData()
|
||||
this.pageData()
|
||||
},
|
||||
mounted() {
|
||||
const tabsContent = this.$el.querySelector(".member-group-list-card .el-tabs__content")
|
||||
if (tabsContent && window.ResizeObserver) {
|
||||
// 查询区换行或页面尺寸变化时,自动重新分配表格数据区域高度。
|
||||
this.tableResizeObserver = new ResizeObserver(this.updateTableHeight)
|
||||
this.tableResizeObserver.observe(tabsContent)
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
this.updateTableHeight()
|
||||
})
|
||||
window.addEventListener("resize", this.updateTableHeight)
|
||||
},
|
||||
beforeDestroy() {
|
||||
if (this.tableResizeObserver) {
|
||||
this.tableResizeObserver.disconnect()
|
||||
this.tableResizeObserver = null
|
||||
}
|
||||
window.removeEventListener("resize", this.updateTableHeight)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -50,7 +50,8 @@ layout("/layouts/platform.html"){
|
||||
<dict-select v-model="pageForm.aidFundMemberUserType" placeholder="请选择人员分类" @change="doSearch" code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" placeholder="请选择人员属性" @change="doSearch" code="USER_ATTRIBUTE"></dict-select>
|
||||
<dict-select v-model="pageForm.userAttributes" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE" multiple collapse-tags clearable></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
@@ -109,7 +110,7 @@ layout("/layouts/platform.html"){
|
||||
memberSearchName: "",
|
||||
memberSearchKeyWord: "",
|
||||
aidFundMemberUserType: "",
|
||||
userAttribute: ""
|
||||
userAttributes: []
|
||||
},
|
||||
userId: "",
|
||||
unions: [],
|
||||
@@ -132,6 +133,16 @@ layout("/layouts/platform.html"){
|
||||
"member-info": MEMBER_INFO
|
||||
},
|
||||
methods: {
|
||||
// 分页和导出共用该参数构建方法,保证人员属性多选值始终按 JSON 数组提交。
|
||||
buildQueryPageForm() {
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.userAttributes = JSON.stringify(this.pageForm.userAttributes || [])
|
||||
return pageForm
|
||||
},
|
||||
// 覆盖公共分页方法,使后端按人员属性集合执行查询。
|
||||
pageData() {
|
||||
return initTableMixins.methods.pageData.call(this, this.buildQueryPageForm())
|
||||
},
|
||||
openView(row) {
|
||||
this.$refs.guava.view(() => {
|
||||
this.$refs.memberInfoRef.onOpen(row.id)
|
||||
@@ -141,7 +152,7 @@ layout("/layouts/platform.html"){
|
||||
this.$downLoad("/platform/member/info/history/doExportByUnion", { year: this.pageForm.year })
|
||||
},
|
||||
doExport() {
|
||||
this.$downLoad("/platform/member/info/history/doExport", this.pageForm)
|
||||
this.$downLoad("/platform/member/info/history/doExport", this.buildQueryPageForm())
|
||||
},
|
||||
async initData() {
|
||||
if (this.$auth.hasRoleOr(["SYSADMIN", "SCHOOL_UNION_ADMIN"])) {
|
||||
|
||||
@@ -50,7 +50,8 @@ layout("/layouts/platform.html"){
|
||||
<dict-select v-model="pageForm.aidFundMemberUserType" placeholder="请选择人员分类" @change="doSearch" code="AIDFUND_MEMBER_USER_TYPE"></dict-select>
|
||||
</search-item>
|
||||
<search-item label="人员属性">
|
||||
<dict-select v-model="pageForm.userAttribute" placeholder="请选择人员属性" @change="doSearch" code="USER_ATTRIBUTE"></dict-select>
|
||||
<dict-select v-model="pageForm.userAttributes" placeholder="请选择人员属性" @change="doSearch"
|
||||
code="USER_ATTRIBUTE" multiple collapse-tags clearable></dict-select>
|
||||
</search-item>
|
||||
</search>
|
||||
</el-card>
|
||||
@@ -112,6 +113,7 @@ layout("/layouts/platform.html"){
|
||||
data() {
|
||||
return {
|
||||
pageForm: {
|
||||
userAttributes: [],
|
||||
year: new Date().getFullYear() + "",
|
||||
memberSearchName: "",
|
||||
memberSearchKeyWord: ""
|
||||
@@ -139,6 +141,12 @@ layout("/layouts/platform.html"){
|
||||
"member-add-form": MEMBER_ADD_FORM
|
||||
},
|
||||
methods: {
|
||||
// 人员属性为多选条件,分页查询前统一转换为后端可接收的 JSON 数组。
|
||||
pageData(data = null) {
|
||||
const pageForm = clone(data || this.pageForm)
|
||||
pageForm.userAttributes = JSON.stringify(this.pageForm.userAttributes || [])
|
||||
return initTableMixins.methods.pageData.call(this, pageForm)
|
||||
},
|
||||
openAdd() {
|
||||
this.$refs.guava.edit(() => {
|
||||
this.$refs.memberAddFormRef.onOpen()
|
||||
|
||||
Reference in New Issue
Block a user