feat: 疗休养优化2

This commit is contained in:
2026-11-04 18:12:51 +08:00
parent 060e8d5bc7
commit fd117b4fc3
7 changed files with 353 additions and 126 deletions
@@ -0,0 +1,55 @@
;(function (a) {
;(jQuery.browser = jQuery.browser || {}).mobile =
/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(
a
) ||
/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(
a.substr(0, 4)
)
})(navigator.userAgent || navigator.vendor || window.opera)
$.ajaxSetup({
contentType: "application/x-www-form-urlencoded;charset=utf-8",
success: function (response, textStatus, jqXHR) {
if (response && typeof response === "object" && response.code !== undefined && response.code !== 0) {
Vue.prototype.$message.error(response.msg)
} else {
return response
}
},
error: function (v1) {
Vue.prototype.$message.error(v1.status + " " + v1.statusText)
},
complete: function (XMLHttpRequest, textStatus) {
var sessionstatus = XMLHttpRequest.getResponseHeader("loginStatus") //通过XMLHttpRequest取得响应头,sessionstatus,
if (sessionstatus == "accessDenied") {
Vue.prototype.$message({
message: "\u767b\u5f55\u5931\u6548\uff0c\u8bf7\u5237\u65b0\u9875\u9762\u91cd\u65b0\u767b\u5f55",
type: "error"
})
}
if (sessionstatus == "unauthorized") {
Vue.prototype.$message({
message: "\u6ca1\u6709\u6743\u9650",
type: "error"
})
}
}
})
function pjaxReplace(url, data = {}) {
const { pathname, search } = location
if (url === pathname + search) {
return
}
$.pjax({
url: url,
container: "#sub-app-container-main-content-body",
maxCacheLength: 0,
push: false,
replace: true,
fragment: "#sub-app-container-main-content-body",
timeout: 8000,
data
})
}
@@ -15,32 +15,40 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
margin-right: 0;
}
#app .search .line-year-filter {
grid-column: span 2;
#app .search .line-year-range-input {
width: 230px;
max-width: 100%;
}
#app .search .line-year-range {
display: grid;
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
.line-year-range-panel .year-range-header {
display: flex;
justify-content: space-between;
align-items: center;
gap: 10px;
margin-bottom: 12px;
}
#app .search .line-year-range > .picker-year {
width: 100%;
min-width: 0;
.line-year-range-panel .year-range-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 8px;
}
#app .search .line-year-range > span {
width: auto;
.line-year-range-panel .year-range-grid .el-button {
margin: 0;
}
.line-year-range-panel .year-range-grid .in-range {
color: var(--color-primary, #409eff);
background: #ecf5ff;
}
.line-year-range-panel .year-range-footer {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 12px;
color: #909399;
font-weight: 400;
}
@media (max-width: 767px) {
#app .search .line-year-filter {
grid-column: span 1;
}
font-size: 12px;
}
</style>
@@ -48,39 +56,34 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
<guava ref="guava">
<el-card shadow="never">
<div class="search">
<div class="search-item line-year-filter">
<div class="search-item">
<div class="search-item-label">年度范围:</div>
<div class="search-item-option line-year-range">
<el-date-picker
v-model="pageForm.startYear"
type="year"
class="picker-year"
format="yyyy"
placeholder="开始年份"
value-format="yyyy"
@change="handleChangeYear"
>
</el-date-picker>
<span>至</span>
<el-date-picker
v-model="pageForm.endYear"
type="year"
class="picker-year"
format="yyyy"
placeholder="结束年份"
value-format="yyyy"
@change="handleChangeYear"
>
</el-date-picker>
<!--<el-date-picker
style="width: 100%"
@change="doSearch"
placeholder="选择年度"
type="year"
v-model="pageForm.year"
value-format="yyyy">
</el-date-picker>-->
<div class="search-item-option">
<el-popover v-model="yearRangeVisible" placement="bottom-start" trigger="click"
width="320" popper-class="line-year-range-panel" @show="openYearRange">
<div class="year-range-header">
<el-button type="text" icon="el-icon-d-arrow-left" aria-label="前十年"
@click="yearRangeDecade -= 10"></el-button>
<span>{{yearRangeDecade}} - {{yearRangeDecade + 11}}</span>
<el-button type="text" icon="el-icon-d-arrow-right" aria-label="后十年"
@click="yearRangeDecade += 10"></el-button>
</div>
<div class="year-range-grid">
<el-button v-for="offset in 12" :key="yearRangeDecade + offset - 1" size="small"
:type="yearRangeStart === yearRangeDecade + offset - 1 ? 'primary' : 'default'"
:class="{'in-range': !yearRangeStart && pageForm.startYear && pageForm.endYear && yearRangeDecade + offset - 1 >= Number(pageForm.startYear) && yearRangeDecade + offset - 1 <= Number(pageForm.endYear)}"
@click="selectRangeYear(yearRangeDecade + offset - 1)">
{{yearRangeDecade + offset - 1}}
</el-button>
</div>
<div class="year-range-footer">
<span>{{yearRangeStart ? '已选 ' + yearRangeStart + ',请选择结束年份' : '请选择开始年份'}}</span>
<el-button type="text" @click="clearYearRange">清空</el-button>
</div>
<el-input slot="reference" class="line-year-range-input" readonly
prefix-icon="el-icon-date" placeholder="开始年份 至 结束年份"
:value="pageForm.startYear || pageForm.endYear ? (pageForm.startYear || '开始年份') + ' 至 ' + (pageForm.endYear || '结束年份') : ''"></el-input>
</el-popover>
</div>
</div>
<div class="search-item">
@@ -686,6 +689,9 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
}
return {
yearRangeVisible: false,
yearRangeStart: null,
yearRangeDecade: Math.floor(new Date().getFullYear() / 10) * 10,
tableColumns: [
{label: '年度', prop: 'year', sortable: true},
{label: '线路名称', prop: 'lineName', sortable: true, width: '200'},
@@ -1093,6 +1099,28 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
this.lineImportLoading = false
}
},
openYearRange() {
this.yearRangeStart = null
const year = Number(this.pageForm.startYear) || new Date().getFullYear()
this.yearRangeDecade = Math.floor(year / 10) * 10
},
selectRangeYear(year) {
if (this.yearRangeStart === null) {
this.yearRangeStart = year
return
}
this.pageForm.startYear = String(Math.min(this.yearRangeStart, year))
this.pageForm.endYear = String(Math.max(this.yearRangeStart, year))
this.yearRangeStart = null
this.yearRangeVisible = false
this.handleChangeYear()
},
clearYearRange() {
this.pageForm.startYear = ''
this.pageForm.endYear = ''
this.yearRangeStart = null
this.yearRangeVisible = false
},
handleChangeYear() {
if (this.pageForm.startYear && this.pageForm.endYear) {
if (this.pageForm.startYear > this.pageForm.endYear) {
@@ -26,6 +26,95 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
.el-table-container {
padding-top: 0;
}
#app .branch-query-filters .query-condition-row {
display: flex;
align-items: flex-start;
gap: 12px;
}
#app .branch-query-filters .query-condition-label {
flex: 0 0 90px;
color: #606266;
text-align: right;
line-height: 32px;
}
#app .branch-query-filters .query-condition-options {
display: flex;
flex: 1;
min-width: 0;
flex-wrap: wrap;
align-items: center;
gap: 10px;
}
#app .branch-query-filters .query-condition-options .el-tag {
margin: 0;
cursor: pointer;
}
#app .branch-query-filters .query-row-content > .el-row:empty {
display: none;
}
#app .branch-query-filters .query-row-content > .el-row > .query-hint {
display: block;
padding: 10px 14px;
margin: 0;
border-radius: 4px;
background: #fdf6ec;
color: #b36b13;
line-height: 24px;
overflow-wrap: anywhere;
}
#app .branch-query-filters .query-row-content > .el-row > .query-hint > span {
display: inline;
color: inherit;
text-align: left;
}
#app .branch-query-filters .query-hint-row {
margin-left: 0;
margin-top: 12px;
}
#app .branch-query-filters .query-extra-fields {
display: flex;
flex-wrap: wrap;
gap: 12px 0;
}
#app .branch-query-filters .query-extra-fields > .el-col {
display: flex;
align-items: center;
gap: 12px;
padding-right: 24px;
}
#app .branch-query-filters .query-extra-fields > .el-col > span {
flex: 0 0 90px;
color: #606266;
text-align: right;
}
#app .branch-query-filters .query-extra-fields > .el-col > .el-select {
flex: 1;
width: 0 !important;
min-width: 0;
}
@media (max-width: 767px) {
#app .branch-query-filters .query-hint-row {
margin-left: 0;
}
#app .branch-query-filters .query-extra-fields > .el-col {
width: 100%;
padding-right: 0;
}
}
</style>
@@ -33,7 +122,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
<guava ref="guava">
<template>
<el-card shadow="never">
<el-card shadow="never" class="branch-query-filters">
<el-row align="middle" class="query-row" type="flex">
<el-col class="query-row-title"></el-col>
<el-col class="query-row-content">
@@ -103,13 +192,13 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</el-row>
<el-row align="middle" class="query-row" type="flex">
<el-col class="query-row-title"></el-col>
<el-col class="query-row-content">
<span>查询条件:</span>
<el-col class="query-row-content query-condition-row">
<span class="query-condition-label">查询条件:</span>
<div class="query-condition-options">
<el-tag :effect="pageForm.state===item.value?'dark':'plain'"
:key="item.value"
:type="item.label"
@click="checkState(item.value)"
style="margin-right: 10px;cursor: pointer;margin-bottom: 5px;"
v-for="item in options">
{{ item.label }}
</el-tag>
@@ -120,19 +209,20 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
unitDisabled = false"
type="danger" v-if="options.length&&pageForm.state">清空
</el-link>
</div>
</el-col>
</el-row>
<!--#if(@com.budwk.app.zhgh.staffbenefit.therapyRecuperation.support.TherapyContext.hasRole('H04')){#-->
<el-row align="middle" class="query-row" type="flex"
v-if="pageForm.state==='1'&&pageForm.lb==='ry'">
<el-col class="query-row-title"></el-col>
<el-col class="query-row-content">
<span>报名路线:</span>
<el-col class="query-row-content query-condition-row">
<span class="query-condition-label">报名路线:</span>
<div class="query-condition-options">
<el-tag :effect="pageForm.state2===item.value?'dark':'plain'"
:key="item.value"
:type="item.label"
@click="checkState2(item.value)"
style="margin-right: 10px;cursor: pointer;margin-bottom: 5px;font-size: 15px"
v-for="item in options2">
{{ item.label }}
</el-tag>
@@ -140,6 +230,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
@click="pageForm.state2='';doSearch();getBmUserUnion();pageForm.takePartInLineId='';getXlByUnion()"
style="color: red" v-if="options2.length&&pageForm.state">清空
</el-link>
</div>
</el-col>
</el-row>
<!--#}#-->
@@ -161,10 +252,6 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</el-select>
</el-col>
<el-col :span="12" v-if="pageForm.state=='1'"
style="color: red;margin-top: 10px">
<sapn>【本工会报名线路】和【本工会人员选择其他工会的线路】</sapn>
</el-col>
<el-col :span="12" v-if="pageForm.state=='2'">
<span>选择旅行社:</span>
<el-select v-model="pageForm.agencyId" filterable clearable
@@ -195,8 +282,13 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</el-row>
<el-row v-if="!pageForm.state">
<el-col :span="24" style="color: red;margin-top: 10px">
<el-row v-if="pageForm.state=='1'" class="query-hint-row">
<el-col :span="24" class="query-hint">
<span>【本工会报名线路】和【本工会人员选择其他工会的线路】</span>
</el-col>
</el-row>
<el-row v-if="!pageForm.state" class="query-hint-row">
<el-col :span="24" class="query-hint">
<span>温馨提醒:当前操作查询是【本工会当年参加疗休养的人员(包含校工会线路)】和【其他工会选择本工会线路的疗休养人员】</span>
<!--<span>温馨提醒:当前操作查询是【本工会当年参加疗休养的人员(包含校工会线路)】</span>-->
@@ -208,7 +300,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
<el-row align="middle" class="query-row" type="flex"
v-if="pageForm.state=='1'||pageForm.state=='3'">
<el-col class="query-row-title"></el-col>
<el-col class="query-row-content">
<el-col class="query-row-content query-extra-fields">
<el-col :span="8">
<span>出行时间:</span>
<el-select v-model="pageForm.selectId" filterable clearable
@@ -280,7 +372,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
<!-- <el-button icon="el-icon-s-promotion" @click="openImport" size="small"
type="primary">参加人员导入
</el-button>-->
<!--# if(@com.budwk.app.zhgh.staffbenefit.therapyRecuperation.support.TherapyContext.hasAnyRoles('H04,superadmin')){ #-->
<!--# if(@com.budwk.app.zhgh.staffbenefit.therapyRecuperation.support.TherapyContext.hasAnyRoles('H04,sysadmin')){ #-->
<template>
<el-button icon="el-icon-s-promotion"
@click="$downloadFile('/platform/inclusiveTherapyV3/query/exportDeclareForm')"
@@ -360,11 +452,12 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
:prop="column.prop"
:sortable="column.sortable"
>
<template slot-scope="{row}" v-if="column.prop=='lineName'">
<template slot-scope="{row}">
<template v-if="column.prop=='lineName'">
<el-link type="primary" @click="openLine(row)">{{row.lineName}}
</el-link>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='isFamily'">
<template v-else-if="column.prop=='isFamily'">
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
</el-link>
@@ -372,7 +465,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
</el-link>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='lineNum'">
<template v-else-if="column.prop=='lineNum'">
<span v-if="!row.familyNumber" >
{{row.lineNum}}({{row.signUpUserFamilyNum}})
@@ -383,25 +476,25 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</template>
<template slot-scope="{row}" v-else-if="column.prop=='signUpMode'">
<template v-else-if="column.prop=='signUpMode'">
{{signUpModeName(row.signUpMode)}}
</template>
<template slot-scope="{row}" v-else-if="column.prop=='agencyNum'">
<template v-else-if="column.prop=='agencyNum'">
<el-link type="primary" @click="openApplyUser(row)">{{row.agencyNum}}
</el-link>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='times'">
<template v-else-if="column.prop=='times'">
<div v-if="row.playStartTime">{{row.playStartTime}}</div>
<div v-else>{{row.playStartTime1}}</div>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='isTakePartIn'">
<template v-else-if="column.prop=='isTakePartIn'">
{{row.isTakePartIn?'已参加':'未参加'}}
</template>
<template slot-scope="{row}" v-else-if="column.prop=='stateId'">
<template v-else-if="column.prop=='stateId'">
<span v-if="row.stateId">
<vi-table-state :state="row"></vi-table-state>
</span>-->
<sapn v-else style="color: #67C23A">暂无</sapn>
</span>
<span v-else style="color: #67C23A">暂无</span>
</template>
<!--<template scope="{row}" v-else-if="column.prop=='travelAgencyName'">
@@ -409,16 +502,17 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
{{row.travelAgencyName}}
</el-link>
</template>-->
<template slot-scope="{row}" v-else-if="column.prop=='lineOrMaName'">
<template v-else-if="column.prop=='lineOrMaName'">
{{row.lineName?row.lineName:row.baseName?row.baseName:row.travelAgencyName}}
</template>
<template slot-scope="{row:{officialWebsite}}"
<template
v-else-if="column.prop==='officialWebsite'">
<a :href="officialWebsite" class="text-primary" target="_blank">
{{officialWebsite}}
<a :href="row.officialWebsite" class="text-primary" target="_blank">
{{row.officialWebsite}}
</a>
</template>
<template slot-scope="{row}" v-else>{{row[column.prop]}}</template>
<template v-else>{{row[column.prop]}}</template>
</template>
</el-table-column>
<!-- <el-table-column label="家属信息" type="expand" width="100px"
v-if="pageForm.lb==='ry'">
@@ -266,12 +266,13 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
:prop="column.prop"
:sortable="column.sortable"
>
<template slot-scope="{row}" v-if="column.prop=='lineName'">
<template slot-scope="{row}">
<template v-if="column.prop=='lineName'">
{{row.baseName?row.baseName:row.lineName}}
<!-- <el-link type="primary" @click="openLine(row)">{{row.lineName}}
</el-link>-->
</template>
<template slot-scope="{row}" v-else-if="column.prop=='isFamily'">
<template v-else-if="column.prop=='isFamily'">
<el-link v-if="!row.familyNumber" type="primary" @click="openView(row)">
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
</el-link>
@@ -279,15 +280,16 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
</el-link>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='isTakePartIn'">
<template v-else-if="column.prop=='isTakePartIn'">
{{row.isTakePartIn?'已参加':'未参加'}}
</template>
<template slot-scope="{row}" v-else-if="column.prop=='lotName'">
<template v-else-if="column.prop=='lotName'">
<span v-if="row.lotName"> {{row.lotName}}</span>
<span v-else>暂无</span>
</template>
<template slot-scope="{row}" v-else>{{row[column.prop]}}</template>
<template v-else>{{row[column.prop]}}</template>
</template>
</el-table-column>
<el-table-column label="操作" width="250px">
<template slot-scope="{row}">
@@ -131,7 +131,8 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
header-align="center"
show-overflow-tooltip
v-for="column in tableColumns">
<template slot-scope="{row}" v-if="column.prop === 'playTimes' || column.prop === 'signUpTimes'">
<template slot-scope="{row}">
<template v-if="column.prop === 'playTimes' || column.prop === 'signUpTimes'">
<template v-if="row[column.prop]">
<template slot="content">
<div :class="[index === row[column.prop].split(',').length - 1 ? '' : 'mb10']"
@@ -146,15 +147,16 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</template>
<span v-else>暂未设置</span>
</template>
<template slot-scope="{row}" v-else-if="column.prop === 'signUpMode'">
<template v-else-if="column.prop === 'signUpMode'">
{{signUpModeName(row.signUpMode)}}
</template>
<template slot-scope="{row}" v-else-if="column.prop === 'isOpen'">
<template v-else-if="column.prop === 'isOpen'">
{{row.isOpen ? '是' : '否'}}
</template>
<template slot-scope="{row}" v-else>
<template v-else>
{{row[column.prop]}}
</template>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" width="120px">
<template slot-scope="{row}">
@@ -215,19 +215,21 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
:fixed="column.fixed"
:sortable="column.sortable"
>
<template slot-scope="{row}" v-if="column.prop=='lineName'">
<template slot-scope="{row}">
<template v-if="column.prop=='lineName'">
<el-link type="primary" @click="openLine(row)">{{row.lineName}}
</el-link>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='signUpMode'">
<template v-else-if="column.prop=='signUpMode'">
<span>{{row.signUpMode == '1' ? '校工会组织' : '分工会组织'}}</span>
</template>
<template slot-scope="{row}" v-else-if="column.prop=='groupCount'">
<template v-else-if="column.prop=='groupCount'">
<el-link type="primary" @click="openUserData(row)">
{{Number(row.lineNum || 0) + Number(row.adultFamilyNum || 0)}}
</el-link>
</template>
<template slot-scope="{row}" v-else>{{row[column.prop]}}</template>
<template v-else>{{row[column.prop]}}</template>
</template>
</el-table-column>
<el-table-column label="操作" width="380px" fixed="right">
<template slot-scope="{row}">
@@ -305,7 +307,8 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
:prop="column.prop"
:sortable="column.sortable"
:key="column.id || column.code || therapyIndex">
<template slot-scope="{row}" v-if="column.prop=='isFamily'">
<template slot-scope="{row}">
<template v-if="column.prop=='isFamily'">
<el-link v-if="!row.familyNumber" type="primary">
{{row.isFamily?'携带':'未携带'}}({{row.isFamily}})
</el-link>
@@ -313,7 +316,8 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
{{row.familyNumber?'携带':'未携带'}}({{row.familyNumber}})
</el-link>
</template>
<template slot-scope="{row}" v-else>{{row[column.prop]}}</template>
<template v-else>{{row[column.prop]}}</template>
</template>
</el-table-column>
</el-table>
<el-row class="el-pagination-container" style="margin-bottom: 0px">
@@ -15,38 +15,78 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
margin-bottom: 24px;
}
#app .therapy-config .el-card__body {
padding: 20px 24px 0;
}
#app .therapy-config .el-tabs__item {
height: 46px;
line-height: 46px;
}
#app .config-base {
width: 100%;
}
#app .config-section {
display: grid;
grid-template-columns: minmax(0, 1fr);
max-width: 860px;
gap: 0 28px;
margin-bottom: 20px;
padding: 20px 24px 4px;
border: 1px solid #ebeef5;
border-radius: 6px;
background: #fff;
}
#app .config-section-title {
grid-column: 1 / -1;
margin: 4px 0 18px;
padding: 8px 12px;
margin: 0 0 20px;
padding: 0 0 0 10px;
border-left: 3px solid var(--color-primary, #409eff);
color: #303133;
font-size: 14px;
font-weight: 600;
line-height: 20px;
background: #f5f7fa;
background: transparent;
}
#app .config-base .el-form-item {
min-width: 0;
margin-bottom: 18px;
margin-bottom: 22px;
}
#app .config-base .el-form-item__label {
line-height: 20px;
padding-top: 10px;
padding-bottom: 10px;
float: none;
display: block;
width: auto !important;
padding: 0 0 8px;
line-height: 22px;
text-align: left;
color: #606266;
}
#app .config-base .el-form-item__content {
margin-left: 0 !important;
}
#app .config-base .el-input,
#app .config-base .el-select {
width: 100%;
}
#app .config-base .el-radio-group {
display: inline-flex;
flex-wrap: wrap;
}
#app .therapy-config .el-table th {
background: #f5f7fa;
}
#app .config-wide {
grid-column: 1 / -1;
max-width: 860px;
min-width: 0;
}
#app .config-scope,
@@ -54,6 +94,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
display: flex;
align-items: center;
gap: 12px;
width: 100%;
}
#app .config-scope .el-select {
@@ -85,6 +126,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
z-index: 20;
margin: 20px 0 0;
padding: 16px 0;
box-shadow: 0 -6px 16px rgba(0, 0, 0, 0.03);
background: #fff;
border-top: 1px solid #ebeef5;
text-align: right;
@@ -98,24 +140,13 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
padding: 12px 25px;
}
@media (min-width: 1280px) {
#app .config-base {
max-width: 1120px;
grid-template-columns: repeat(2, minmax(0, 1fr));
column-gap: 24px;
}
}
@media (max-width: 767px) {
#app .config-base > .el-form-item > .el-form-item__label {
float: none;
display: block;
width: auto !important;
text-align: left;
#app .therapy-config .el-card__body {
padding: 12px 12px 0;
}
#app .config-base > .el-form-item > .el-form-item__content {
margin-left: 0 !important;
#app .config-section {
padding: 16px 14px 0;
}
#app .config-time-range {
@@ -146,6 +177,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
<el-form ref="addForm" :model="formData" :rules="formRules" label-width="200px">
<el-tabs v-model="activeTab">
<el-tab-pane label="基本配置" name="baseConfig" class="config-base">
<div class="config-section">
<div class="config-section-title">基本信息</div>
<el-form-item label="配置名称" prop="configName">
<el-input v-model="formData.configName" placeholder="请输入配置名称"></el-input>
@@ -205,6 +237,9 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</div>
</el-form-item>
</div>
<div class="config-section">
<div class="config-section-title">报名与出行规则</div>
<el-form-item label="省外最少成团人数(包括家属)" prop="outsideQuota">
<el-input v-model.number="formData.outsideQuota"
@@ -249,6 +284,9 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
v-model.number="formData.modifyNumber"></el-input>
</el-form-item>
</div>
<div class="config-section">
<div class="config-section-title">审核规则</div>
<el-form-item label="省内线路是否需要审核" prop="isSnLine">
<el-radio-group v-model="formData.isSnLine">
@@ -271,6 +309,9 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</el-radio-group>
</el-form-item>
</div>
<div class="config-section">
<div class="config-section-title">名额与报名信息</div>
<el-form-item label="全批次最多报名人数" prop="allLineSignUpNumber">
<el-input max="100"
@@ -298,6 +339,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</el-radio-group>
</el-form-item>
</div>
</el-tab-pane>
<el-tab-pane label="标段管理" name="lotManage">
<el-form-item label-width="0">
@@ -312,23 +354,23 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
{{scope.$index+1}}
</template>
</el-table-column>
<el-table-column prop="lotName" label="标段名称">
<el-table-column prop="lotName" label="标段名称" min-width="200">
<template slot-scope="{row}">
<el-input v-model="row.lotName" placeholder="请输入标段名称"></el-input>
</template>
</el-table-column>
<el-table-column prop="lotValue" label="标段值">
<el-table-column prop="lotValue" label="标段值" min-width="160">
<template slot-scope="{row}">
<el-input v-model="row.lotValue" placeholder="请输入标段值"></el-input>
</template>
</el-table-column>
<el-table-column prop="activityCost" label="标段费用">
<el-table-column prop="activityCost" label="标段费用" min-width="160">
<template slot-scope="{row}">
<el-input v-model="row.activityCost" placeholder="请输入标段费用"></el-input>
</template>
</el-table-column>
<!--# if(@com.budwk.app.zhgh.staffbenefit.therapyRecuperation.support.TherapyContext.hasRole('sysadmin')){ #-->
<el-table-column prop="index" label="操作">
<el-table-column prop="index" label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete"
@click="deleteLotsRow(scope)"></el-button>
@@ -348,7 +390,7 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
{{scope.$index+1}}
</template>
</el-table-column>
<el-table-column prop="unionId" label="分工会">
<el-table-column prop="unionId" label="分工会" min-width="240">
<template slot-scope="{row}">
<el-select v-model="row.unionId" placeholder="请选择分工会" filterable clearable
style="width: 100%">
@@ -360,13 +402,13 @@ layout("/platform/zhgh/staffbenefit/therapyRecuperation/layouts/platform.html"){
</el-select>
</template>
</el-table-column>
<el-table-column prop="minProvinceOutNumber" label="最少省外数量">
<el-table-column prop="minProvinceOutNumber" label="最少省外数量" min-width="180">
<template slot-scope="{row}">
<el-input v-model.number="row.minProvinceOutNumber"
placeholder="请输入最少省外数量"></el-input>
</template>
</el-table-column>
<el-table-column prop="minProvinceInNumber" label="最少省内数量">
<el-table-column prop="minProvinceInNumber" label="最少省内数量" min-width="180">
<template slot-scope="{row}">
<el-input v-model.number="row.minProvinceInNumber"
placeholder="请输入最少省内数量"></el-input>