..
This commit is contained in:
@@ -43,6 +43,7 @@ RoleConstant {
|
||||
BRANCH_UNION_WENTI_WY("分工会文体委员"),
|
||||
BRANCH_UNION_SHENGGHUO_WY("分工会生活委员"),
|
||||
BRANCH_UNION_TIAOJIE_WY("分工会调解委员"),
|
||||
BRANCH_UNION_FULI_WY("分工会福利委员"),
|
||||
|
||||
TEACHER_CONGRESS_DELEGATE_FORMAL("教代会正式代表"),
|
||||
TEACHER_CONGRESS_DELEGATE_ATTENDANCE("教代会列席代表"),
|
||||
|
||||
@@ -168,6 +168,7 @@ public class SysLoginController {
|
||||
}
|
||||
|
||||
sysUserService.loginPlus(user, LoginType.WE_APP, req);
|
||||
// redisService.del(lockKey);
|
||||
return Result.success("login.success").addData(StpUtil.getTokenInfo());
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
|
||||
+7
@@ -345,7 +345,14 @@ public class ActivityBasicScopeController {
|
||||
cnd.and("TIMESTAMPDIFF(YEAR, u.birthday, CURDATE())", "between", activityUserScopePageParam.getAge());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (StrUtil.isAllNotBlank(activityUserScopePageParam.getStartJoinDate(), activityUserScopePageParam.getEndJoinDate())) {
|
||||
if (activityUserScopePageParam.getReverseSelection()) {
|
||||
cnd.andNot("u.arrivalAtSchoolDate", "between", new String[]{activityUserScopePageParam.getStartJoinDate(), activityUserScopePageParam.getEndJoinDate()});
|
||||
} else {
|
||||
cnd.and("u.arrivalAtSchoolDate", "between", new String[]{activityUserScopePageParam.getStartJoinDate(), activityUserScopePageParam.getEndJoinDate()});
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.budwk.app.zhgh.activity.basic.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -46,4 +47,12 @@ public class ActivityUserScopePageParam extends PageForm {
|
||||
|
||||
private String props;
|
||||
|
||||
|
||||
@ApiModelProperty(value = "开始加入时间(会员)")
|
||||
private String startJoinDate;
|
||||
|
||||
@ApiModelProperty(value = "结束加入时间(会员)")
|
||||
private String endJoinDate;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+3
-1
@@ -156,9 +156,11 @@ public class ActivityCultureUserStatisticsController {
|
||||
ActivityTissue tissue = dao.fetch(ActivityTissue.class, id);
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
atp.*
|
||||
atp.*,
|
||||
us.idcard idCard
|
||||
FROM
|
||||
`activity_tissue_person` atp
|
||||
left join sys_user us on us.id=atp.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
|
||||
+8
-3
@@ -126,7 +126,7 @@ public class QsvSurveyServiceImpl extends BaseServiceImpl<QsvUserAnswerRecord> i
|
||||
}
|
||||
|
||||
// 查询用户答题记录
|
||||
List<QsvUserAnswerRecord> answerRecords = dao().query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId));
|
||||
List<QsvUserAnswerRecord> answerRecords = dao().query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId).and(QsvUserAnswerRecord::getIsFinish,"=",1));
|
||||
// 将答题记录的扩展JSON转换为JSONObject列表
|
||||
List<JSONObject> answerExtList = answerRecords.stream().map(QsvUserAnswerRecord::getExtJson).toList();
|
||||
|
||||
@@ -169,12 +169,17 @@ public class QsvSurveyServiceImpl extends BaseServiceImpl<QsvUserAnswerRecord> i
|
||||
|
||||
try {
|
||||
// 查询用户答题记录
|
||||
List<QsvUserAnswerRecord> answerRecords = dao().query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId));
|
||||
List<QsvUserAnswerRecord> answerRecords = dao().query(QsvUserAnswerRecord.class, Cnd.where(QsvUserAnswerRecord::getActivityId, "=", activityId).and(QsvUserAnswerRecord::getIsFinish,"=",1));
|
||||
// 将答题记录的扩展JSON转换为JSONObject列表
|
||||
List<JSONObject> answerExtList = answerRecords.stream().map(QsvUserAnswerRecord::getExtJson).toList();
|
||||
|
||||
// 查询活动题目列表
|
||||
List<QsvSubject> subjects = dao().query(QsvSubject.class, Cnd.where(QsvSubject::getActivityId, "=", activityId));
|
||||
List<QsvSubject> subjects = dao().query(QsvSubject.class, Cnd.where(QsvSubject::getActivityId, "=", activityId).asc(QsvSubject::getSortNum));
|
||||
|
||||
for (QsvSubject subject : subjects) {
|
||||
System.out.println(subject.getTitle());
|
||||
}
|
||||
|
||||
// 将题目列表转换为Map
|
||||
Map<String, QsvSubject> subjectMap = subjects.stream().collect(Collectors.toMap(QsvSubject::getId, v -> v));
|
||||
// 获取题目ID列表
|
||||
|
||||
+2
-5
@@ -236,12 +236,9 @@ public class ActivitySportsApplyUserController {
|
||||
cnd.and(group);
|
||||
}
|
||||
|
||||
Sql sql = Sqls.create("select id,loginname,username,sex,mobile,unitId,birthday,idcard from `vw_user` $condition LIMIT 30");
|
||||
Sql sql = Sqls.create("select id,loginname,username,sex,mobile,unitId,unionId,birthday,idcard from `vw_user` $condition LIMIT 30");
|
||||
sql.setCondition(cnd);
|
||||
sql.setCallback(Sqls.callback.entities());
|
||||
sql.setEntity(activitySportsApplyUserService.getEntity());
|
||||
List<Sys_user> list = dao.execute(sql).getList(Sys_user.class);
|
||||
return Result.success(list);
|
||||
return Result.success(activitySportsApplyUserService.listMap(sql));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -132,10 +132,7 @@ public class ActivitySchoolApply extends BaseModel implements Serializable {
|
||||
private Integer status;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("单位名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String unitname;
|
||||
|
||||
|
||||
|
||||
@Excel(name = "分工会", width = 30)
|
||||
@@ -185,5 +182,11 @@ public class ActivitySchoolApply extends BaseModel implements Serializable {
|
||||
private String sf;
|
||||
private int age;
|
||||
|
||||
@Column
|
||||
@Comment("单位名称")
|
||||
@Excel(name = "单位名称", width = 40)
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String unitname;
|
||||
|
||||
|
||||
}
|
||||
|
||||
-1
@@ -380,7 +380,6 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl<Activity
|
||||
apply.setApplyUser(SecurityUtil.getUserId());
|
||||
apply.setStatus(pass ? 2 : 0);
|
||||
apply.setApplyDate(DateUtil.now());
|
||||
apply.setUnitId(basicUnit.getId());
|
||||
apply.setActivityUnionId(basicUnion.getId());
|
||||
apply.setActivityUnionName(basicUnion.getName());
|
||||
}
|
||||
|
||||
+5
-4
@@ -116,7 +116,7 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl<ActivitySchool> i
|
||||
|
||||
if (collect.size() > 0) {
|
||||
collect.forEach(v -> {
|
||||
dao().clear(ActivitySchoolApply.class,Cnd.where("activityId", "=", activitySchool.getId()).and("eventId", "=", v.getEventId()));
|
||||
dao().clear(ActivitySchoolApply.class, Cnd.where("activityId", "=", activitySchool.getId()).and("eventId", "=", v.getEventId()));
|
||||
dao().clear(ActivitySchoolEvent.class, Cnd.where("activityId", "=", activitySchool.getId()).and("eventId", "=", v.getEventId()));
|
||||
dao().clear(ActivitySchoolTeam.class, Cnd.where("activityId", "=", activitySchool.getId()).and("eventId", "=", v.getEventId()));
|
||||
});
|
||||
@@ -182,7 +182,7 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl<ActivitySchool> i
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void doDelete(String id) {
|
||||
dao().clear(ActivitySchoolApply.class,Cnd.where("activityId", "=", id));
|
||||
dao().clear(ActivitySchoolApply.class, Cnd.where("activityId", "=", id));
|
||||
dao().clear(ActivitySchoolEvent.class, Cnd.where("activityId", "=", id));
|
||||
dao().clear(ActivitySchoolTeam.class, Cnd.where("activityId", "=", id));
|
||||
this.delete(id);
|
||||
@@ -200,6 +200,7 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl<ActivitySchool> i
|
||||
app.activityUnionName unionname,
|
||||
app.sex,
|
||||
app.mobile,
|
||||
app.unitname,
|
||||
u.idCard,
|
||||
u.userState,
|
||||
ev.allName,
|
||||
@@ -220,7 +221,7 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl<ActivitySchool> i
|
||||
app.`team` asc
|
||||
""").setParam("id", id);
|
||||
if (Strings.isNotBlank(unionId)) {
|
||||
sql.setVar("cnd", "and u.unionid='" + unionId + "'");
|
||||
sql.setVar("cnd", "and app.activityUnionId='" + unionId + "'");
|
||||
}
|
||||
List<Record> list = list(sql);
|
||||
String activityName;
|
||||
@@ -235,7 +236,7 @@ public class ActivitySportsServiceImpl extends BaseServiceImpl<ActivitySchool> i
|
||||
list.forEach(z -> {
|
||||
ActivitySchoolApply schoolApply = z.toPojo(ActivitySchoolApply.class);
|
||||
String s = schoolApply.getIdentity().stream().map(personType::getName).toList().toString();
|
||||
schoolApply.setSf(s);
|
||||
schoolApply.setSf(s.replace("[", "").replace("]", ""));
|
||||
excels.add(schoolApply);
|
||||
});
|
||||
|
||||
|
||||
+2
-2
@@ -78,9 +78,9 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
|
||||
|
||||
if (StrUtil.isAllNotBlank(pageForm.getStartJoinDate(), pageForm.getEndJoinDate())) {
|
||||
if (reverseSelection) {
|
||||
cnd.andNot("DATE(u.memberJoinTime)", "between", new String[]{pageForm.getStartJoinDate(), pageForm.getEndJoinDate()});
|
||||
cnd.andNot("u.arrivalAtSchoolDate", "between", new String[]{pageForm.getStartJoinDate(), pageForm.getEndJoinDate()});
|
||||
} else {
|
||||
cnd.and("DATE(u.memberJoinTime)", "between", new String[]{pageForm.getStartJoinDate(), pageForm.getEndJoinDate()});
|
||||
cnd.and("u.arrivalAtSchoolDate", "between", new String[]{pageForm.getStartJoinDate(), pageForm.getEndJoinDate()});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
@@ -50,7 +50,7 @@ module.exports = {
|
||||
name: "HeaderUserAvatar",
|
||||
store,
|
||||
components: {
|
||||
"user-info": httpVueLoader("/components/module/userInfo/index.vue")
|
||||
"user-info": httpVueLoader("/components/module/userInfo/index.vue?v="+new Date().getTime())
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -39,13 +39,13 @@
|
||||
|
||||
<el-row class="query-row">
|
||||
<el-col class="query-title hidden-xs-only">性别:</el-col>
|
||||
<el-col class="query-content">
|
||||
<el-col class="query-content query-row-content-tag">
|
||||
<el-tag
|
||||
:effect="pageForm.sexTypes.includes(item.name) ? 'dark' : 'plain'"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
@click="tagClick('sexTypes', item.name)"
|
||||
style="margin-right: 10px; cursor: pointer"
|
||||
style="cursor: pointer;margin: 0;"
|
||||
v-for="item in sexTypeOptions"
|
||||
>
|
||||
{{ item.name }}
|
||||
@@ -55,13 +55,13 @@
|
||||
|
||||
<el-row class="query-row" v-if="is_A06 === true || is_sysadmin === true || is_H04 === true">
|
||||
<el-col class="query-title">编制类型:</el-col>
|
||||
<el-col class="query-content">
|
||||
<el-col class="query-content query-row-content-tag">
|
||||
<el-tag
|
||||
:effect="pageForm.personTypes.includes(item.name) ? 'dark' : 'plain'"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
@click="tagClick('personTypes', item.name)"
|
||||
style="margin-right: 10px; cursor: pointer"
|
||||
style="cursor: pointer;margin: 0;"
|
||||
v-for="item in personTypeOptions"
|
||||
>
|
||||
{{ item.name }}
|
||||
@@ -94,13 +94,13 @@
|
||||
|
||||
<el-row class="query-row" v-if="is_A06 === true || is_sysadmin === true || is_H04 === true">
|
||||
<el-col class="query-title">在职状态:</el-col>
|
||||
<el-col class="query-content">
|
||||
<el-col class="query-content query-row-content-tag">
|
||||
<el-tag
|
||||
:effect="pageForm.userStates.includes(item.name) ? 'dark' : 'plain'"
|
||||
:key="item.code"
|
||||
:type="item.name"
|
||||
@click="tagClick('userStates', item.name)"
|
||||
style="margin-right: 10px; cursor: pointer"
|
||||
style="cursor: pointer;margin: 0;"
|
||||
v-for="item in userStateOptions"
|
||||
>
|
||||
{{ item.name }}
|
||||
@@ -243,6 +243,22 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row class="query-row" type="flex" align="middle">
|
||||
<el-col class="query-title">入会日期:</el-col>
|
||||
<el-col class="query-content">
|
||||
<el-date-picker
|
||||
v-model="pageForm.startJoinDate"
|
||||
type="date"
|
||||
placeholder="选择开始日期">
|
||||
</el-date-picker>
|
||||
<el-date-picker
|
||||
v-model="pageForm.endJoinDate"
|
||||
type="date"
|
||||
placeholder="选择结束日期">
|
||||
</el-date-picker>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <el-row class="query-row"
|
||||
v-if="is_H10===true||is_A06===true||is_sysadmin===true||is_H04===true">
|
||||
<el-col class="query-title">条件匹配:</el-col>
|
||||
@@ -355,14 +371,6 @@ module.exports = {
|
||||
{
|
||||
code: "unionMember",
|
||||
name: "工会会员"
|
||||
},
|
||||
{
|
||||
code: "welfareMember",
|
||||
name: "福利会员"
|
||||
},
|
||||
{
|
||||
code: "sickFundMember",
|
||||
name: "基金会员"
|
||||
}
|
||||
],
|
||||
sexTypeOptions: [
|
||||
@@ -389,7 +397,7 @@ module.exports = {
|
||||
roleIds: [],
|
||||
userId: [],
|
||||
activityUserCnd: "",
|
||||
reverseSelection: false
|
||||
reverseSelection: false,
|
||||
},
|
||||
activityUnions: [],
|
||||
unions: [],
|
||||
@@ -504,6 +512,17 @@ module.exports = {
|
||||
this.units = await this.$businessTool.listUnit(this.unionId)
|
||||
}
|
||||
},
|
||||
|
||||
determineStartDate() {
|
||||
if (this.pageForm.endDate) {
|
||||
if (Date.parse(this.pageForm.startDate) > Date.parse(this.pageForm.endDate)) {
|
||||
this.pageForm.startDate = ""
|
||||
this.$notify.warning("开始时间不能大于结束时间")
|
||||
}
|
||||
}
|
||||
this.pageForm.startDate = this.pageForm.startDate.toLocaleDateString().replaceAll("/", "-")
|
||||
},
|
||||
|
||||
async pageData() {
|
||||
const pageForm = clone(this.pageForm)
|
||||
pageForm.personTypes = JSON.stringify(pageForm.personTypes)
|
||||
@@ -646,6 +665,13 @@ module.exports = {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.query-row-content-tag {
|
||||
display: flex;
|
||||
flex-wrap: wrap; /* 标签自动换行 */
|
||||
align-items: center;
|
||||
gap: 4px 6px; /* 横纵向间距 */
|
||||
}
|
||||
|
||||
@media screen and (max-width: 992px) {
|
||||
.query-row:nth-child(4) .query-content .el-col:not(:last-child) {
|
||||
margin-bottom: 5px;
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<el-descriptions :column="3" border class="descriptions-form">
|
||||
<el-descriptions-item label="工号">{{ viewData.loginname }}</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">{{ viewData.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label="姓名">{{ viewData.username }}</el-descriptions-item>
|
||||
<el-descriptions-item label=""></el-descriptions-item>
|
||||
<el-descriptions-item label="性别">{{ viewData.sex }}</el-descriptions-item>
|
||||
<el-descriptions-item label="出生日期">
|
||||
{{ viewData.birthday ? $moment(viewData.birthday).format("YYYY-MM-DD") : null }}
|
||||
|
||||
@@ -84,10 +84,10 @@
|
||||
securityJsCode: "4fa1e1aeabba7eb9518129cf57ab17c1"
|
||||
}
|
||||
</script>
|
||||
<!-- <script-->
|
||||
<!-- type="text/javascript"-->
|
||||
<!-- src="https://webapi.amap.com/maps?v=2.0&key=57f0d098ba1b881ecc436c4cfd23bbbf&plugin=AMap.PolyEditor,AMap.Geolocation,AMap.PlaceSearch"-->
|
||||
<!-- ></script>-->
|
||||
<!-- <script-->
|
||||
<!-- type="text/javascript"-->
|
||||
<!-- src="https://webapi.amap.com/maps?v=2.0&key=e913d40c4546d8bb4d521b4a8aef0fff&plugin=AMap.PolyEditor,AMap.Geolocation,AMap.PlaceSearch"-->
|
||||
<!-- ></script>-->
|
||||
|
||||
<script type="text/javascript">
|
||||
Vue.config.devtools = false
|
||||
|
||||
@@ -129,14 +129,14 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include("../../../zhgh/staffmanage/member/common/audit/memberAuditChangeInfo.js"){}#-->
|
||||
<!--#include("../../../zhgh/staffmanage/member/change/common/memberAllChangeInfo.js"){}#-->
|
||||
|
||||
new Vue({
|
||||
el: "#app",
|
||||
dicts: ["MEMBER_CHANGE_TYPE"],
|
||||
mixins: [initTableMixins],
|
||||
components: {
|
||||
"member-audit-change-info": MEMBER_AUDIT_CHANGE_INFO
|
||||
"member-audit-change-info": MEMBER_ALL_CHANGE_INFO
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -177,7 +177,7 @@ layout("/layouts/platform.html"){
|
||||
methods: {
|
||||
openCurrentUserChangeInfo(row) {
|
||||
this.$refs.guava.public(() => {
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen({recordId: row.userHistoryId, userId: row.id})
|
||||
this.$refs.memberAuditChangeInfoRef.onOpen(row.id)
|
||||
})
|
||||
},
|
||||
getChangeTypes(changeTypes) {
|
||||
|
||||
@@ -109,10 +109,8 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool :app="this" label="活动列表">
|
||||
<template #func>
|
||||
<table-tool label="活动列表">
|
||||
<el-button icon="el-icon-plus" type="primary" size="small" @click="openAdd">创建活动</el-button>
|
||||
</template>
|
||||
</table-tool>
|
||||
<el-table :data="tableData" style="width: 100%" row-key="_id" @sort-change="pageOrder"
|
||||
v-loading="tabLoading">
|
||||
@@ -129,15 +127,15 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column label="活动地址" prop="address"></el-table-column>
|
||||
<el-table-column label="报名时间">
|
||||
<template scope="scope">
|
||||
{{moment(scope.row.applyStartTime).format('YYYY-MM-DD HH:mm:ss')}} -
|
||||
{{moment(scope.row.applyEndTime).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
{{$moment(scope.row.applyStartTime).format('YYYY-MM-DD HH:mm:ss')}} -
|
||||
{{$moment(scope.row.applyEndTime).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="活动时间">
|
||||
<template scope="scope">
|
||||
{{moment(scope.row.startTime).format('YYYY-MM-DD HH:mm:ss')}} -
|
||||
{{moment(scope.row.endTime).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
{{$moment(scope.row.startTime).format('YYYY-MM-DD HH:mm:ss')}} -
|
||||
{{$moment(scope.row.endTime).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -192,7 +190,7 @@ layout("/layouts/platform.html"){
|
||||
<div v-show="stepActive==0" class="transition-box" style="margin-top: 20px;">
|
||||
<el-form :model="formData" ref="form" :rules="formRules"
|
||||
label-width="150px">
|
||||
<vi-title title="填写活动信息"></vi-title>
|
||||
<div class="process-title">填写活动信息</div>
|
||||
|
||||
<el-row :gutter="20" type="flex">
|
||||
<el-col :span="12">
|
||||
@@ -344,20 +342,20 @@ layout("/layouts/platform.html"){
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12" v-if="formData.isQuestion">
|
||||
<el-form-item label="答题试卷" prop="questionId">
|
||||
<el-select v-model="formData.questionId" filterable style="width: 100%"
|
||||
clearable style="width: 100%"
|
||||
placeholder="选择答题试卷">
|
||||
<el-option
|
||||
v-for="item in questionOptions"
|
||||
:label="item.qtitle"
|
||||
:key="item.qid"
|
||||
:value="item.qid">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="12" v-if="formData.isQuestion">-->
|
||||
<!-- <el-form-item label="答题试卷" prop="questionId">-->
|
||||
<!-- <el-select v-model="formData.questionId" filterable style="width: 100%"-->
|
||||
<!-- clearable style="width: 100%"-->
|
||||
<!-- placeholder="选择答题试卷">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in questionOptions"-->
|
||||
<!-- :label="item.qtitle"-->
|
||||
<!-- :key="item.qid"-->
|
||||
<!-- :value="item.qid">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-col>-->
|
||||
</el-row>
|
||||
|
||||
|
||||
@@ -403,6 +401,7 @@ layout("/layouts/platform.html"){
|
||||
class="pictureUpload"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
action
|
||||
list-type="picture-card"
|
||||
:on-change="certificatePictureChange"
|
||||
:on-remove="certificatePictureRemove"
|
||||
@@ -413,7 +412,7 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row type="flex" gutter="20">
|
||||
<el-row type="flex" :gutter="20">
|
||||
<el-col :span="12" v-if="formData.activityModel === 'punch'">
|
||||
<el-form-item label="报名时间" prop="applyTime"
|
||||
:rules="[{ required:true, message: '请选择报名时间' }]">
|
||||
@@ -682,13 +681,14 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<el-form-item label="活动介绍" prop="note"
|
||||
:rules="[{ required:true, message: '请填写活动介绍' }]">
|
||||
<div id="noteEditor"></div>
|
||||
<text-editor v-model="formData.note"></text-editor>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="学习卡" prop="stepPics">
|
||||
<el-upload
|
||||
list-type="picture-card"
|
||||
multiple
|
||||
action
|
||||
class="pictureUpload"
|
||||
:on-change="stepPictureChange"
|
||||
:on-remove="stepPictureRemove"
|
||||
@@ -703,6 +703,7 @@ layout("/layouts/platform.html"){
|
||||
class="pictureUpload"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
action
|
||||
list-type="picture-card"
|
||||
:on-change="pictureChange"
|
||||
:on-remove="pictureRemove"
|
||||
@@ -725,7 +726,7 @@ layout("/layouts/platform.html"){
|
||||
<transition name="el-zoom-in-top">
|
||||
<div v-show="stepActive==1" class="transition-box" style="margin-top: 20px;">
|
||||
<el-form label-width="120px" label-position="left">
|
||||
<vi-title title="创建点位坐标"></vi-title>
|
||||
<div class="process-title">创建点位坐标</div>
|
||||
</el-form>
|
||||
<el-table :data="formData.pts" size="medium">
|
||||
<el-table-column type="index" label=""></el-table-column>
|
||||
@@ -746,6 +747,7 @@ layout("/layouts/platform.html"){
|
||||
<template scope="scope">
|
||||
<el-input-number type="text" v-model="scope.row.radius"
|
||||
:min="0"
|
||||
style="width: 100%"
|
||||
:max="9999999"
|
||||
placeholder="请填写点位半径">
|
||||
<temnplate slot="append">m</temnplate>
|
||||
@@ -869,7 +871,7 @@ layout("/layouts/platform.html"){
|
||||
<!-- <el-form-item label="基础信息 " label-width="135px" class="view-header">-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动名称:">
|
||||
{{viewData.name}}
|
||||
@@ -883,32 +885,32 @@ layout("/layouts/platform.html"){
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="开始报名时间:">
|
||||
{{moment(viewData.apply_start_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
{{$moment(viewData.apply_start_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="结束报名时间:">
|
||||
{{moment(viewData.apply_end_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
{{$moment(viewData.apply_end_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动开始时间:">
|
||||
{{moment(viewData.start_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
{{$moment(viewData.start_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动结束时间:">
|
||||
{{moment(viewData.end_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
{{$moment(viewData.end_time).format('YYYY-MM-DD HH:mm:ss')}}
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="活动模式:">
|
||||
<span v-if="viewData.activityModel=='punch'">打卡模式</span>
|
||||
@@ -928,7 +930,7 @@ layout("/layouts/platform.html"){
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动介绍:">
|
||||
<div v-if="!viewData.note">暂无</div>
|
||||
@@ -936,13 +938,13 @@ layout("/layouts/platform.html"){
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row gutter="20">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="活动封面:">
|
||||
<el-image style="width: 100px; height: 100px" :src="picSrc" fit="cover"/>
|
||||
@@ -974,7 +976,6 @@ layout("/layouts/platform.html"){
|
||||
|
||||
<script>
|
||||
let E = window.wangEditor
|
||||
let noteEditor = null
|
||||
let icon = new AMap.Icon({
|
||||
size: new AMap.Size(25, 34),
|
||||
image: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png',
|
||||
@@ -1002,7 +1003,9 @@ layout("/layouts/platform.html"){
|
||||
viewDialogVisible: false,
|
||||
dwDialogVisible: false,
|
||||
tabLoading: false,
|
||||
formData: {},
|
||||
formData: {
|
||||
pts: []
|
||||
},
|
||||
tableData: [],
|
||||
pageForm: {
|
||||
searchName: "name",
|
||||
@@ -1062,8 +1065,7 @@ layout("/layouts/platform.html"){
|
||||
}
|
||||
},
|
||||
components: {
|
||||
'user-scope': httpVueLoader('/components/plugins/UserScope.vue'),
|
||||
'drawer-user-scope': httpVueLoader('/components/plugins/DrawerUserScope.vue'),
|
||||
"drawer-user-scope": httpVueLoader("/components/module/activity/DrawerUserScope.vue")
|
||||
},
|
||||
methods: {
|
||||
pictureRemove() {
|
||||
@@ -1233,16 +1235,6 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
$("#noteEditor").html("")
|
||||
noteEditor = new E("#noteEditor")
|
||||
noteEditor.config.onchange = (html) => {
|
||||
this.formData.note = html
|
||||
}
|
||||
noteEditor.config.uploadImgShowBase64 = true // 使用 base64 保存图片
|
||||
noteEditor.create()
|
||||
noteEditor.txt.html(data.note)
|
||||
})
|
||||
if (data.tag !== "") {
|
||||
this.hasChildrenAct = true
|
||||
}
|
||||
@@ -1280,7 +1272,7 @@ layout("/layouts/platform.html"){
|
||||
|
||||
let map = new AMap.Map("viewXlMap", {
|
||||
resizeEnable: true,
|
||||
center: [AppMapCenterPointX, AppMapCenterPointY],
|
||||
center: [118.92, 32.11],
|
||||
zoom: 16
|
||||
});
|
||||
|
||||
@@ -1398,7 +1390,7 @@ layout("/layouts/platform.html"){
|
||||
this.$nextTick(() => {
|
||||
map = new AMap.Map("dwMap", {
|
||||
resizeEnable: true,
|
||||
center: [AppMapCenterPointX, AppMapCenterPointY],
|
||||
center: [118.92, 32.11],
|
||||
zoom: 16
|
||||
});
|
||||
this.placeSearchComponent = new AMap.PlaceSearch({
|
||||
@@ -1527,7 +1519,7 @@ layout("/layouts/platform.html"){
|
||||
xlMap() {
|
||||
let map = new AMap.Map("xlMap", {
|
||||
resizeEnable: true,
|
||||
center: [AppMapCenterPointX, AppMapCenterPointY],
|
||||
center: [118.92, 32.11],
|
||||
zoom: 16
|
||||
});
|
||||
|
||||
@@ -1804,16 +1796,6 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
$("#noteEditor").html("")
|
||||
noteEditor = new E("#noteEditor")
|
||||
noteEditor.config.onchange = (html) => {
|
||||
this.formData.note = html
|
||||
}
|
||||
noteEditor.config.uploadImgShowBase64 = true // 使用 base64 保存图片
|
||||
noteEditor.create()
|
||||
noteEditor.txt.html(data.note)
|
||||
})
|
||||
if (data.tag !== "") {
|
||||
this.hasChildrenAct = true
|
||||
}
|
||||
@@ -1888,15 +1870,6 @@ layout("/layouts/platform.html"){
|
||||
this.stepActive = 0
|
||||
|
||||
await this.getActivityData()
|
||||
this.$nextTick(() => {
|
||||
$("#noteEditor").html("")
|
||||
noteEditor = new E("#noteEditor")
|
||||
noteEditor.config.onchange = (html) => {
|
||||
this.formData.note = html
|
||||
}
|
||||
noteEditor.config.uploadImgShowBase64 = true // 使用 base64 保存图片
|
||||
noteEditor.create()
|
||||
})
|
||||
},
|
||||
async pageData() {
|
||||
this.tabLoading = true
|
||||
@@ -1931,28 +1904,28 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
},
|
||||
async getWelfareProject() {
|
||||
const resp = await this.$axios.post('/platform/welfare/common/welfareProjects')
|
||||
if (resp.code === 0) {
|
||||
const options = resp.data.find(v => v.label === new Date().getFullYear())
|
||||
if (options && options.children.length > 0) {
|
||||
this.welfareProjectOptions = options.children
|
||||
}
|
||||
}
|
||||
// const resp = await this.$axios.post('/platform/welfare/common/welfareProjects')
|
||||
// if (resp.code === 0) {
|
||||
// const options = resp.data.find(v => v.label === new Date().getFullYear())
|
||||
// if (options && options.children.length > 0) {
|
||||
// this.welfareProjectOptions = options.children
|
||||
// }
|
||||
// }
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'formData.questionId': {
|
||||
async handler(newVal, oldVal) {
|
||||
if(newVal){
|
||||
this.getIssueByQuestionId(newVal)
|
||||
// this.formData.pts.map(v => v.issueIds = [])
|
||||
}else{
|
||||
this.formData.pts.map(v => v.issueIds = [])
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate:true
|
||||
},
|
||||
// 'formData.questionId': {
|
||||
// async handler(newVal, oldVal) {
|
||||
// if(newVal){
|
||||
// this.getIssueByQuestionId(newVal)
|
||||
// // this.formData.pts.map(v => v.issueIds = [])
|
||||
// }else{
|
||||
// this.formData.pts.map(v => v.issueIds = [])
|
||||
// }
|
||||
// },
|
||||
// deep: true,
|
||||
// immediate:true
|
||||
// },
|
||||
'formData.groupId': {
|
||||
async handler(newVal, oldVal) {
|
||||
this.getActivityGroup()
|
||||
@@ -1968,7 +1941,7 @@ layout("/layouts/platform.html"){
|
||||
},
|
||||
async created() {
|
||||
this.getActivityGroup()
|
||||
this.getQuestion()
|
||||
// this.getQuestion()
|
||||
// this.questionOptions = await Jsz.getQuestion()
|
||||
this.pageForm.year = (new Date().getFullYear()).toString()
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ const answer = {
|
||||
this.$axios.post("/platform/qsv/survey/userAnswer", { activityId: this.activityId }).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableColumns = res.data.tableColumns
|
||||
console.log(this.tableColumns)
|
||||
this.tableData = res.data.tableData
|
||||
}
|
||||
})
|
||||
|
||||
@@ -265,7 +265,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
||||
:remote-method="querySearchAsync"
|
||||
@change="addUserChange"
|
||||
filterable
|
||||
placeholder="请输入工号或者下姓名查询"
|
||||
placeholder="请输入工号或者姓名查询"
|
||||
remote
|
||||
reserve-keyword
|
||||
style="width: 100%"
|
||||
@@ -392,6 +392,7 @@ var ACTIVITY_SPORTS_APPLY_USER = {
|
||||
this.$set(this.formData, 'loginname', user ? user.loginname : null)
|
||||
this.$set(this.formData, 'username', user ? user.username : null)
|
||||
this.$set(this.formData, 'unitId', user ? user.unitId : null)
|
||||
this.$set(this.formData, 'unionId', user ? user.unionId : null)
|
||||
this.$set(this.formData, 'sex', user ? user.sex : null)
|
||||
this.$set(this.formData, 'idcard', user ? user.idCard : null)
|
||||
this.$set(this.formData, 'mobile', user ? user.mobile : null)
|
||||
|
||||
@@ -113,7 +113,7 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<div class="text item">
|
||||
<span style="color: gray">活动时间:</span>
|
||||
{{$moment(item.startTime).format('YYYY/MM/DD HH:mm')}} 至 {{$moment(item.endTime).format('YYYY/MM/DD')}}
|
||||
{{$moment(item.startTime).format('YYYY/MM/DD')}} 至 {{$moment(item.endTime).format('YYYY/MM/DD')}}
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
@@ -154,12 +154,12 @@ layout("/layouts/platform.html"){
|
||||
</div>
|
||||
<div class="mr10 ml20" v-if="unionLeaderCoach">
|
||||
领队:
|
||||
<span style="color: #419bf8">{{leaderData.username?leaderData.username:'暂无'}}</span>
|
||||
<span style="color: #419bf8">{{leaderData.username?leaderData.username:'暂无'}}</span><!--
|
||||
  教练:
|
||||
<span style="color: #419bf8">{{coachData.username ?coachData.username:'暂无'}}</span>
|
||||
<span style="color: #419bf8">{{coachData.username ?coachData.username:'暂无'}}</span>-->
|
||||
</div>
|
||||
<div>
|
||||
<el-button @click="openLeaderCoach" size="medium" type="primary" v-if="unionLeaderCoach">设置领队/教练</el-button>
|
||||
<el-button @click="openLeaderCoach" size="medium" type="primary" v-if="unionLeaderCoach">设置领队</el-button>
|
||||
</div>
|
||||
</table-tool>
|
||||
<el-table
|
||||
@@ -241,10 +241,10 @@ layout("/layouts/platform.html"){
|
||||
</template>
|
||||
</guava>
|
||||
|
||||
<el-dialog :visible.sync="dialogLeaderCoach" title="添加领队/教练" width="60%">
|
||||
<el-dialog :visible.sync="dialogLeaderCoach" title="添加领队" width="40%">
|
||||
<el-form :model="headData" :rules="formRules" label-width="100px" ref="form" v-loading="formLoading">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<table-tool label="填写领队信息"></table-tool>
|
||||
<el-form-item label="姓  名" prop="userId">
|
||||
<user-select
|
||||
@@ -266,7 +266,7 @@ layout("/layouts/platform.html"){
|
||||
<el-input maxlength="50" placeholder="请填写电话" type="text" v-model="leaderData.mobile"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<!--<el-col :span="12">
|
||||
<table-tool label="填写教练信息"></table-tool>
|
||||
<el-form-item label="姓  名" prop="userId">
|
||||
<user-select
|
||||
@@ -287,7 +287,7 @@ layout("/layouts/platform.html"){
|
||||
<el-form-item label="电  话" prop="mobile">
|
||||
<el-input maxlength="50" placeholder="请填写电话" type="text" v-model="coachData.mobile"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-col>-->
|
||||
</el-row>
|
||||
</el-form>
|
||||
<span class="dialog-footer" slot="footer">
|
||||
@@ -362,7 +362,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.leaderData, "unionLeader", true)
|
||||
this.$set(this.leaderData, "unionId", user.unionId)
|
||||
this.$set(this.leaderData, "identity", ["3"])
|
||||
this.$set(this.leaderData, "status", 0)
|
||||
this.$set(this.leaderData, "status", 2)
|
||||
this.$set(this.leaderData, "awardsMode", 2)
|
||||
this.$set(this.leaderData, "activityId", this.activityData.id)
|
||||
}
|
||||
@@ -380,7 +380,7 @@ layout("/layouts/platform.html"){
|
||||
this.$set(this.coachData, "unionCoach", true)
|
||||
this.$set(this.coachData, "unionId", user.unionId)
|
||||
this.$set(this.coachData, "identity", ["2"])
|
||||
this.$set(this.coachData, "status", 0)
|
||||
this.$set(this.coachData, "status", 2)
|
||||
this.$set(this.coachData, "awardsMode", 2)
|
||||
this.$set(this.coachData, "activityId", this.activityData.id)
|
||||
}
|
||||
|
||||
@@ -182,6 +182,7 @@ const CLUB_INFO_MANAGE_TEMPLATE = {
|
||||
openAuth(row) {
|
||||
this.authDialogVisible = true
|
||||
this.authFormData = {
|
||||
id: row.id,
|
||||
userId: row.userId,
|
||||
userName: row.userName,
|
||||
loginName: row.loginName,
|
||||
@@ -203,6 +204,7 @@ const CLUB_INFO_MANAGE_TEMPLATE = {
|
||||
}).then((res) => {
|
||||
this.$axios
|
||||
.post("/platform/club/infoManage/manage/doAuthRole", {
|
||||
id: this.authFormData.id,
|
||||
userId: this.authFormData.userId,
|
||||
clubId: this.authFormData.clubId,
|
||||
roleCode: JSON.stringify(this.authFormData.roleCode)
|
||||
|
||||
@@ -115,8 +115,8 @@ layout("/layouts/platform.html"){
|
||||
formData.sponsor = this.$refs.clubSponsorRef.sponsorData
|
||||
.filter((o) => o.userId !== "" && o.userId !== undefined)
|
||||
.map((o) => o.userId)
|
||||
if (type === "doSubmit" && formData.sponsor && formData.sponsor.length < 3) {
|
||||
this.$message.warning({ title: "警告", message: "发起人要求不少于3人" })
|
||||
if (type === "doSubmit" && formData.sponsor && formData.sponsor.length < 1) {
|
||||
this.$message.warning({ title: "警告", message: "发起人要求不少于1人" })
|
||||
return
|
||||
}
|
||||
let manageValid = false
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = {
|
||||
|
||||
<el-row class="query-row">
|
||||
<el-col class="query-row-title">性别:</el-col>
|
||||
<el-col class="query-row-content">
|
||||
<el-col class="query-row-content query-row-content-tag">
|
||||
<el-tag
|
||||
:effect="pageForm.sexTypes.includes(item.name)?'dark':'plain'"
|
||||
:key="item.code"
|
||||
|
||||
+3
-3
@@ -62,9 +62,9 @@ layout("/layouts/platform.html"){
|
||||
<el-table-column prop="maleMember" label="男会员" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="femaleMember" label="女会员" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallForty" label="小于等于40岁会员" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallFifty" label="40-50" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallFiftyFive" label="50-55" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallFiftyFive2" label="大于55" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallFifty" label="41-50" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallFiftyFive" label="51-55" align="center" sortable></el-table-column>
|
||||
<el-table-column prop="smallFiftyFive2" label="大于等于56" align="center" sortable></el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
@@ -106,18 +106,13 @@ layout("/layouts/platform_h5.html"){
|
||||
<p>{{index+1}}、{{ subject.title }}</p>
|
||||
<div class="tag">
|
||||
<van-tag v-if="subject.type === 'checkbox'" type="primary" size="large">多选</van-tag>
|
||||
<van-tag v-if="subject.type === 'checkbox' && subject.maxSelectNum && subject.minSelectNum && subject.maxSelectNum === subject.minSelectNum" type="success" size="large">
|
||||
只能选择{{subject.maxSelectNum}}项
|
||||
</van-tag>
|
||||
<van-tag v-if="subject.type === 'checkbox' && subject.maxSelectNum && (!subject.minSelectNum || subject.maxSelectNum !== subject.minSelectNum)" type="primary" size="large">
|
||||
<van-tag v-if="subject.type === 'checkbox' && subject.maxSelectNum" type="primary" size="large">
|
||||
最多可选{{subject.maxSelectNum}}
|
||||
</van-tag>
|
||||
<van-tag v-if="subject.type === 'checkbox' && subject.minSelectNum && subject.minSelectNum > 1 && (!subject.maxSelectNum || subject.maxSelectNum !== subject.minSelectNum)" type="warning" size="large">
|
||||
<van-tag v-if="subject.type === 'checkbox' && subject.minSelectNum && subject.minSelectNum > 1" type="warning" size="large">
|
||||
最少选择{{subject.minSelectNum}}
|
||||
</van-tag>
|
||||
|
||||
<van-tag v-if="subject.type === 'radio'" type="primary" size="large">单选</van-tag>
|
||||
<van-tag v-if="subject.score" type="primary" size="large">{{subject.score}}分</van-tag>
|
||||
</div>
|
||||
|
||||
<!--单选、多选-->
|
||||
|
||||
Reference in New Issue
Block a user