This commit is contained in:
@jyuhsin
2026-01-28 15:43:43 +08:00
19 changed files with 203 additions and 71 deletions
@@ -1,31 +1,99 @@
<!--#
layout("/layouts/platform.html"){
#-->
<style scoped>
.custom-tree {
background: transparent;
padding: 8px;
}
/* 节点行高调整 */
.custom-tree .el-tree-node {
margin: 2px 0;
border-radius: 6px;
transition: all 0.2s ease;
}
/* 选中状态 */
.custom-tree .el-tree-node.is-current > .el-tree-node__content {
background: #e8f4ff;
border-left: 3px solid #409eff;
}
/* 节点内容区域 */
.custom-tree .el-tree-node__content {
height: 36px;
line-height: 36px;
padding: 0 8px;
border-radius: 6px;
transition: all 0.2s ease;
}
/* 自定义节点内容 */
.custom-tree-node {
display: flex;
align-items: center;
width: 100%;
gap: 8px;
}
/* 文件夹图标颜色优化 */
.el-icon-folder {
color: #909399;
}
.el-icon-folder-opened {
color: #409eff;
}
/* 展开时图标旋转动画 */
.custom-tree .el-tree-node__expand-icon {
transition: transform 0.3s ease;
}
.custom-tree .el-tree-node__expand-icon.expanded {
transform: rotate(90deg);
}
/* 节点标签 */
.node-label {
flex: 1;
font-size: 13px;
color: #303133;
font-weight: 500;
}
/* 禁用展开图标(当无子节点时) */
.custom-tree .el-tree-node__expand-icon.is-leaf {
color: transparent;
cursor: default;
}
</style>
<div id="app" v-cloak>
<el-row :gutter="10" type="flex" style="height: calc(100vh - 126px)">
<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%' }">
<div style="max-height: calc(100vh - 160px); overflow-y: auto">
<el-card shadow="never">
<el-input placeholder="输入关键字进行查找" v-model="filterText" clearable></el-input>
<div style="max-height: calc(100vh - 200px); overflow-y: auto">
<el-tree
:data="treeData"
:default-expanded-keys="['1']"
:expand-on-click-node="false"
:props="{
children: 'child',
label: 'name'
}"
@node-click="treeNodeClick"
highlight-current
node-key="id"
ref="treeRef"
:data="treeData"
ref="treeRef"
:expand-on-click-node="false"
:props="{ children: 'children', label: 'name' }"
node-key="id"
default-expand-all
@node-click="treeNodeClick"
:filter-node-method="filterNode"
highlight-current
class="custom-tree"
>
<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>
<span class="custom-tree-node">
<i class="el-icon-folder-opened" v-if="node.level===1"></i>
<i class="el-icon-folder" v-else></i>
<span class="node-label">{{ node.label }}</span>
</span>
</template>
</el-tree>
</div>
@@ -42,12 +110,8 @@ layout("/layouts/platform.html"){
clearable
placeholder="请输入内容"
style="width: 100%"
v-model="pageForm.searchKeyword"
v-model="pageForm.unitName"
>
<el-select placeholder="查询类型" slot="prepend" style="width: 110px" v-model="pageForm.searchName">
<el-option label="单位名称" value="name"></el-option>
<el-option label="单位代码" value="unitcode"></el-option>
</el-select>
</el-input>
</div>
<div class="search-item">
@@ -124,7 +188,7 @@ layout("/layouts/platform.html"){
treeNodeClick(data, node) {
this.currentTreeData = data
this.currentTreeNode = node
this.pageForm.parentId = data.id
this.pageForm.unitId = data.id
this.doSearch()
},
getTreeData() {
@@ -3,7 +3,7 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
<div>
<template>
<el-card shadow="never">
<snaker-start slot="header" label="文化活动申报" define_key="WHHD"
<snaker-start slot="header" label="文化活动申报" :define_key="activity_type===40002?'FGHWHHD':'XHWHHD'"
v-if="activity_type===40002||activity_type===40003"></snaker-start>
<el-form :model="formData" :rules="formRules" label-suffix="" label-width="170px"
ref="addForm" v-loading="formLoading">
@@ -1007,8 +1007,10 @@ const ACTIVITY_CULTURE_APPLY_ACTIVITY = {
if (!this.formData.unionUserNumberLimit) {
this.getUnionData().then((data) => {
this.$set(this.formData, "unionUserNumberLimit", data)
})
}
this.calSummaryCount()
}
},
openEdit(row) {
@@ -65,6 +65,11 @@ const ACTIVITY_CULTURE_AUDIT_ACTIVITY = {
{{$moment(row.startTime).format('YYYY-MM-DD')}} -
{{$moment(row.endTime).format('YYYY-MM-DD')}}
</template>
<template scope="{row}" v-else-if="column.prop=='tussueName'">
<span v-if="row.activity_type==40002">{{row.unionname?row.unionname:'暂无'}}</span>
<span v-if="row.activity_type==40003">{{row.clubName?row.clubName:'暂无'}}</span>
<span v-if="row.activity_type==40001">校工会</span>
</template>
<template scope="{row}" v-else-if="column.prop=='projectTypeName'">
{{row.projectTypeName}}({{row.projectTypeCode}})
@@ -17,7 +17,7 @@ const singleSignUp = {
<el-descriptions-item label="活动编号">
{{ viewData.activityCode }}
</el-descriptions-item>
<el-descriptions-item label="活动编号">
<el-descriptions-item label="活动项目类型">
{{ viewData.projectTypeName }}({{ viewData.projectTypeCode }})
</el-descriptions-item>
<el-descriptions-item label="活动类型" :span="2">
@@ -1123,6 +1123,7 @@ let ACTIVITY_SPORTS_ADD_ACTIVITY = {
this.$emit("flush")
if (!this.formData.id) formData.id = resp.data
await this.openEdit(formData, false)
this.$emit("flush")
this.$message.success(resp.msg)
} else {
this.$message.error(resp.msg)
@@ -206,7 +206,10 @@ layout("/layouts/platform.html"){
this.$refs.addActivity.openAdd()
})
},
getStatus(close, applyStartTime, applyEndTime, startTime, endTime) {
getStatus(close, applyStartTime, applyEndTime, startTime, endTime,isSave) {
if (isSave){
return `<span class="text-info">保存中</span>`
}
if (close) {
return `<span class="text-danger">活动已关闭</span>`
}
@@ -118,6 +118,7 @@ layout("/layouts/platform.html"){
{prop: 'assetNumber', label: '资产编号'},
{prop: 'assetName', label: '资产名称'},
{prop: 'categoryName', label: '类别名称'},
{prop: 'assetQuantity', label: '数量'},
{prop: 'assetStorageLocation', label: '存放地点'},
{prop: 'assetUseUserName', label: '责任人'},
{prop: 'assetAllMoney', label: '原值(元)'},
@@ -126,6 +126,7 @@ layout("/layouts/platform.html"){
{prop: 'assetNumber', label: '资产编号'},
{prop: 'assetName', label: '资产名称'},
{prop: 'categoryName', label: '类别名称'},
{prop: 'assetQuantity', label: '数量'},
{prop: 'assetStorageLocation', label: '存放地点'},
{prop: 'assetUseUserName', label: '责任人'},
{prop: 'assetRetiredAssetsDate', label: '折旧到期日期'},
@@ -141,6 +141,7 @@ layout("/layouts/platform.html"){
{prop: 'assetNumber', label: '资产编号'},
{prop: 'assetName', label: '资产名称'},
{prop: 'categoryName', label: '类别名称'},
{prop: 'assetQuantity', label: '数量'},
{prop: 'assetTypeCode', label: '资产类型'},
{prop: 'assetStorageLocation', label: '存放地点'},
{prop: 'assetUseUserName', label: '责任人'},
@@ -174,7 +174,7 @@ layout("/layouts/platform.html"){
</el-form-item>
<el-form-item label="答复内容" prop="tf_opinion"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]">
<text-editor v-model="formData.tf_opinion"></text-editor>
<text-editor v-model="formData.tf_opinion" key="tf_opinion" ></text-editor>
</el-form-item>
<el-form-item label="校领导" prop="tf_nextNodeOperator"
:rules="[{required:true,message:'必填',trigger:['change','blur']}]"
@@ -305,6 +305,7 @@ layout("/layouts/platform.html"){
handleTaskAction(val) {
this.$refs.formRef.validate(valid => {
console.log(valid)
if (!valid) return
this.$confirm("您确定要提交吗?", "提示", {
confirmButtonText: "确定",
@@ -171,15 +171,17 @@ layout("/layouts/platform_h5.html"){
<div class="info">
<div class="info-item">
<van-icon name="underway-o"></van-icon>
活动时间:
<div>{{viewData.startTime}}至{{viewData.endTime}}</div>
</div>
<div class="info-item">
<van-icon name="location-o"></van-icon>
地点:
<div>{{viewData.address}}</div>
</div>
<div class="info-item" v-if="viewData.userNumberLimit===1">
<van-icon name="location-o"></van-icon>
活动限制人数
活动限制人数
<span>{{viewData.totalUserNumberLimit}}人</span>
</div>
<div class="info-item" v-if="viewData.userNumberLimit===2">
@@ -194,7 +196,7 @@ layout("/layouts/platform_h5.html"){
<span v-if="viewData.signUpMethod===2" style="color: var(--color-primary)">组队报名</span>
<span v-if="viewData.signUpMethod===3" style="color: var(--color-primary)">分工会报名</span>
</div>
<div class="info-item" v-if="viewData.signUpMethod==3">
<div class="info-item" v-if="viewData.signUpMethod==2">
<van-icon name="location-o"></van-icon>
组队人数:
<span style="color: var(--color-primary)">{{viewData.teamNum}}</span>
@@ -280,10 +282,6 @@ layout("/layouts/platform_h5.html"){
<!-- 分工会报名-->
<div v-else-if="viewData.signUpMethod===3" class="block">
<div class="notice-title left-tag-title">选择报名人员
<span v-if="viewData.userNumberLimit===2">
,报名人数 <span style="color: red">
{{viewData.unionTeamNum}}</span>
</span>
</div>
<el-select
v-if="inApplyTime"