This commit is contained in:
=
2025-10-19 18:46:32 +08:00
52 changed files with 413 additions and 136 deletions
@@ -51,7 +51,6 @@ const userInfo = {
<el-table-column label="单选" width="160">
<template v-slot="{row}">
<el-radio
:label="row.id"
@change.native="getCurrentRow(row)"
:disabled="(row.courseReservedNumber + row.registerNum) >= row.coursePeopleNumber"
v-model="afterAdjustCourse"
@@ -108,8 +108,8 @@ layout("/layouts/platform.html"){
{ label: "姓名", prop: "username" },
{ label: "工号", prop: "loginname" },
{ label: "联系方式", prop: "mobile" },
{ label: "单位", prop: "unitName", sortable: true },
{ label: "分工会", prop: "unionName", sortable: true },
{ label: "单位", prop: "unitname", sortable: true },
{ label: "分工会", prop: "unionname", sortable: true },
{ label: "课程", prop: "courseNames", sortable: true },
{ label: "缺席次数", prop: "absentCount" },
{ label: "是否黑名单", prop: "isDisabled", sortable: true }
@@ -192,7 +192,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
prop="mobile" width="150">
<template v-slot="{row}">
<el-input placeholder="请输入联系方式"
v-model="row.mobile"></el-input>
v-model="row.mobile" maxlength="11"></el-input>
</template>
</el-table-column>
@@ -18,6 +18,13 @@ layout("/layouts/platform.html"){
.el-carousel__container {
height: 250px !important;
}
.one-line {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
}
</style>
<div id="app" v-cloak>
<guava ref="guava">
@@ -125,10 +132,13 @@ layout("/layouts/platform.html"){
报名未开始
</el-tag>
</div>
<div class="text e-item">
<span style="color: gray">活动地址:</span>
{{item.address}}
</div>
<el-tooltip :disabled="item.address.length <= 15"
:content="item.address" placement="top">
<div class="text e-item one-line">
<span style="color: gray">活动地址:</span>
{{ item.address }}
</div>
</el-tooltip>
<div class="text e-item">
<span style="color: gray">报名时间:</span>
{{$moment(item.applyStartTime).format('YYYY/MM/DD HH:mm')}}
@@ -7,7 +7,7 @@ layout("/layouts/platform.html"){
<template>
<el-card shadow="never">
<search @search="activityInfoData">
<search-item label="">
<search-item label="年度">
<el-date-picker
@change="activityInfoData"
placeholder="选择年"
@@ -40,12 +40,12 @@ layout("/layouts/platform.html"){
</el-select>
</search-item>
<search-item label="院级工会">
<search-item label="所属工会">
<el-select
@change="unionIdChange"
clearable
filterable
placeholder="院级工会筛选"
placeholder="请选择所属工会"
style="width: 100%; font-weight: bold"
v-model="pageForm.unionid"
>
@@ -51,7 +51,6 @@ const userInfo = {
<el-table-column label="单选" width="160">
<template v-slot="{row}">
<el-radio
:label="row.id"
@change.native="getCurrentRow(row)"
:disabled="(row.courseReservedNumber + row.registerNum) >= row.coursePeopleNumber"
v-model="afterAdjustCourse"
@@ -206,6 +205,9 @@ const userInfo = {
async getCourse(val) {
const {data} = await this.$axios.post(loc() + "/getCourse", {activityId: val})
this.courseList = data
},
async getUnitList() {
this.unitList = await this.$businessTool.listUnit(this.registerForm.unionId)
}
},
async created() {
@@ -108,8 +108,8 @@ layout("/layouts/platform.html"){
{ label: "姓名", prop: "username" },
{ label: "工号", prop: "loginname" },
{ label: "联系方式", prop: "mobile" },
{ label: "单位", prop: "unitName", sortable: true },
{ label: "分工会", prop: "unionName", sortable: true },
{ label: "单位", prop: "unitname", sortable: true },
{ label: "分工会", prop: "unionname", sortable: true },
{ label: "课程", prop: "courseNames", sortable: true },
{ label: "缺席次数", prop: "absentCount" },
{ label: "是否黑名单", prop: "isDisabled", sortable: true }
@@ -145,7 +145,7 @@ layout("/layouts/platform.html"){
type: "warning"
}).then(() => {
this.$axios.post('/platform/article/write/submitAgain', {
info: JSON.stringify(this.formData),
article: JSON.stringify(this.formData),
taskId: GetQueryString("taskId")
}).then(res => {
if (res.code === 0) {
@@ -236,7 +236,6 @@ layout("/layouts/platform.html"){
openAdd() {
this.stepActive = 0
this.dialogVisible = true
this.formData={}
this.$nextTick(() => {
this.$refs.formRef.resetFields()
})
@@ -60,6 +60,10 @@ layout("/layouts/platform.html"){
},
methods: {
openApply(row) {
if(this.$moment().isAfter(this.$moment(row.endTime))) {
this.$message.warning('申请时间已截止')
return
}
$.post("/platform/evaluate/apply/valid", {id: row.id}).then((res) => {
if (res.code === 0) {
const {msg, data} = res
@@ -16,7 +16,9 @@ const fundMemberInfo = {
<el-descriptions-item label="家庭住址">{{viewData.address}}</el-descriptions-item>
<el-descriptions-item label="手机电话">{{viewData.mobile}}</el-descriptions-item>
<el-descriptions-item label="住宅号码">{{viewData.homePhone}}</el-descriptions-item>
<el-descriptions-item label="照片">{{viewData.avatar}}</el-descriptions-item>
<el-descriptions-item label="照片">
<img :src="viewData.avatar" alt="" style="width: 120px;height: 150px" v-if="viewData.avatar">
</el-descriptions-item>
</el-descriptions>
<template v-for="task in doneTasks">
@@ -64,8 +64,9 @@ layout("/layouts/platform.html"){
</el-table>
<!--#include("/layouts/pagination.html"){}#-->
</el-card>
<template #edit>
<fund-member-info ref="fundMemberInfoRef"></fund-member-info>
</template>
</guava>
</div>
@@ -82,12 +82,12 @@ layout("/layouts/platform.html"){
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="手机号码" prop="mobile">
<el-input v-model="formData.mobile" placeholder="请输入手机号码"></el-input>
<el-input v-model="formData.mobile" placeholder="请输入手机号码" maxlength="11"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="住宅号码" prop="homePhone">
<el-input v-model="formData.homePhone" placeholder="请输入住宅电话"></el-input>
<el-input v-model="formData.homePhone" placeholder="请输入住宅电话" maxlength="20"></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -209,7 +209,7 @@ layout("/layouts/platform.html"){
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$axios.post('/platform/suggestionBox/write/submitAgain', {
this.$axios.post('/platform/fundMember/write/submitAgain', {
data: JSON.stringify(this.formData),
taskId: GetQueryString("taskId")
}).then(res => {
@@ -244,10 +244,14 @@ layout("/layouts/platform.html"){
idCard: idCard
}
}
}
},
},
created() {
this.init()
if(!this.bizId){
this.$axios.post('/platform/fundMember/write/validateApply')
}
}
})
</script>
@@ -34,7 +34,7 @@ layout("/layouts/platform.html"){
</search-item>
<search-item label="获奖工会">
<el-select v-model="pageForm.unionName" placeholder="请选择获奖工会" @change="doSearch" style="width: 100%" clearable>
<el-option v-for="o in unionList" :key="o.id" :label="o.unionname" :value="o.unionname"></el-option>
<el-option v-for="o in unionList" :key="o.id" :label="o.name" :value="o.id"></el-option>
</el-select>
</search-item>
</search>
@@ -262,8 +262,7 @@ layout("/layouts/platform.html"){
unitName
},
openEdit(row) {
this.$store.dispatch("pjaxRoute", "/platform/honor/registration?id=" + row.id)
// window.location.href = "/platform/honor/registration?id=" + row.id
commonUtil.pjaxPush("/platform/honor/registration?id=" + row.id)
},
async doDelete(row) {
const { id } = row
@@ -325,6 +324,7 @@ layout("/layouts/platform.html"){
}
},
async honorTypeChange(val) {
this.tableData = []
this.honorPrizeList = await this.getHonorPrize(val)
const data = this.honorTypeList.find((v) => v.id === val)
if (data) {
@@ -334,6 +334,7 @@ layout("/layouts/platform.html"){
}
},
async created() {
this.unionList = await this.$businessTool.listUnion()
await this.initData()
await this.pageData()
}
@@ -230,9 +230,9 @@ layout("/layouts/platform.html"){
</el-row>
<el-row type="flex" :gutter="20">
<el-col :span="12" v-if="formData.honorType== 'HONOR_LIST'">
<el-col :span="12" v-if="formData.queryTypeCode == 'HONOR_LIST'">
<el-form-item label="参加比赛名称" prop="gameName">
<el-input v-model="formData.gameName" maxlength="100"></el-input>
<el-input v-model="formData.gameName" maxlength="100" placeholder="请输入参加比赛名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -303,7 +303,7 @@ layout("/layouts/platform.html"){
if (res.code === 0) {
this.$message.success("操作成功,即将跳转至台账界面")
setTimeout(() => {
pjaxReplace("/platform/honor/manage")
commonUtil.pjaxPush("/platform/honor/manage")
}, 500)
} else {
this.$message.error(res.msg)
@@ -423,6 +423,7 @@ layout("/layouts/platform.html"){
},
created() {
this.initData()
this.isEdit = GetQueryString("id")
if (GetQueryString("id")) {
this.findData(GetQueryString("id"))
}
@@ -51,7 +51,6 @@ const userInfo = {
<el-table-column label="单选" width="160">
<template v-slot="{row}">
<el-radio
:label="row.id"
@change.native="getCurrentRow(row)"
:disabled="(row.courseReservedNumber + row.registerNum) >= row.coursePeopleNumber"
v-model="afterAdjustCourse"
@@ -108,8 +108,8 @@ layout("/layouts/platform.html"){
{ label: "姓名", prop: "username" },
{ label: "工号", prop: "loginname" },
{ label: "联系方式", prop: "mobile" },
{ label: "所属工会", prop: "unionName", sortable: true },
{ label: "所属单位", prop: "unitName", sortable: true },
{ label: "所属工会", prop: "unionname", sortable: true },
{ label: "所属单位", prop: "unitname", sortable: true },
{ label: "课程", prop: "courseNames", sortable: true },
{ label: "缺席次数", prop: "absentCount" },
{ label: "是否黑名单", prop: "isDisabled", sortable: true }
@@ -231,6 +231,10 @@ const basicForm = {
},
methods: {
next() {
if(!this.formData.typeId) {
this.$message.warning('请选择会议类型')
return
}
const type = this.typeOptions.find(o => o.id === this.formData.typeId)
if(type.designId === 'JDHHY' && !this.formData.teacherCongressSessionId) {
this.$message.warning('请选择所属教代会')
@@ -6,18 +6,8 @@ layout("/layouts/platform.html"){
<guava ref="guava">
<el-card shadow="never">
<search @search="doSearch">
<search-item label="关键字">
<el-input v-model="pageForm.searchKeyword" placeholder="请填写内容">
<el-select
slot="prepend"
v-model="pageForm.searchName"
placeholder="查询"
style="width: 100px;"
>
<el-option label="工号" value="op.loginName"></el-option>
<el-option label="姓名" value="op.userName"></el-option>
</el-select>
</el-input>
<search-item label="姓名/工号">
<el-input v-model="pageForm.searchKeyword" placeholder="请输入姓名或工号"></el-input>
</search-item>
<search-item label="教代会">
<el-select
@@ -0,0 +1,25 @@
<!--#
layout("/layouts/platform.html"){
#-->
<div id="app" v-cloak>
</div>
<script>
new Vue({
el: '#app',
data() {
return {
formData: {}
}
},
methods: {
},
created() {
}
})
</script>
<!--#
}
#-->
@@ -111,6 +111,7 @@ const filterUser = {
</el-card>
<el-card shadow="never">
<table-tool label="此名单只显示未在此福利项目中的人员"></table-tool>
<el-table :data="tableData"
@sort-change="pageOrder"
ref="tableRef"
@@ -224,12 +225,17 @@ const filterUser = {
cancelButtonText: "取消",
type: "warning"
}).then(async () => {
this.submitLoading = true;
try {
const loading = this.$loading({
lock: true,
text: "数据保存中,请稍后...",
spinner: "el-icon-loading"
})
const { code, data, msg } = await this.$axios.post("/platform/welfare/project/mange/addWelfareUser", {
pageForm: JSON.stringify(this.pageForm),
projectId: this.projectId
})
loading.close()
if (code === 0) {
this.$message.success(msg)
this.visible = false
@@ -114,7 +114,7 @@ layout("/layouts/platform.html"){
></el-date-picker>
</el-form-item>
</el-col>
<el-col span="12">
<el-col :span="12">
<el-form-item prop="provideTime" label="发放时间">
<el-date-picker
style="width: 100%"
@@ -12,7 +12,7 @@ const welfareOption = {
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="图片" width="120">
<el-table-column align="center" header-align="center" label="图片" width="200">
<template slot-scope="{row}">
<file-upload :upload_number="1" :value.sync="row.imgUrl"
accept=".jpg,.jpeg,.png"
@@ -36,7 +36,7 @@ const welfareOption = {
<el-table-column align="center" header-align="center" label="操作" width="100">
<template slot-scope="{$index}">
<el-button
type="danger"
type="danger"
icon="el-icon-delete"
circle
size="mini"
@@ -70,7 +70,7 @@ const welfareOption = {
default: () => []
}
},
data() {
return {
welfareList: [],
@@ -81,11 +81,11 @@ const welfareOption = {
}
}
},
created() {
this.welfareList = this.value ? JSON.parse(JSON.stringify(this.value)) : [];
},
watch: {
welfareList: {
handler(newVal) {
@@ -94,7 +94,7 @@ const welfareOption = {
deep: true
}
},
methods: {
addOption() {
const newSort = this.welfareList.length + 1;
@@ -105,7 +105,7 @@ const welfareOption = {
description: ''
});
},
deleteOption(index) {
this.$confirm('确认删除该福利选项?', '提示', {
type: 'warning'
@@ -114,27 +114,27 @@ const welfareOption = {
this.updateSortNumbers();
});
},
openDescription(row, index) {
this.descriptionDialog.content = row.description || '';
this.descriptionDialog.currentIndex = index;
this.descriptionDialog.visible = true;
},
saveDescription() {
if (this.descriptionDialog.currentIndex > -1) {
this.welfareList[this.descriptionDialog.currentIndex].description = this.descriptionDialog.content;
}
this.descriptionDialog.visible = false;
},
handleSortChange(value, index) {
const item = this.welfareList[index];
const oldSort = item.optionSort;
if (value < 1) value = 1;
if (value > this.welfareList.length) value = this.welfareList.length;
this.welfareList.forEach(welfare => {
if (welfare !== item) {
if (value > oldSort && welfare.optionSort > oldSort && welfare.optionSort <= value) {
@@ -144,49 +144,49 @@ const welfareOption = {
}
}
});
item.optionSort = value;
this.welfareList.sort((a, b) => a.optionSort - b.optionSort);
},
updateSortNumbers() {
this.welfareList.forEach((item, index) => {
item.optionSort = index + 1;
});
}
},
style: /*language=CSS*/ `
.welfare-option {
/deep/ .welfare-option {
}
.welfare-option .el-card__body{
/deep/ .welfare-option .el-card__body{
padding: 0;
}
.welfare-option .el-upload-list__item{
width: 100px;
height: 100px;
}
.welfare-option .imgUrl .el-upload--picture-card {
/deep/ .welfare-option .el-upload-list__item{
width: 100px;
height: 100px;
}
.welfare-option .imgUrl .el-upload--picture-card i {
/deep/ .welfare-option .imgUrl .el-upload--picture-card {
width: 100px;
height: 100px;
}
/deep/ .welfare-option .imgUrl .el-upload--picture-card i {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.preview-image {
/deep/ .preview-image {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
`
};
};
@@ -238,10 +238,16 @@ const addUser = {
cancelButtonText: "取消",
type: "warning"
}).then(async () => {
const loading = this.$loading({
lock: true,
text: "数据保存中,请稍后...",
spinner: "el-icon-loading"
})
const { code, data, msg } = await this.$axios.post("/platform/welfare/list/mange/addWelfareUser", {
pageForm: JSON.stringify(this.pageForm),
projectId: this.projectId
})
loading.close()
if (code === 0) {
this.$message.success(msg)
this.visible = false
@@ -30,6 +30,12 @@ layout("/layouts/platform_h5.html"){
</van-dropdown-menu>
</van-sticky>
<van-tabs v-if="assortList.length > 0" type="card" color="#1867B0"
style="margin-top: 10px" @click="tabClick">
<van-tab v-for="item in assortList" :name="item" :title="item">
</van-tab>
</van-tabs>
<table-list api="/platform/family/apply/pageData"
:page_form.sync="pageForm"
ref="tableListRef"
@@ -117,6 +123,7 @@ layout("/layouts/platform_h5.html"){
courseTypeId: null,
activityId: GetQueryString('id'),
dataType: GetQueryString('dataType'),
assortTypes: [],
},
typeOptions: [],
assortOptions: [],
@@ -125,10 +132,18 @@ layout("/layouts/platform_h5.html"){
introduceRow: {},
activity: {},
assortList: [],
weekdayCNMap: {0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六'},
}
},
methods: {
tabClick(name) {
this.pageForm.assortTypes = []
this.pageForm.assortTypes.push(name)
this.pageForm.assortTypes = JSON.stringify(this.pageForm.assortTypes)
this.doSearch()
},
refresh() {
this.doSearch()
},
@@ -197,6 +212,7 @@ layout("/layouts/platform_h5.html"){
}
},
async onReady() {
this.queryCourseAssort()
const typeList = await this.getCourseTypeList()
this.sourceTypeOptions = clone(typeList)
this.typeOptions = [
@@ -221,6 +237,15 @@ layout("/layouts/platform_h5.html"){
const resp = await this.$axios.post("/platform/family/type/getAllType")
return resp.data
},
queryCourseAssort() {
this.$axios.post("/platform/family/apply/queryCourseAssort", {activityId: this.pageForm.activityId})
.then((resp) => {
this.assortList = resp.data
if(this.assortList.length > 0) {
this.pageForm.assortTypes = JSON.stringify([this.assortList[0]])
}
})
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
@@ -24,6 +24,12 @@ layout("/layouts/platform_h5.html"){
</van-dropdown-menu>
</van-sticky>
<van-tabs v-if="assortList.length > 0" type="card" color="#1867B0"
style="margin-top: 10px" @click="tabClick">
<van-tab v-for="item in assortList" :name="item" :title="item">
</van-tab>
</van-tabs>
<table-list api="/platform/trainSignUp/apply/pageData"
:page_form.sync="pageForm"
ref="tableListRef"
@@ -110,6 +116,7 @@ layout("/layouts/platform_h5.html"){
courseTypeId: null,
activityId: GetQueryString('id'),
dataType: GetQueryString('dataType'),
assortTypes: [],
},
typeOptions: [],
assortOptions: [],
@@ -118,11 +125,18 @@ layout("/layouts/platform_h5.html"){
introduceRow: {},
activity: {},
assortList: [],
weekdayCNMap: {0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六'},
}
},
methods: {
tabClick(name) {
this.pageForm.assortTypes = []
this.pageForm.assortTypes.push(name)
this.pageForm.assortTypes = JSON.stringify(this.pageForm.assortTypes)
this.doSearch()
},
refresh() {
this.doSearch()
},
@@ -191,6 +205,7 @@ layout("/layouts/platform_h5.html"){
}
},
async onReady() {
this.queryCourseAssort()
const typeList = await this.getCourseTypeList()
this.sourceTypeOptions = clone(typeList)
this.typeOptions = [
@@ -215,6 +230,15 @@ layout("/layouts/platform_h5.html"){
const resp = await this.$axios.post("/platform/trainSignUp/type/getAllType")
return resp.data
},
queryCourseAssort() {
this.$axios.post("/platform/trainSignUp/apply/queryCourseAssort", {activityId: this.pageForm.activityId})
.then((resp) => {
this.assortList = resp.data
if(this.assortList.length > 0) {
this.pageForm.assortTypes = JSON.stringify([this.assortList[0]])
}
})
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
@@ -24,6 +24,12 @@ layout("/layouts/platform_h5.html"){
</van-dropdown-menu>
</van-sticky>
<van-tabs v-if="assortList.length > 0" type="card" color="#1867B0"
style="margin-top: 10px" @click="tabClick">
<van-tab v-for="item in assortList" :name="item" :title="item">
</van-tab>
</van-tabs>
<table-list api="/platform/literacy/apply/pageData"
:page_form.sync="pageForm"
ref="tableListRef"
@@ -110,6 +116,7 @@ layout("/layouts/platform_h5.html"){
courseTypeId: null,
activityId: GetQueryString('id'),
dataType: GetQueryString('dataType'),
assortTypes: [],
},
typeOptions: [],
assortOptions: [],
@@ -118,11 +125,18 @@ layout("/layouts/platform_h5.html"){
introduceRow: {},
activity: {},
assortList: [],
weekdayCNMap: {0: '周日', 1: '周一', 2: '周二', 3: '周三', 4: '周四', 5: '周五', 6: '周六'},
}
},
methods: {
tabClick(name) {
this.pageForm.assortTypes = []
this.pageForm.assortTypes.push(name)
this.pageForm.assortTypes = JSON.stringify(this.pageForm.assortTypes)
this.doSearch()
},
refresh() {
this.doSearch()
},
@@ -191,6 +205,7 @@ layout("/layouts/platform_h5.html"){
}
},
async onReady() {
this.queryCourseAssort()
const typeList = await this.getCourseTypeList()
this.sourceTypeOptions = clone(typeList)
this.typeOptions = [
@@ -215,6 +230,15 @@ layout("/layouts/platform_h5.html"){
const resp = await this.$axios.post("/platform/literacy/type/getAllType")
return resp.data
},
queryCourseAssort() {
this.$axios.post("/platform/literacy/apply/queryCourseAssort", {activityId: this.pageForm.activityId})
.then((resp) => {
this.assortList = resp.data
if(this.assortList.length > 0) {
this.pageForm.assortTypes = JSON.stringify([this.assortList[0]])
}
})
},
doSearch() {
this.$nextTick(() => {
this.pageForm.pageNumber = 1
@@ -258,34 +258,34 @@ const selectView = {
}
},
style: /*language=CSS*/ `
.welfare-view {
/deep/ .welfare-view {
background: #f7f8fa;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
/* 内容区域样式 */
.welfare-view__content {
/deep/ .welfare-view__content {
padding: 16px;
height: 100%;
}
/* 卡片通用样式 */
.welfare-card {
/deep/ .welfare-card {
background: #fff;
border-radius: 8px;
margin-bottom: 12px;
overflow: hidden;
}
.welfare-card__header {
/deep/ .welfare-card__header {
display: flex;
align-items: center;
padding: 16px;
position: relative;
}
.welfare-card__header::after {
/deep/ .welfare-card__header::after {
content: '';
position: absolute;
left: 16px;
@@ -296,64 +296,64 @@ const selectView = {
transform: scaleY(0.5);
}
.welfare-card__header i {
/deep/ .welfare-card__header i {
font-size: 16px;
margin-right: 6px;
color: var(--color-primary);
}
.welfare-card__header span {
/deep/ .welfare-card__header span {
font-size: 15px;
font-weight: 500;
color: #323233;
}
.welfare-card__content {
/deep/ .welfare-card__content {
padding: 16px;
}
/* 信息行样式 */
.info-row {
/deep/ .info-row {
display: flex;
margin-bottom: 12px;
align-items: center;
}
.info-row:last-child {
/deep/ .info-row:last-child {
margin-bottom: 0;
}
.info-row__label {
/deep/ .info-row__label {
width: 70px;
color: #969799;
font-size: 14px;
flex-shrink: 0;
}
.info-row__value {
/deep/ .info-row__value {
flex: 1;
color: #323233;
font-size: 14px;
min-width: 0;
}
.info-row--time {
/deep/ .info-row--time {
align-items: flex-start;
}
.info-row--time .info-row__value {
/deep/ .info-row--time .info-row__value {
display: flex;
flex-direction: column;
gap: 4px;
}
.time-item {
/deep/ .time-item {
position: relative;
padding-left: 42px;
line-height: 20px;
}
.time-item--start::before {
/deep/ .time-item--start::before {
content: "开始:";
position: absolute;
left: 0;
@@ -361,7 +361,7 @@ const selectView = {
font-size: 12px;
}
.time-item--end::before {
/deep/ .time-item--end::before {
content: "结束:";
position: absolute;
left: 0;
@@ -370,15 +370,15 @@ const selectView = {
}
/* 选择列表样式 */
.selections-container {
/deep/ .selections-container {
margin-bottom: 12px;
}
.selection-list {
/deep/ .selection-list {
padding: 8px 16px;
}
.selection-item {
/deep/ .selection-item {
display: flex;
align-items: center;
padding: 12px;
@@ -389,15 +389,15 @@ const selectView = {
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}
.selection-item:active {
/deep/ .selection-item:active {
background: #f8f9fa;
}
.selection-item:last-child {
/deep/ .selection-item:last-child {
margin-bottom: 0;
}
.selection-item__image {
/deep/ .selection-item__image {
width: 72px;
height: 72px;
margin-right: 12px;
@@ -407,19 +407,19 @@ const selectView = {
flex-shrink: 0;
}
.selection-item__image img {
/deep/ .selection-item__image img {
width: 100%;
height: 100%;
object-fit: cover;
}
.selection-item__content {
/deep/ .selection-item__content {
flex: 1;
min-width: 0;
padding: 4px 0;
}
.selection-item__name {
/deep/ .selection-item__name {
font-size: 15px;
font-weight: 500;
color: #323233;
@@ -429,7 +429,7 @@ const selectView = {
white-space: nowrap;
}
.selection-item__meta {
/deep/ .selection-item__meta {
display: flex;
align-items: center;
font-size: 13px;
@@ -437,7 +437,7 @@ const selectView = {
line-height: 1.4;
}
.selection-item__count {
/deep/ .selection-item__count {
display: flex;
align-items: center;
margin-right: 16px;
@@ -446,7 +446,7 @@ const selectView = {
border-radius: 4px;
}
.selection-item__time {
/deep/ .selection-item__time {
display: flex;
align-items: center;
background: #f7f8fa;
@@ -454,19 +454,19 @@ const selectView = {
border-radius: 4px;
}
.selection-item__meta i {
/deep/ .selection-item__meta i {
margin-right: 4px;
font-size: 14px;
}
.selection-item__arrow {
/deep/ .selection-item__arrow {
color: #c8c9cc;
font-size: 16px;
padding: 0 0 0 12px;
}
/* 空状态样式 */
.empty-state {
/deep/ .empty-state {
display: flex;
flex-direction: column;
align-items: center;
@@ -474,42 +474,42 @@ const selectView = {
color: #969799;
}
.empty-state__icon {
/deep/ .empty-state__icon {
font-size: 48px;
margin-bottom: 8px;
}
/* 详情弹窗样式 */
.welfare-detail {
/deep/ .welfare-detail {
padding: 20px 16px;
max-height: 60vh;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.welfare-detail__content {
/deep/ .welfare-detail__content {
font-size: 14px;
line-height: 1.6;
color: #323233;
}
.rich-text {
/deep/ .rich-text {
overflow-x: hidden;
}
.rich-text img {
/deep/ .rich-text img {
max-width: 100%;
height: auto;
margin: 8px 0;
border-radius: 4px;
}
.rich-text p {
/deep/ .rich-text p {
margin: 8px 0;
}
/* 阻止嵌套 action-sheet 时的背景重叠 */
.no-overlay {
/deep/ .no-overlay {
background-color: transparent !important;
}
`