main
王文龙 2024-03-13 16:34:38 +08:00
parent 8928c7ac07
commit 821fda6982
9 changed files with 432 additions and 665 deletions

View File

@ -233,6 +233,15 @@ export function batchOperating(query) {
})
}
// 标记用户为内部人员
export function batchIsInternal (query) {
return fetch({
url: '/member/isInternal',
method: 'POST',
params: query
})
}
export function updateMemberBasicInfo (query) {
return fetch({
url: '/member/update',

View File

@ -179,9 +179,9 @@
<el-button type="primary" plain icon="el-plus-circle"> 导出 </el-button>
</export-tip>
<el-button v-if="!VERSION_IN_PURCHASE" type="primary" plain @click="chiefupload">
<!-- <el-button v-if="!VERSION_IN_PURCHASE" type="primary" plain @click="chiefupload">
团长导入
</el-button>
</el-button> -->
</div>
<!-- <el-row>
@ -234,7 +234,12 @@
</template>
</el-table-column>
<el-table-column v-if="!VERSION_IN_PURCHASE" prop="is_chief" label="是否团长" width="80">
<el-table-column
v-if="!VERSION_IN_PURCHASE && false"
prop="is_chief"
label="是否团长"
width="80"
>
<template slot-scope="scope">
<el-switch
v-model="scope.row.is_chief"
@ -305,7 +310,7 @@
<template slot-scope="scope">
<el-tooltip placement="top">
<div slot="content">
注册时间<br>{{ scope.row.created | datetime('YYYY-MM-DD HH:mm:ss') }}
注册时间<br />{{ scope.row.created | datetime('YYYY-MM-DD HH:mm:ss') }}
</div>
<span>{{ scope.row.created | datetime }}</span>
</el-tooltip>
@ -769,6 +774,7 @@ import {
updateMemberGrade,
batchupdateMemberGrade,
batchOperating,
batchIsInternal,
getMemberRegisterSetting,
updateMemberBasicInfo,
setCheif
@ -1359,6 +1365,13 @@ export default {
return
}
this.dialogIsShow = false
if (this.user_id.length === 0) {
this.$message({
type: 'error',
message: '没有选中会员'
})
return
}
this.batchAction('是否给全部会员打标签?')
},
clearParams() {
@ -1371,7 +1384,7 @@ export default {
if (this.user_id.length > 0) {
this.params.user_id = this.user_id
let params = JSON.parse(JSON.stringify(this.params))
console.log(this.params)
console.log(params, 'params')
batchOperating(params).then((res) => {
if (res.data.data.status) {
this.dialogIsShow = false
@ -1384,6 +1397,8 @@ export default {
this.getMembers()
}
})
params.tag_ids?.includes('1') &&
batchIsInternal({ user_id: params.user_id, is_internal: 1 }).then((res) => {})
} else {
this.$confirm(message, '提示', {
confirmButtonText: '确定',
@ -1593,6 +1608,7 @@ export default {
tag_id: tagId,
user_id: userId
})
tagId == 1 && (await batchIsInternal({ user_id: userId, is_internal: 0 }))
this.$message({ type: 'success', message: '修改成功' })
this.getMembers()
},

View File

@ -1,8 +1,6 @@
<template>
<div class="section section-white">
<div class="section-header with-border">
添加表单元素
</div>
<div class="section-header with-border">添加表单元素</div>
<div class="section-body">
<el-form
ref="form"
@ -20,45 +18,27 @@
<el-input
v-model.trim="form.field_title"
:maxlength="30"
placeholder="身高(cm)"
placeholder="请输入标题"
@change="fieldTitleChange"
/>
</el-col>
</el-form-item>
<el-form-item
v-if="false"
label="表单元素类型"
prop="form_element"
:rules="[{ required: true, message: '请选择表单元素', trigger: 'change' }]"
>
<el-col :span="15">
<el-radio-group
v-model="form.form_element"
@change="ElementChange"
>
<el-radio label="text">
单文本框
</el-radio>
<el-radio label="number">
数字(纯数字)
</el-radio>
<el-radio label="checkbox">
复选框
</el-radio>
<el-radio label="select">
下拉选择
</el-radio>
<el-radio label="radio">
单选按钮
</el-radio>
<el-radio label="textarea">
多文本域
</el-radio>
<el-radio label="date">
日期选择
</el-radio>
<el-radio label="area">
地区选择
</el-radio>
<el-radio-group v-model="form.form_element" @change="ElementChange">
<el-radio label="text"> 单文本框 </el-radio>
<el-radio label="number"> 数字(纯数字) </el-radio>
<el-radio label="checkbox"> 复选框 </el-radio>
<el-radio label="select"> 下拉选择 </el-radio>
<el-radio label="radio"> 单选按钮 </el-radio>
<el-radio label="textarea"> 多文本域 </el-radio>
<el-radio label="date"> 日期选择 </el-radio>
<el-radio label="area"> 地区选择 </el-radio>
</el-radio-group>
</el-col>
</el-form-item>
@ -81,18 +61,10 @@
>
<el-row>
<el-col :span="15">
<el-input
v-model="domain.value"
width="20"
/>
<el-input v-model="domain.value" width="20" />
</el-col>
<el-col
v-if="index > 1"
:span="5"
>
<el-button @click.prevent="removeDomain(domain)">
删除
</el-button>
<el-col v-if="index > 1" :span="5">
<el-button @click.prevent="removeDomain(domain)"> 删除 </el-button>
</el-col>
</el-row>
<el-row>
@ -124,13 +96,7 @@
"
>
<el-col :span="15">
<el-button
type="primary"
circle
@click="addOption"
>
</el-button>
<el-button type="primary" circle @click="addOption"> </el-button>
</el-col>
</el-form-item>
<!-- field_name{{form.field_name}} | defalutFileName:{{defalutFileName}} -->
@ -172,21 +138,12 @@
/>
</el-col>
</el-form-item>
<el-form-item
label="图片"
prop="image_url"
>
<el-form-item label="图片" prop="image_url" v-if="false">
<el-col :span="15">
<div>
<imgBox
:img-url="wximageurl + form.image_url"
inline
@click="handleImgBChange"
/>
</div>
<div class="frm-tips">
只能上传jpg/png文件且不超过2M 建议尺寸400px * 450px
<imgBox :img-url="wximageurl + form.image_url" inline @click="handleImgBChange" />
</div>
<div class="frm-tips">只能上传jpg/png文件且不超过2M 建议尺寸400px * 450px</div>
<imgPicker
:dialog-visible="imgDialog"
:sc-status="isGetImage"
@ -196,15 +153,8 @@
</el-col>
</el-form-item>
<el-form-item>
<el-button @click.native="handleCancel">
取消
</el-button>
<el-button
type="primary"
@click="submitAction"
>
保存
</el-button>
<el-button @click.native="handleCancel"> 取消 </el-button>
<el-button type="primary" @click="submitAction"> </el-button>
</el-form-item>
</el-form>
</div>

View File

@ -8,29 +8,14 @@
<div>
<template v-if="$route.path.indexOf('detail') === -1 && $route.path.indexOf('editor') === -1">
<div class="action-container">
<el-button
type="primary"
icon="iconfont icon-xinzengcaozuo-01"
@click="addElement"
>
<el-button type="primary" icon="iconfont icon-xinzengcaozuo-01" @click="addElement">
表单元素添加
</el-button>
</div>
<SpFilterForm
:model="params"
@onSearch="onSearch"
@onReset="onReset"
>
<SpFilterFormItem
prop="form_element"
label="表单元素:"
>
<el-select
v-model="params.form_element"
placeholder="请选择表单元素"
style="width: 100%"
>
<SpFilterForm :model="params" @onSearch="onSearch" @onReset="onReset">
<SpFilterFormItem prop="form_element" label="表单元素:" v-if="false">
<el-select v-model="params.form_element" placeholder="请选择表单元素" style="width: 100%">
<el-option
v-for="item in formElement"
:key="item.value"
@ -40,77 +25,37 @@
</el-select>
</SpFilterFormItem>
<SpFilterFormItem
prop="field_title"
label="标题:"
>
<el-input
v-model="params.field_title"
placeholder="标题"
style="width: 100%"
/>
<SpFilterFormItem prop="field_title" label="标题:">
<el-input v-model="params.field_title" placeholder="标题" style="width: 100%" />
</SpFilterFormItem>
</SpFilterForm>
<el-tabs
v-model="params.is_valid"
type="card"
@tab-click="handleTabClick"
>
<el-tabs v-model="params.is_valid" type="card" @tab-click="handleTabClick">
<el-tab-pane
v-for="(item, index) in tabList"
:key="index"
:label="item.name"
:name="item.activeName"
>
<el-table
v-loading="loading"
border
:data="tableList"
:height="wheight - 280"
>
<el-table-column
prop="id"
label="ID"
width="50"
/>
<el-table-column
prop="field_title"
label="标题"
width="250"
/>
<el-table-column
prop="field_name"
label="唯一标示(纯字母)"
width="200"
/>
<el-table-column
prop="form_element"
label="元素类型"
width="100"
/>
<el-table-column label="元素选择项">
<el-table v-loading="loading" border :data="tableList" :height="wheight - 280">
<el-table-column prop="id" label="ID" width="50" />
<el-table-column prop="field_title" label="标题" width="250" />
<el-table-column prop="field_name" label="唯一标示(纯字母)" width="200" />
<el-table-column prop="form_element" label="元素类型" width="100" />
<!-- <el-table-column label="元素选择项">
<template slot-scope="scope">
<span
v-for="(item, index) in scope.row.options"
:key="index"
<span v-for="(item, index) in scope.row.options" :key="index">
{{ item.value }}</span
>
{{ item.value }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
width="100"
>
</el-table-column> -->
<el-table-column label="操作" min-width="100">
<template slot-scope="scope">
<router-link
class="iconfont icon-edit1"
:to="{ path: matchHidePage('editor'), query: { id: scope.row.id } }"
/>
<i
class="iconfont icon-search-plus"
@click="preview(scope.$index, scope.row)"
/>
<i class="iconfont icon-search-plus" @click="preview(scope.$index, scope.row)" />
<i
v-if="scope.row.status == 1"
class="mark iconfont icon-trash-alt1"
@ -135,77 +80,31 @@
</el-tabs>
<el-dialog :visible.sync="dialogVisible">
<el-form
ref="dataInfo"
label-width="200px"
label-position="left"
class="demo-ruleForm"
>
<el-form ref="dataInfo" label-width="200px" label-position="left" class="demo-ruleForm">
<el-form-item :label="dataInfo.field_title">
<el-col
v-if="dataInfo.form_element == 'text'"
:span="12"
>
<el-col v-if="dataInfo.form_element == 'text'" :span="12">
<el-input placeholder="text预览" />
</el-col>
<el-col
v-if="dataInfo.form_element == 'textarea'"
:span="12"
>
<el-input
type="textarea"
placeholder="textarea预览"
/>
<el-col v-if="dataInfo.form_element == 'textarea'" :span="12">
<el-input type="textarea" placeholder="textarea预览" />
</el-col>
<el-col
v-if="dataInfo.form_element == 'number'"
:span="12"
>
<el-input-number
type="textarea"
placeholder="55.55"
/>
<el-col v-if="dataInfo.form_element == 'number'" :span="12">
<el-input-number type="textarea" placeholder="55.55" />
</el-col>
<el-col
v-if="dataInfo.form_element == 'image'"
:span="12"
>
<el-upload
class="avatar-uploader"
action=""
:show-file-list="false"
>
<img
v-if="imageUrl"
:src="imageUrl"
class="avatar"
>
<i
v-else
class="el-icon-plus avatar-uploader-icon"
/>
<el-col v-if="dataInfo.form_element == 'image'" :span="12">
<el-upload class="avatar-uploader" action="" :show-file-list="false">
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload>
</el-col>
<el-col
v-if="dataInfo.form_element == 'radio'"
:span="12"
>
<el-col v-if="dataInfo.form_element == 'radio'" :span="12">
<el-radio-group>
<el-radio
v-for="(item, index) in dataInfo.options"
:key="index"
:label="3"
>
{{
item.value
}}
<el-radio v-for="(item, index) in dataInfo.options" :key="index" :label="3">
{{ item.value }}
</el-radio>
</el-radio-group>
</el-col>
<el-col
v-if="dataInfo.form_element == 'checkbox'"
:span="12"
>
<el-col v-if="dataInfo.form_element == 'checkbox'" :span="12">
<el-checkbox-group>
<el-checkbox
v-for="(item, index) in dataInfo.options"
@ -216,10 +115,7 @@
</el-checkbox>
</el-checkbox-group>
</el-col>
<el-col
v-if="dataInfo.form_element == 'select'"
:span="12"
>
<el-col v-if="dataInfo.form_element == 'select'" :span="12">
<el-select placeholder="请选择">
<el-option
v-for="item in dataInfo.options"
@ -229,20 +125,10 @@
/>
</el-select>
</el-col>
<el-col
v-if="dataInfo.form_element == 'date'"
:span="12"
>
<el-date-picker
v-model="value1"
type="date"
placeholder="选择日期"
/>
<el-col v-if="dataInfo.form_element == 'date'" :span="12">
<el-date-picker v-model="value1" type="date" placeholder="选择日期" />
</el-col>
<el-col
v-if="dataInfo.form_element == 'time'"
:span="12"
>
<el-col v-if="dataInfo.form_element == 'time'" :span="12">
<el-time-picker
v-model="value2"
arrow-control
@ -252,10 +138,7 @@
placeholder="任意时间点"
/>
</el-col>
<el-col
v-if="dataInfo.form_element == 'area'"
:span="12"
>
<el-col v-if="dataInfo.form_element == 'area'" :span="12">
<el-cascader
v-model="value"
:options="options"
@ -442,6 +325,11 @@ export default {
}
</script>
<style scoped lang="scss">
::v-deep .cell {
.iconfont {
padding: 0 10px;
}
}
.el-row {
margin-bottom: 20px;
&:last-child {

View File

@ -8,99 +8,47 @@
<div>
<template v-if="$route.path.indexOf('detail') === -1 && $route.path.indexOf('editor') === -1">
<div class="action-container">
<el-button
type="primary"
icon="iconfont icon-xinzengcaozuo-01"
@click="addTemplate"
>
<el-button type="primary" icon="iconfont icon-xinzengcaozuo-01" @click="addTemplate">
添加模板
</el-button>
</div>
<SpFilterForm
:model="params"
@onSearch="onSearch"
@onReset="onReset"
>
<SpFilterFormItem
prop="tem_name"
label="模板名称:"
>
<el-input
v-model="params.tem_name"
placeholder="模板名称"
/>
<SpFilterForm :model="params" @onSearch="onSearch" @onReset="onReset">
<SpFilterFormItem prop="tem_name" label="模板名称:">
<el-input v-model="params.tem_name" placeholder="模板名称" />
</SpFilterFormItem>
<SpFilterFormItem
prop="tem_type"
label="模板类型:"
>
<el-select
v-model="params.tem_type"
placeholder="模板类型"
style="width: 100%"
>
<el-option
key="basic_entry"
label="基础录入"
value="basic_entry"
/>
<el-option
key="ask_answer_paper"
label="问卷调查"
value="ask_answer_paper"
/>
<SpFilterFormItem prop="tem_type" label="模板类型:">
<el-select v-model="params.tem_type" placeholder="模板类型" style="width: 100%">
<el-option key="basic_entry" label="基础录入" value="basic_entry" />
<el-option key="ask_answer_paper" label="问卷调查" value="ask_answer_paper" />
</el-select>
</SpFilterFormItem>
</SpFilterForm>
<el-tabs
v-model="params.is_valid"
type="card"
@tab-click="handleTabClick"
>
<el-tabs v-model="params.is_valid" type="card" @tab-click="handleTabClick">
<el-tab-pane
v-for="(item, index) in tabList"
:key="index"
:label="item.name"
:name="item.activeName"
>
<el-table
v-loading="loading"
border
:data="tableList"
:height="wheight - 280"
>
<el-table-column
prop="id"
label="ID"
width="100"
/>
<el-table-column
prop="tem_name"
label="模板名称"
width="300"
/>
<el-table-column
prop="tem_type"
label="模板类型"
width="300"
/>
<el-table-column
prop="status"
label="状态"
width="100"
/>
<el-table-column label="操作">
<el-table v-loading="loading" border :data="tableList" :height="wheight - 280">
<el-table-column prop="id" label="ID" width="50" />
<el-table-column prop="tem_name" label="模板名称" min-width="300" />
<el-table-column prop="tem_type" label="模板类型" min-width="100" />
<el-table-column prop="status" label="状态" min-width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.status == 1" size="small" type="success"></el-tag>
<el-tag v-else type="info" size="small">禁用</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" min-width="130">
<template slot-scope="scope">
<router-link
class="iconfont icon-edit1"
:to="{ path: matchHidePage('editor'), query: { id: scope.row.id } }"
/>
<i
class="iconfont icon-search-plus"
@click="preview(scope.$index, scope.row)"
/>
<i class="iconfont icon-search-plus" @click="preview(scope.$index, scope.row)" />
<i
v-if="scope.row.status == 1"
class="mark iconfont icon-trash-alt1"
@ -123,21 +71,9 @@
</div>
</el-tab-pane>
</el-tabs>
<el-dialog
:visible.sync="dialogVisible"
:title="dialogTitle"
width="50"
>
<el-alert
v-if="headerTitle"
:title="headerTitle"
type="info"
:closable="false"
/><br>
<el-card
v-for="(carditem, index) in dialogContent"
:key="index"
>
<el-dialog :visible.sync="dialogVisible" :title="dialogTitle" width="50">
<el-alert v-if="headerTitle" :title="headerTitle" type="info" :closable="false" /><br />
<el-card v-for="(carditem, index) in dialogContent" :key="index">
<div slot="header">
{{ carditem.title }}
</div>
@ -152,56 +88,24 @@
:key="index"
:label="item.field_title"
>
<el-col
v-if="item.form_element == 'text'"
:span="12"
>
<el-input
placeholder="text预览"
disabled
/>
<el-col v-if="item.form_element == 'text'" :span="12">
<el-input placeholder="text预览" disabled />
</el-col>
<el-col
v-if="item.form_element == 'number'"
:span="12"
>
<el-input
placeholder="1"
size="mini"
disabled
style="width: 120px"
/>
<el-col v-if="item.form_element == 'number'" :span="12">
<el-input placeholder="1" size="mini" disabled style="width: 120px" />
<span class="frm-tips"> (只能是数字)</span>
</el-col>
<el-col
v-if="item.form_element == 'textarea'"
:span="12"
>
<el-input
type="textarea"
placeholder="textarea预览"
disabled
:rows="5"
/>
<el-col v-if="item.form_element == 'textarea'" :span="12">
<el-input type="textarea" placeholder="textarea预览" disabled :rows="5" />
</el-col>
<el-col
v-if="item.form_element == 'radio'"
:span="12"
>
<el-col v-if="item.form_element == 'radio'" :span="12">
<el-radio-group disabled>
<el-radio
v-for="(item, index) in item.options"
:key="index"
:label="3"
>
<el-radio v-for="(item, index) in item.options" :key="index" :label="3">
{{ item.value }}
</el-radio>
</el-radio-group>
</el-col>
<el-col
v-if="item.form_element == 'checkbox'"
:span="12"
>
<el-col v-if="item.form_element == 'checkbox'" :span="12">
<el-checkbox-group disabled>
<el-checkbox
v-for="(item, index) in item.options"
@ -212,10 +116,7 @@
</el-checkbox>
</el-checkbox-group>
</el-col>
<el-col
v-if="item.form_element == 'select'"
:span="12"
>
<el-col v-if="item.form_element == 'select'" :span="12">
<el-select placeholder="请选择">
<el-option
v-for="item in item.options"
@ -229,18 +130,8 @@
</el-form-item>
</el-form>
</el-card>
<el-alert
v-if="bottomTitle"
:title="bottomTitle"
type="info"
:closable="false"
/>
<el-button
type="primary"
disabled
>
确认提交
</el-button>
<el-alert v-if="bottomTitle" :title="bottomTitle" type="info" :closable="false" />
<el-button type="primary" disabled> 确认提交 </el-button>
</el-dialog>
</template>
<router-view />
@ -392,6 +283,11 @@ export default {
}
</script>
<style scoped lang="scss">
::v-deep .cell {
.iconfont {
padding: 0 10px;
}
}
.el-row {
margin-bottom: 20px;
&:last-child {

View File

@ -19,14 +19,19 @@
</el-select>
</SpFilterFormItem>
<SpFilterFormItem prop="create_time" label="时间:">
<el-date-picker v-model="params.create_time" type="daterange" value-format="yyyy/MM/dd" placeholder="根据添加时间筛选" />
<el-date-picker
v-model="params.create_time"
type="daterange"
value-format="yyyy/MM/dd"
placeholder="根据添加时间筛选"
/>
</SpFilterFormItem>
</SpFilterForm>
<el-table v-loading="loading" border :data="tableList">
<el-table-column prop="activity_id" label="编号" width="50" />
<el-table-column prop="activity_name" label="活动名称" width="300" />
<el-table-column prop="start_time" label="活动有效期" width="300">
<el-table-column prop="activity_name" label="活动名称" min-width="300" />
<el-table-column prop="start_time" label="活动有效期" min-width="300">
<template slot-scope="scope">
{{ scope.row.start_date }} ~ {{ scope.row.end_date }}
</template>
@ -36,34 +41,71 @@
{{ scope.row.total_join_num || 0 }}
</template>
</el-table-column>
<el-table-column label="操作">
<el-table-column label="操作" min-width="130">
<template slot-scope="scope">
<router-link class="iconfont icon-edit1"
:to="{ path: matchHidePage('editor'), query: { id: scope.row.activity_id } }" />
<router-link
class="iconfont icon-edit1"
:to="{ path: matchHidePage('editor'), query: { id: scope.row.activity_id } }"
/>
<i class="iconfont icon-search-plus" @click="preview(scope.$index, scope.row)" />
<i v-if="scope.row.status == 1" class="mark iconfont icon-trash-alt1"
@click="deleteAction(scope.$index, scope.row)" />
<!-- v-if="scope.row.status == 1" -->
<i class="mark iconfont icon-trash-alt1" @click="deleteAction(scope.$index, scope.row)" />
</template>
</el-table-column>
</el-table>
<div class="content-center content-top-padded">
<el-pagination background layout="total, sizes, prev, pager, next, jumper" :current-page.sync="page.pageIndex"
:page-sizes="[10, 20, 50]" :total="page.total" :page-size="page.pageSize" @current-change="onCurrentChange"
@size-change="onSizeChange" />
<el-pagination
background
layout="total, sizes, prev, pager, next, jumper"
:current-page.sync="page.pageIndex"
:page-sizes="[10, 20, 50]"
:total="page.total"
:page-size="page.pageSize"
@current-change="onCurrentChange"
@size-change="onSizeChange"
/>
</div>
<el-dialog :visible.sync="dialogVisible" title="活动详情">
<el-descriptions :column="1">
<el-descriptions-item label="活动名称">{{ dataInfo.activity_name }}</el-descriptions-item>
<el-descriptions-item label="活动有效时间">{{ dataInfo.start_date }}-{{ dataInfo.end_date }}</el-descriptions-item>
<el-descriptions-item label="活动有效时间"
>{{ dataInfo.start_date }}-{{ dataInfo.end_date }}</el-descriptions-item
>
<el-descriptions-item label="活动地址">
{{ dataInfo.address }}
</el-descriptions-item>
<el-descriptions-item label="封面">
<div v-if="dataInfo.pics" style="display: flex; flex-wrap: wrap">
<!-- <img
v-for="item in JSON.parse(dataInfo.pics)"
:src="item"
style="width: 100px; height: 100px"
/> -->
<el-image
v-for="item in JSON.parse(dataInfo.pics)"
class="img-content"
style="width: 100px; height: 100px"
:src="item"
fit="cover"
/>
</div>
</el-descriptions-item>
<el-descriptions-item label="活动介绍">
<div class="content-padded" v-html="dataInfo.intro"></div>
</el-descriptions-item>
<el-descriptions-item label="报名问卷模板">
{{ dataInfo.temp_id | formatterLable(temp_options) }}
</el-descriptions-item>
<el-descriptions-item label="提交报名次数">
{{ dataInfo.join_limit }}
</el-descriptions-item>
<el-descriptions-item label="是否开启短信通知">{{ dataInfo.is_sms_notice==1?'是':'否' }}</el-descriptions-item>
<el-descriptions-item label="是否开启小程序通知">{{ dataInfo.is_wxapp_notice==1?'是':'否' }}</el-descriptions-item>
<el-descriptions-item label="是否开启短信通知">{{
dataInfo.is_sms_notice == 1 ? '是' : '否'
}}</el-descriptions-item>
<el-descriptions-item label="是否开启小程序通知">{{
dataInfo.is_wxapp_notice == 1 ? '是' : '否'
}}</el-descriptions-item>
</el-descriptions>
<!-- <el-form ref="dataInfo" label-width="200px" label-position="left" class="demo-ruleForm">
<el-form-item :label="dataInfo.field_title">
@ -142,7 +184,7 @@ import mixin, { pageMixin } from '@/mixins'
export default {
filters: {
formatterLable(value, options) {
return options.find(item => item.value == value)?.label
return options.find((item) => item.value == value)?.label
}
},
mixins: [mixin, pageMixin],
@ -360,6 +402,26 @@ export default {
}
</script>
<style scoped lang="scss">
::v-deep {
.cell {
.iconfont {
padding: 0 10px;
}
}
.el-descriptions-item__label {
min-width: 100px;
}
.content-padded {
padding: 0 10px;
width: 100%;
img {
width: 90%;
}
p {
margin: 0;
}
}
}
.el-row {
margin-bottom: 20px;
@ -426,7 +488,6 @@ export default {
</style>
<style lang="scss">
.grid-detail {
table,
.detail-content-wrap,
.detail-content-item {

View File

@ -17,7 +17,7 @@
<el-col :span="15">
<el-input
v-model.trim="form.activity_name"
:maxlength="30"
:maxlength="150"
placeholder="名称"
@change="fieldItemChange"
/>
@ -37,6 +37,32 @@
/>
</el-col>
</el-form-item>
<el-form-item
label="活动地址"
prop="address"
:rules="[{ required: true, message: '请输入活动地址', trigger: 'blur' }]"
>
<el-col :span="15">
<el-input v-model.trim="form.address" :maxlength="150" placeholder="地址" />
</el-col>
</el-form-item>
<el-form-item
label="活动封面图"
prop="pics"
:rules="[{ required: true, message: '请上传活动封面图', trigger: 'change' }]"
>
<div :span="20">
<SpImagePicker v-model="form.pics" drag :max="9" />
<div class="frm-tips">只能上传jpg/png文件且不超过2M</div>
<!-- <imgPicker
:dialog-visible="imgDialog"
:sc-status="isGetImage"
@chooseImg="pickImg"
@closeImgDialog="closeImgDialog"
/> -->
</div>
</el-form-item>
<el-form-item
label="选择报名问卷模板"
prop="temp_id"
@ -67,6 +93,16 @@
/>
</el-col>
</el-form-item>
<el-form-item
label="活动介绍"
prop="activity_name"
:rules="[{ required: true, message: '请输入活动介绍', trigger: 'blur' }]"
>
<el-col :span="20">
<SpRichText v-model="form.intro" />
</el-col>
</el-form-item>
<el-form-item label="是否开启短信通知" prop="is_sms_notice">
<el-col :span="15">
<div class="clearfix">
@ -136,7 +172,10 @@ export default {
activity_time: '',
start_time: '',
end_time: '',
join_limit: ''
join_limit: '',
address: '',
pics: [],
intro: ''
},
templateParams: {
page: 1,
@ -241,6 +280,11 @@ export default {
}
</script>
<style scoped lang="scss">
::v-deep {
.el-col .sp-rich-text {
width: auto;
}
}
.text {
font-size: 14px;
}

View File

@ -8,27 +8,12 @@
<div>
<template v-if="$route.path.indexOf('detail') === -1 && $route.path.indexOf('editor') === -1">
<div class="action-container">
<el-button
type="primary"
@click="editorLog()"
>
上传日志
</el-button>
<el-button type="primary" @click="editorLog()"> </el-button>
</div>
<SpFilterForm
:model="params"
@onSearch="onSearch"
@onReset="onReset"
>
<SpFilterFormItem
prop="activity_id"
label="活动:"
>
<el-select
v-model="params.activity_id"
placeholder="请选择活动"
>
<SpFilterForm :model="params" @onSearch="onSearch" @onReset="onReset">
<SpFilterFormItem prop="activity_id" label="活动:">
<el-select v-model="params.activity_id" placeholder="请选择活动">
<el-option
v-for="item in activity_options"
:key="item.value"
@ -37,19 +22,10 @@
/>
</el-select>
</SpFilterFormItem>
<SpFilterFormItem
prop="mobile"
label="手机号:"
>
<el-input
v-model="params.mobile"
placeholder="手机号"
/>
<SpFilterFormItem prop="mobile" label="手机号:">
<el-input v-model="params.mobile" placeholder="手机号" />
</SpFilterFormItem>
<SpFilterFormItem
prop="create_time"
label="时间:"
>
<SpFilterFormItem prop="create_time" label="时间:">
<el-date-picker
v-model="params.create_time"
type="daterange"
@ -60,21 +36,10 @@
</SpFilterForm>
<div class="action-container">
<el-button
plain
type="primary"
@click="uploadHandleTemplate()"
>
下载模版
</el-button>
<el-button plain type="primary" @click="uploadHandleTemplate()"> </el-button>
<export-tip @exportHandle="exportData">
<el-button
type="primary"
plain
>
导出
</el-button>
<el-button type="primary" plain> 导出 </el-button>
</export-tip>
<el-upload
@ -84,76 +49,47 @@
:auto-upload="false"
:show-file-list="false"
>
<el-button
type="primary"
plain
>
点击上传
</el-button>
<el-button type="primary" plain> 点击上传 </el-button>
</el-upload>
</div>
<el-tabs
v-model="params.status"
type="card"
@tab-click="onSearch"
>
<el-tabs v-model="params.status" type="card" @tab-click="onSearch">
<el-tab-pane
v-for="(item, index) in tabList"
:key="index"
:label="item.label"
:name="item.name"
>
<el-table
v-loading="loading"
border
:data="tableList"
element-loading-text="数据加载中"
>
<el-table-column
prop="record_id"
label="报名编号"
/>
<el-table-column
prop="mobile"
label="手机号"
/>
<el-table-column
prop="create_date"
label="申请时间"
/>
<el-table-column
prop="status"
label="状态"
>
<el-table v-loading="loading" border :data="tableList" element-loading-text="数据加载中">
<el-table-column prop="record_id" label="报名编号" width="80" />
<el-table-column prop="mobile" label="手机号" />
<el-table-column prop="create_date" label="申请时间" />
<el-table-column prop="status" label="状态">
<template slot-scope="scope">
<el-tag
v-if="scope.row.status == 'pending'"
type="warning"
size="mini"
>
<el-tag v-if="scope.row.status == 'pending'" type="warning" size="mini">
待审核
</el-tag>
<el-tag
v-if="scope.row.status == 'passed'"
v-if="scope.row.status == 'passed' && scope.row.is_write_off == '0'"
type="success"
size="mini"
>
已通过
</el-tag>
<el-tag
v-if="scope.row.status == 'rejected'"
type="danger"
v-if="scope.row.status == 'passed' && scope.row.is_write_off == '1'"
type="primary"
size="mini"
>
已签到
</el-tag>
<el-tag v-if="scope.row.status == 'rejected'" type="danger" size="mini">
已拒绝
</el-tag>
</template>
</el-table-column>
<el-table-column
prop="status"
label="操作"
>
<el-table-column prop="is_write_off_date_format" label="签到时间" />
<el-table-column prop="status" label="操作">
<template slot-scope="scope">
<router-link
v-if="scope.row.status == 'pending'"
@ -209,9 +145,9 @@ export default {
},
tabList: [
{ label: '全部', name: 'all' },
{ label: '待审核', name: 'pending' },
{ label: '已通过', name: 'passed' },
{ label: '已拒绝', name: 'rejected' }
{ label: '待审核', name: 'pending' }
// { label: '', name: 'passed' },
// { label: '', name: 'rejected' }
],
activityParams: {
page: 1,
@ -222,6 +158,11 @@ export default {
activity_options: []
}
},
beforeRouteUpdate(to, from, next) {
//
this.fetchList()
next()
},
mounted() {
if (this.$route.query.id) {
this.params.record_id = this.$route.query.id

View File

@ -1,8 +1,6 @@
<template>
<div class="section section-white">
<div class="section-header with-border">
报名详情及审核
</div>
<div class="section-header with-border">报名详情及审核</div>
<div class="section-body">
<el-form
ref="recorddata"
@ -14,85 +12,45 @@
<el-form-item label="活动名称">
{{ recorddata.activity_name }}
</el-form-item>
<el-form-item
label="活动有效时间"
prop="activity_time"
>
<el-form-item label="活动有效时间" prop="activity_time">
{{ recorddata.start_date }} ~ {{ recorddata.end_date }}
</el-form-item>
<el-form-item
label="审核结果"
prop="status"
>
<el-tag
v-if="recorddata.status == 'pending'"
type="warning"
size="mini"
>
待审核
</el-tag>
<el-tag
v-if="recorddata.status == 'passed'"
type="success"
size="mini"
>
已通过
</el-tag>
<el-tag
v-if="recorddata.status == 'rejected'"
type="danger"
size="mini"
>
已拒绝
</el-tag>
<el-form-item label="审核结果" prop="status">
<el-tag v-if="recorddata.status == 'pending'" type="warning" size="mini"> </el-tag>
<el-tag v-if="recorddata.status == 'passed'" type="success" size="mini"> </el-tag>
<el-tag v-if="recorddata.status == 'rejected'" type="danger" size="mini"> </el-tag>
</el-form-item>
<el-form-item label="报名问卷">
<el-card
v-for="(item, index) in recorddata.content"
:key="index"
class="box-card"
>
<div
slot="header"
class="clearfix"
>
<el-form-item v-if="recorddata.status == 'passed'" label="签到状态" prop="is_write_off">
<el-tag v-if="recorddata.is_write_off == '0'" type="warning" size="mini"> </el-tag>
<el-tag v-if="recorddata.is_write_off == '1'" type="success" size="mini"> </el-tag>
</el-form-item>
<el-form-item label="签到时间" prop="is_write_off_date">
{{ toTimeDate(recorddata.is_write_off_date) }}
</el-form-item>
<el-form-item label="报名表单">
<el-card v-for="(item, index) in recorddata.content" :key="index" class="box-card">
<div slot="header" class="clearfix">
<span>{{ item.title }}</span>
</div>
<div
v-for="(item, key) in item.formdata"
:key="key"
class="text item"
>
<div v-for="(item, key) in item.formdata" :key="key" class="text item">
{{ item.field_title }}: {{ item.answer }}
</div>
</el-card>
</el-form-item>
<el-form-item
v-if="recorddata.status == 'pending'"
label="是否同意"
>
<el-form-item v-if="recorddata.status == 'pending'" label="是否同意">
<el-switch v-model="form.status" />
</el-form-item>
<el-form-item
v-if="form.status === false && recorddata.status == 'pending'"
label="拒绝原因"
>
<el-input
v-model="form.reason"
type="textarea"
/>
<el-input v-model="form.reason" type="textarea" />
</el-form-item>
<el-form-item>
<el-button
v-if="recorddata.status == 'pending'"
type="primary"
@click="submitAction"
>
<el-button v-if="recorddata.status == 'pending'" type="primary" @click="submitAction">
提交审核
</el-button>
<el-button @click="handleCancel">
取消
</el-button>
<el-button @click="handleCancel"> </el-button>
</el-form-item>
</el-form>
</div>
@ -101,6 +59,7 @@
<script>
import { Message } from 'element-ui'
import dayjs from 'dayjs'
import { regActivityRecordinfo, registrationReview } from '@/api/selfhelpform'
export default {
@ -126,6 +85,9 @@ export default {
}
},
methods: {
toTimeDate(time) {
return time ? dayjs(time * 1000).format('YYYY-MM-DD HH:mm:ss') : ''
},
submitAction() {
const that = this
registrationReview(that.form).then((res) => {