活动
This commit is contained in:
		
							parent
							
								
									8478c204cc
								
							
						
					
					
						commit
						0342da62d6
					
				| @ -61,3 +61,17 @@ export const delActivity = (id: string | number | Array<string | number>) => { | |||||||
|     method: 'delete' |     method: 'delete' | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 查询流程信息列表 | ||||||
|  |  * @param query | ||||||
|  |  * @returns {*} | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | export const activityprocess = (query?: ActivityQuery): AxiosPromise<ActivityVO[]> => { | ||||||
|  |   return request({ | ||||||
|  |     url: '/manage/activity/process', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | |||||||
| @ -61,3 +61,14 @@ export const delBanned = (id: string | number | Array<string | number>) => { | |||||||
|     method: 'delete' |     method: 'delete' | ||||||
|   }); |   }); | ||||||
| }; | }; | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 用户等级 | ||||||
|  |  * @param query | ||||||
|  |  */ | ||||||
|  | export const userLevelall = () => { | ||||||
|  |   return request({ | ||||||
|  |     url: '/manage/userLevel/all', | ||||||
|  |     method: 'get' | ||||||
|  |   }); | ||||||
|  | }; | ||||||
|  | |||||||
| @ -1,175 +1,170 @@ | |||||||
| <template> | <template> | ||||||
|   <div class="p-2"> |   <div class="p-2"> | ||||||
|     <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> |     <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> | ||||||
|       <div v-show="showSearch" class="mb-[10px]"> |       <div v-show="showSearch" id="search_div" class="mb-[10px]"> | ||||||
|         <el-card shadow="hover"> |         <el-card shadow="hover"> | ||||||
|           <el-form ref="queryFormRef" :model="queryParams" :inline="true"> |           <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="70px"> | ||||||
|             <el-form-item label="活动名称" prop="activityName"> |             <el-form-item label="行程路线" prop=""> | ||||||
|               <el-input v-model="queryParams.activityName" placeholder="请输入活动名称" clearable @keyup.enter="handleQuery" /> |               <el-input class="inputWidth" placeholder="请输入行程路线" clearable @keyup.enter="handleQuery" /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item label="活动描述" prop="activityDescription"> |             <el-form-item label="线路地点" prop=""> | ||||||
|               <el-input v-model="queryParams.activityDescription" placeholder="请输入活动描述" clearable @keyup.enter="handleQuery" /> |               <el-input class="inputWidth" placeholder="请输入线路地点" clearable @keyup.enter="handleQuery" /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item label="排序顺序" prop="sortNum"> |             <el-form-item label="线路类型" prop=""> | ||||||
|               <el-input v-model="queryParams.sortNum" placeholder="请输入排序顺序" clearable @keyup.enter="handleQuery" /> |               <el-input class="inputWidth" placeholder="请输入线路类型" clearable @keyup.enter="handleQuery" /> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item label="活动人数" prop="activityUserCount"> |             <el-form-item label="发布状态" prop=""> | ||||||
|               <el-input v-model="queryParams.activityUserCount" placeholder="请输入活动人数" clearable @keyup.enter="handleQuery" /> |               <el-select v-model="queryParams.status" class="inputWidth" placeholder="请选择发布状态" clearable> | ||||||
|             </el-form-item> |                 <el-option v-for="dict in note_publish_list" :key="dict.value" :label="dict.label" :value="dict.value" /> | ||||||
|             <el-form-item label="报名人数" prop="registrationCount"> |               </el-select> | ||||||
|               <el-input v-model="queryParams.registrationCount" placeholder="请输入报名人数" clearable @keyup.enter="handleQuery" /> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="挑选玩友 0-不挑选 1-挑选" prop="isSelected"> |  | ||||||
|               <el-input v-model="queryParams.isSelected" placeholder="请输入挑选玩友 0-不挑选 1-挑选" clearable @keyup.enter="handleQuery" /> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="活动时间" prop="activityTime"> |  | ||||||
|               <el-date-picker clearable |  | ||||||
|                 v-model="queryParams.activityTime" |  | ||||||
|                 type="date" |  | ||||||
|                 value-format="YYYY-MM-DD" |  | ||||||
|                 placeholder="请选择活动时间" |  | ||||||
|               /> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="报名截止时间" prop="registrationDeadline"> |  | ||||||
|               <el-date-picker clearable |  | ||||||
|                 v-model="queryParams.registrationDeadline" |  | ||||||
|                 type="date" |  | ||||||
|                 value-format="YYYY-MM-DD" |  | ||||||
|                 placeholder="请选择报名截止时间" |  | ||||||
|               /> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="发布者地址" prop="publisherAddress"> |  | ||||||
|               <el-input v-model="queryParams.publisherAddress" placeholder="请输入发布者地址" clearable @keyup.enter="handleQuery" /> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="活动地点" prop="activityLocation"> |  | ||||||
|               <el-input v-model="queryParams.activityLocation" placeholder="请输入活动地点" clearable @keyup.enter="handleQuery" /> |  | ||||||
|             </el-form-item> |  | ||||||
|             <el-form-item label="收费方式 0-免费 1-发起人收款" prop="paymentMethod"> |  | ||||||
|               <el-input v-model="queryParams.paymentMethod" placeholder="请输入收费方式 0-免费 1-发起人收款" clearable @keyup.enter="handleQuery" /> |  | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item> |             <el-form-item> | ||||||
|               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> |               <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> | ||||||
|               <el-button icon="Refresh" @click="resetQuery">重置</el-button> |               <el-button icon="Refresh" @click="resetQuery">重置</el-button> | ||||||
|  |               <el-button v-hasPermi="['system:article:add']" type="primary" plain icon="Plus" @click="handleAdd">新增</el-button> | ||||||
|  |               <!--              <el-button v-hasPermi="['system:article:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()"--> | ||||||
|  |               <!--                >编辑</el-button--> | ||||||
|  |               <!--              >--> | ||||||
|  |               <!--              <el-button v-hasPermi="['system:article:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()"--> | ||||||
|  |               <!--                >删除</el-button--> | ||||||
|  |               <!--              >--> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|           </el-form> |           </el-form> | ||||||
|         </el-card> |         </el-card> | ||||||
|       </div> |       </div> | ||||||
|     </transition> |     </transition> | ||||||
| 
 | 
 | ||||||
|     <el-card shadow="never"> |     <el-table v-loading="loading" :height="autoTableHeight" :data="activityList" border @selection-change="handleSelectionChange"> | ||||||
|       <template #header> |       <!--      <el-table-column type="selection" width="55" align="center" />--> | ||||||
|         <el-row :gutter="10" class="mb8"> |       <el-table-column v-if="true" label="ID" align="center" prop="id" fixed width="180px" /> | ||||||
|           <el-col :span="1.5"> |       <el-table-column label="活动名称" align="center" fixed prop="activityName" width="180px" /> | ||||||
|             <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['manage:activity:add']">新增</el-button> |       <el-table-column label="活动描述" align="center" fixed prop="activityDescription" width="180px" show-overflow-tooltip /> | ||||||
|           </el-col> |       <el-table-column label="活动图片" align="center" prop="" /> | ||||||
|           <el-col :span="1.5"> |       <el-table-column label="排序" align="center" prop="sortNum" /> | ||||||
|             <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['manage:activity:edit']">修改</el-button> |       <el-table-column label="活动人数" align="center" prop="activityUserCount" /> | ||||||
|           </el-col> |       <el-table-column label="报名人数" align="center" prop="registrationCount" /> | ||||||
|           <el-col :span="1.5"> |       <el-table-column label="挑选玩友" align="center" prop="isSelected" /> | ||||||
|             <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['manage:activity:remove']">删除</el-button> |       <el-table-column label="活动时间" align="center" prop="activityTime" width="180px" /> | ||||||
|           </el-col> |       <el-table-column label="报名截止时间" align="center" prop="registrationDeadline" width="180px" /> | ||||||
|           <el-col :span="1.5"> |       <el-table-column label="发布者地址" align="center" prop="publisherAddress" width="120px" /> | ||||||
|             <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['manage:activity:export']">导出</el-button> |       <el-table-column label="活动地点" align="center" prop="activityLocation" width="180px" /> | ||||||
|           </el-col> |       <el-table-column label="收费方式" align="center" prop="paymentMethod" /> | ||||||
|           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> |       <el-table-column label="活动流程" align="center" prop="" width="100px"> | ||||||
|         </el-row> |         <template #default="scope"> | ||||||
|       </template> |           <el-button link type="primary" @click="handleUpdate(scope.row)">查看详情</el-button> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="问答" align="center" prop="" width="100px"> | ||||||
|  |         <template #default="scope"> | ||||||
|  |           <el-button link type="primary" @click="wendalist(scope.row)">查看详情</el-button> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="发布状态" align="center" prop="status" width="100px"> | ||||||
|  |         <template #default="scope"> | ||||||
|  |           <el-tag v-if="scope.row.status == 1" type="primary">审核中</el-tag> | ||||||
|  |           <el-tag v-if="scope.row.status == 2" type="success">发布</el-tag> | ||||||
|  |           <el-tag v-if="scope.row.status == 0" type="info">未发布</el-tag> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |       <el-table-column label="发布时间" align="center" prop="publishTime" /> | ||||||
|  |       <el-table-column label="发布人员" align="center" prop="publishName" /> | ||||||
|  |       <el-table-column label="操作人员" align="center" prop="updateName" /> | ||||||
|  |       <el-table-column label="操作时间" align="center" prop="updateTime" width="180px" /> | ||||||
|  |       <el-table-column label="操作" align="center" width="150px" fixed="right" class-name="small-padding fixed-width"> | ||||||
|  |         <template #default="scope"> | ||||||
|  |           <el-tooltip content="编辑" placement="top"> | ||||||
|  |             <el-button v-hasPermi="['system:article:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button> | ||||||
|  |           </el-tooltip> | ||||||
|  |           <!--          <el-tooltip content="发布" placement="top">--> | ||||||
|  |           <!--            <el-button v-hasPermi="['system:article:edit']" link type="primary" icon="Edit" @click="handleUpdate(scope.row)"></el-button>--> | ||||||
|  |           <!--          </el-tooltip>--> | ||||||
|  |           <el-tooltip content="删除" placement="top"> | ||||||
|  |             <el-button v-hasPermi="['system:article:remove']" link type="primary" icon="Delete" @click="handleDelete(scope.row)"></el-button> | ||||||
|  |           </el-tooltip> | ||||||
|  |         </template> | ||||||
|  |       </el-table-column> | ||||||
|  |     </el-table> | ||||||
| 
 | 
 | ||||||
|       <el-table v-loading="loading" :data="activityList" @selection-change="handleSelectionChange"> |     <pagination | ||||||
|         <el-table-column type="selection" width="55" align="center" /> |       v-show="total > 0" | ||||||
|         <el-table-column label="唯一标识ID" align="center" prop="id" v-if="true" /> |       id="table_page" | ||||||
|         <el-table-column label="活动名称" align="center" prop="activityName" /> |       v-model:page="queryParams.pageNum" | ||||||
|         <el-table-column label="活动描述" align="center" prop="activityDescription" /> |       v-model:limit="queryParams.pageSize" | ||||||
|         <el-table-column label="排序顺序" align="center" prop="sortNum" /> |       :total="total" | ||||||
|         <el-table-column label="活动人数" align="center" prop="activityUserCount" /> |       @pagination="getList" | ||||||
|         <el-table-column label="报名人数" align="center" prop="registrationCount" /> |     /> | ||||||
|         <el-table-column label="挑选玩友 0-不挑选 1-挑选" align="center" prop="isSelected" /> |  | ||||||
|         <el-table-column label="活动时间" align="center" prop="activityTime" width="180"> |  | ||||||
|           <template #default="scope"> |  | ||||||
|             <span>{{ parseTime(scope.row.activityTime, '{y}-{m}-{d}') }}</span> |  | ||||||
|           </template> |  | ||||||
|         </el-table-column> |  | ||||||
|         <el-table-column label="报名截止时间" align="center" prop="registrationDeadline" width="180"> |  | ||||||
|           <template #default="scope"> |  | ||||||
|             <span>{{ parseTime(scope.row.registrationDeadline, '{y}-{m}-{d}') }}</span> |  | ||||||
|           </template> |  | ||||||
|         </el-table-column> |  | ||||||
|         <el-table-column label="发布者地址" align="center" prop="publisherAddress" /> |  | ||||||
|         <el-table-column label="活动地点" align="center" prop="activityLocation" /> |  | ||||||
|         <el-table-column label="收费方式 0-免费 1-发起人收款" align="center" prop="paymentMethod" /> |  | ||||||
|         <el-table-column label="发布状态 0-未发布 1-审核中 2-发布" align="center" prop="status" /> |  | ||||||
|         <el-table-column label="发布者" align="center" prop="createBy" /> |  | ||||||
|         <el-table-column label="发布时间" align="center" prop="createTime" width="180"> |  | ||||||
|           <template #default="scope"> |  | ||||||
|             <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> |  | ||||||
|           </template> |  | ||||||
|         </el-table-column> |  | ||||||
|         <el-table-column label="操作者" align="center" prop="updateBy" /> |  | ||||||
|         <el-table-column label="操作时间" align="center" prop="updateTime" width="180"> |  | ||||||
|           <template #default="scope"> |  | ||||||
|             <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span> |  | ||||||
|           </template> |  | ||||||
|         </el-table-column> |  | ||||||
|         <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |  | ||||||
|           <template #default="scope"> |  | ||||||
|             <el-tooltip content="修改" placement="top"> |  | ||||||
|               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:activity:edit']"></el-button> |  | ||||||
|             </el-tooltip> |  | ||||||
|             <el-tooltip content="删除" placement="top"> |  | ||||||
|               <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:activity:remove']"></el-button> |  | ||||||
|             </el-tooltip> |  | ||||||
|           </template> |  | ||||||
|         </el-table-column> |  | ||||||
|       </el-table> |  | ||||||
| 
 |  | ||||||
|       <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> |  | ||||||
|     </el-card> |  | ||||||
|     <!-- 添加或修改活动信息对话框 --> |     <!-- 添加或修改活动信息对话框 --> | ||||||
|     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body> |     <el-dialog v-model="dialog.visible" :title="dialog.title" width="60%" append-to-body> | ||||||
|       <el-form ref="activityFormRef" :model="form" :rules="rules" label-width="80px"> |       <el-form ref="activityFormRef" :model="form" :rules="rules" label-width="120px"> | ||||||
|         <el-form-item label="活动名称" prop="activityName"> |         <el-form-item label="活动名称" prop="activityName"> | ||||||
|           <el-input v-model="form.activityName" placeholder="请输入活动名称" /> |           <el-input v-model="form.activityName" placeholder="请输入活动名称" style="width: 300px" /> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="活动描述" prop="activityDescription"> |         <el-form-item label="活动描述" prop="activityDescription"> | ||||||
|           <el-input v-model="form.activityDescription" placeholder="请输入活动描述" /> |           <el-input v-model="form.activityDescription" placeholder="请输入活动描述" style="width: 500px" autosize type="textarea" /> | ||||||
|         </el-form-item> |  | ||||||
|         <el-form-item label="排序顺序" prop="sortNum"> |  | ||||||
|           <el-input v-model="form.sortNum" placeholder="请输入排序顺序" /> |  | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="活动人数" prop="activityUserCount"> |         <el-form-item label="活动人数" prop="activityUserCount"> | ||||||
|           <el-input v-model="form.activityUserCount" placeholder="请输入活动人数" /> |           <el-input v-model="form.activityUserCount" placeholder="请输入活动人数" style="width: 300px" />人 | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="报名人数" prop="registrationCount"> |         <div style="display: flex"> | ||||||
|           <el-input v-model="form.registrationCount" placeholder="请输入报名人数" /> |           <el-form-item label="活动时间" prop="activityTime"> | ||||||
|  |             <el-date-picker | ||||||
|  |               v-model="form.activityTime" | ||||||
|  |               format="YYYY/MM/DD HH:mm:ss" | ||||||
|  |               value-format="YYYY-MM-DD hh:mm:ss" | ||||||
|  |               type="datetime" | ||||||
|  |               placeholder="请选择活动时间" | ||||||
|  |             /> | ||||||
|  |           </el-form-item> | ||||||
|  |           <el-form-item label="报名截至时间" prop="registrationDeadline"> | ||||||
|  |             <el-date-picker | ||||||
|  |               v-model="form.registrationDeadline" | ||||||
|  |               format="YYYY/MM/DD HH:mm:ss" | ||||||
|  |               value-format="YYYY-MM-DD hh:mm:ss" | ||||||
|  |               type="datetime" | ||||||
|  |               placeholder="请选择报名截至时间" | ||||||
|  |             /> | ||||||
|  |           </el-form-item> | ||||||
|  |         </div> | ||||||
|  |         <div style="display: flex"> | ||||||
|  |           <el-form-item label="发布者地址" prop="publisherAddress"> | ||||||
|  |             <el-input v-model="form.publisherAddress" placeholder="请输入活动人数" style="width: 300px" /> | ||||||
|  |           </el-form-item> | ||||||
|  |           <el-form-item label="活动地点" prop="activityLocation"> | ||||||
|  |             <el-input v-model="form.activityLocation" placeholder="请输入活动人数" style="width: 300px" /> | ||||||
|  |           </el-form-item> | ||||||
|  |         </div> | ||||||
|  |         <el-form-item label="收费方式" prop="paymentMethod"> | ||||||
|  |           <el-radio-group v-model="form.paymentMethod"> | ||||||
|  |             <el-radio :value="1">发起人收款</el-radio> | ||||||
|  |             <el-radio :value="0">免费</el-radio> | ||||||
|  |           </el-radio-group> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="挑选玩友 0-不挑选 1-挑选" prop="isSelected"> |         <el-form-item label="挑选玩友" prop="isSelected"> | ||||||
|           <el-input v-model="form.isSelected" placeholder="请输入挑选玩友 0-不挑选 1-挑选" /> |           <el-radio-group v-model="form.isSelected"> | ||||||
|  |             <el-radio :value="1">挑选</el-radio> | ||||||
|  |             <el-radio :value="0">不挑选</el-radio> | ||||||
|  |           </el-radio-group> | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|         <el-form-item label="活动时间" prop="activityTime"> |         <el-form-item label="活动流程"> | ||||||
|           <el-date-picker clearable |           <el-button type="primary" @click="addlisttiam">添加流程</el-button> | ||||||
|             v-model="form.activityTime" |  | ||||||
|             type="datetime" |  | ||||||
|             value-format="YYYY-MM-DD HH:mm:ss" |  | ||||||
|             placeholder="请选择活动时间"> |  | ||||||
|           </el-date-picker> |  | ||||||
|         </el-form-item> |  | ||||||
|         <el-form-item label="报名截止时间" prop="registrationDeadline"> |  | ||||||
|           <el-date-picker clearable |  | ||||||
|             v-model="form.registrationDeadline" |  | ||||||
|             type="datetime" |  | ||||||
|             value-format="YYYY-MM-DD HH:mm:ss" |  | ||||||
|             placeholder="请选择报名截止时间"> |  | ||||||
|           </el-date-picker> |  | ||||||
|         </el-form-item> |  | ||||||
|         <el-form-item label="发布者地址" prop="publisherAddress"> |  | ||||||
|           <el-input v-model="form.publisherAddress" placeholder="请输入发布者地址" /> |  | ||||||
|         </el-form-item> |  | ||||||
|         <el-form-item label="活动地点" prop="activityLocation"> |  | ||||||
|           <el-input v-model="form.activityLocation" placeholder="请输入活动地点" /> |  | ||||||
|         </el-form-item> |  | ||||||
|         <el-form-item label="收费方式 0-免费 1-发起人收款" prop="paymentMethod"> |  | ||||||
|           <el-input v-model="form.paymentMethod" placeholder="请输入收费方式 0-免费 1-发起人收款" /> |  | ||||||
|         </el-form-item> |         </el-form-item> | ||||||
|  |         <div v-for="(item, index) in listdatatime"> | ||||||
|  |           <div style="display: flex; align-items: center"> | ||||||
|  |             <el-form-item label="时间"> | ||||||
|  |               <el-date-picker | ||||||
|  |                 v-model="item.activityTime" | ||||||
|  |                 format="YYYY/MM/DD HH:mm:ss" | ||||||
|  |                 value-format="YYYY-MM-DD hh:mm:ss" | ||||||
|  |                 type="datetime" | ||||||
|  |                 placeholder="请选择行程时间" | ||||||
|  |               /> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-form-item label="计划的活动内容"> | ||||||
|  |               <el-input v-model="item.planContent" placeholder="请输入计划的活动内容" style="width: 300px" /> | ||||||
|  |             </el-form-item> | ||||||
|  |             <el-button type="primary" link icon="Delete" style="margin-bottom: 18px" @click="dellistdata(index)"></el-button> | ||||||
|  |           </div> | ||||||
|  |         </div> | ||||||
|       </el-form> |       </el-form> | ||||||
|       <template #footer> |       <template #footer> | ||||||
|         <div class="dialog-footer"> |         <div class="dialog-footer"> | ||||||
| @ -178,11 +173,15 @@ | |||||||
|         </div> |         </div> | ||||||
|       </template> |       </template> | ||||||
|     </el-dialog> |     </el-dialog> | ||||||
|  |     <!--    问答弹窗--> | ||||||
|  |     <el-dialog v-model="wendadialog.visible" title="问答" width="50%" append-to-body> </el-dialog> | ||||||
|  |     <!--    报名人数弹窗--> | ||||||
|  |     <el-dialog v-model="numdialog.visible" title="报名人数" width="50%" append-to-body> </el-dialog> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup name="Activity" lang="ts"> | <script setup name="Activity" lang="ts"> | ||||||
| import { listActivity, getActivity, delActivity, addActivity, updateActivity } from '@/api/manage/activity'; | import { listActivity, getActivity, delActivity, addActivity, updateActivity, activityprocess } from '@/api/manage/activity'; | ||||||
| import { ActivityVO, ActivityQuery, ActivityForm } from '@/api/manage/activity/types'; | import { ActivityVO, ActivityQuery, ActivityForm } from '@/api/manage/activity/types'; | ||||||
| 
 | 
 | ||||||
| const { proxy } = getCurrentInstance() as ComponentInternalInstance; | const { proxy } = getCurrentInstance() as ComponentInternalInstance; | ||||||
| @ -195,6 +194,7 @@ const ids = ref<Array<string | number>>([]); | |||||||
| const single = ref(true); | const single = ref(true); | ||||||
| const multiple = ref(true); | const multiple = ref(true); | ||||||
| const total = ref(0); | const total = ref(0); | ||||||
|  | const listdatatime = ref([{ activityTime: '', planContent: '' }]); | ||||||
| 
 | 
 | ||||||
| const queryFormRef = ref<ElFormInstance>(); | const queryFormRef = ref<ElFormInstance>(); | ||||||
| const activityFormRef = ref<ElFormInstance>(); | const activityFormRef = ref<ElFormInstance>(); | ||||||
| @ -203,7 +203,12 @@ const dialog = reactive<DialogOption>({ | |||||||
|   visible: false, |   visible: false, | ||||||
|   title: '' |   title: '' | ||||||
| }); | }); | ||||||
| 
 | const wendadialog = reactive<DialogOption>({ | ||||||
|  |   visible: false | ||||||
|  | }); | ||||||
|  | const numdialog = reactive<DialogOption>({ | ||||||
|  |   visible: false | ||||||
|  | }); | ||||||
| const initFormData: ActivityForm = { | const initFormData: ActivityForm = { | ||||||
|   id: undefined, |   id: undefined, | ||||||
|   activityName: undefined, |   activityName: undefined, | ||||||
| @ -217,10 +222,10 @@ const initFormData: ActivityForm = { | |||||||
|   publisherAddress: undefined, |   publisherAddress: undefined, | ||||||
|   activityLocation: undefined, |   activityLocation: undefined, | ||||||
|   paymentMethod: undefined, |   paymentMethod: undefined, | ||||||
|   status: undefined, |   status: undefined | ||||||
| } | }; | ||||||
| const data = reactive<PageData<ActivityForm, ActivityQuery>>({ | const data = reactive<PageData<ActivityForm, ActivityQuery>>({ | ||||||
|   form: {...initFormData}, |   form: { ...initFormData }, | ||||||
|   queryParams: { |   queryParams: { | ||||||
|     pageNum: 1, |     pageNum: 1, | ||||||
|     pageSize: 10, |     pageSize: 10, | ||||||
| @ -236,49 +241,22 @@ const data = reactive<PageData<ActivityForm, ActivityQuery>>({ | |||||||
|     activityLocation: undefined, |     activityLocation: undefined, | ||||||
|     paymentMethod: undefined, |     paymentMethod: undefined, | ||||||
|     status: undefined, |     status: undefined, | ||||||
|     params: { |     params: {} | ||||||
|     } |  | ||||||
|   }, |   }, | ||||||
|   rules: { |   rules: { | ||||||
|     id: [ |     id: [{ required: true, message: '唯一标识ID不能为空', trigger: 'blur' }], | ||||||
|       { required: true, message: "唯一标识ID不能为空", trigger: "blur" } |     activityName: [{ required: true, message: '活动名称不能为空', trigger: 'blur' }], | ||||||
|     ], |     activityDescription: [{ required: true, message: '活动描述不能为空', trigger: 'blur' }], | ||||||
|     activityName: [ |     sortNum: [{ required: true, message: '排序顺序不能为空', trigger: 'blur' }], | ||||||
|       { required: true, message: "活动名称不能为空", trigger: "blur" } |     activityUserCount: [{ required: true, message: '活动人数不能为空', trigger: 'blur' }], | ||||||
|     ], |     registrationCount: [{ required: true, message: '报名人数不能为空', trigger: 'blur' }], | ||||||
|     activityDescription: [ |     isSelected: [{ required: true, message: '挑选玩友 0-不挑选 1-挑选不能为空', trigger: 'blur' }], | ||||||
|       { required: true, message: "活动描述不能为空", trigger: "blur" } |     activityTime: [{ required: true, message: '活动时间不能为空', trigger: 'blur' }], | ||||||
|     ], |     registrationDeadline: [{ required: true, message: '报名截止时间不能为空', trigger: 'blur' }], | ||||||
|     sortNum: [ |     publisherAddress: [{ required: true, message: '发布者地址不能为空', trigger: 'blur' }], | ||||||
|       { required: true, message: "排序顺序不能为空", trigger: "blur" } |     activityLocation: [{ required: true, message: '活动地点不能为空', trigger: 'blur' }], | ||||||
|     ], |     paymentMethod: [{ required: true, message: '收费方式 0-免费 1-发起人收款不能为空', trigger: 'blur' }], | ||||||
|     activityUserCount: [ |     status: [{ required: true, message: '发布状态 0-未发布 1-审核中 2-发布不能为空', trigger: 'change' }] | ||||||
|       { required: true, message: "活动人数不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     registrationCount: [ |  | ||||||
|       { required: true, message: "报名人数不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     isSelected: [ |  | ||||||
|       { required: true, message: "挑选玩友 0-不挑选 1-挑选不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     activityTime: [ |  | ||||||
|       { required: true, message: "活动时间不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     registrationDeadline: [ |  | ||||||
|       { required: true, message: "报名截止时间不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     publisherAddress: [ |  | ||||||
|       { required: true, message: "发布者地址不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     activityLocation: [ |  | ||||||
|       { required: true, message: "活动地点不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     paymentMethod: [ |  | ||||||
|       { required: true, message: "收费方式 0-免费 1-发起人收款不能为空", trigger: "blur" } |  | ||||||
|     ], |  | ||||||
|     status: [ |  | ||||||
|       { required: true, message: "发布状态 0-未发布 1-审核中 2-发布不能为空", trigger: "change" } |  | ||||||
|     ], |  | ||||||
|   } |   } | ||||||
| }); | }); | ||||||
| 
 | 
 | ||||||
| @ -291,89 +269,112 @@ const getList = async () => { | |||||||
|   activityList.value = res.rows; |   activityList.value = res.rows; | ||||||
|   total.value = res.total; |   total.value = res.total; | ||||||
|   loading.value = false; |   loading.value = false; | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 取消按钮 */ | /** 取消按钮 */ | ||||||
| const cancel = () => { | const cancel = () => { | ||||||
|   reset(); |   reset(); | ||||||
|   dialog.visible = false; |   dialog.visible = false; | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 表单重置 */ | /** 表单重置 */ | ||||||
| const reset = () => { | const reset = () => { | ||||||
|   form.value = {...initFormData}; |   form.value = { ...initFormData }; | ||||||
|   activityFormRef.value?.resetFields(); |   activityFormRef.value?.resetFields(); | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 搜索按钮操作 */ | /** 搜索按钮操作 */ | ||||||
| const handleQuery = () => { | const handleQuery = () => { | ||||||
|   queryParams.value.pageNum = 1; |   queryParams.value.pageNum = 1; | ||||||
|   getList(); |   getList(); | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 重置按钮操作 */ | /** 重置按钮操作 */ | ||||||
| const resetQuery = () => { | const resetQuery = () => { | ||||||
|   queryFormRef.value?.resetFields(); |   queryFormRef.value?.resetFields(); | ||||||
|   handleQuery(); |   handleQuery(); | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 多选框选中数据 */ | /** 多选框选中数据 */ | ||||||
| const handleSelectionChange = (selection: ActivityVO[]) => { | const handleSelectionChange = (selection: ActivityVO[]) => { | ||||||
|   ids.value = selection.map(item => item.id); |   ids.value = selection.map((item) => item.id); | ||||||
|   single.value = selection.length != 1; |   single.value = selection.length != 1; | ||||||
|   multiple.value = !selection.length; |   multiple.value = !selection.length; | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 新增按钮操作 */ | /** 新增按钮操作 */ | ||||||
| const handleAdd = () => { | const handleAdd = () => { | ||||||
|   reset(); |   reset(); | ||||||
|   dialog.visible = true; |   dialog.visible = true; | ||||||
|   dialog.title = "添加活动信息"; |   listdatatime.value = [{ activityTime: '', planContent: '' }]; | ||||||
| } |   dialog.title = '添加活动信息'; | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| /** 修改按钮操作 */ | /** 修改按钮操作 */ | ||||||
| const handleUpdate = async (row?: ActivityVO) => { | const handleUpdate = async (row?: ActivityVO) => { | ||||||
|   reset(); |   reset(); | ||||||
|   const _id = row?.id || ids.value[0] |   const _id = row?.id || ids.value[0]; | ||||||
|   const res = await getActivity(_id); |   const res = await getActivity(_id); | ||||||
|  |   const arr = await activityprocess({ activityId: _id }); | ||||||
|  |   console.log(arr); | ||||||
|  |   // = arr.data; | ||||||
|   Object.assign(form.value, res.data); |   Object.assign(form.value, res.data); | ||||||
|  |   Object.assign(listdatatime.value, arr.data); | ||||||
|   dialog.visible = true; |   dialog.visible = true; | ||||||
|   dialog.title = "修改活动信息"; |   dialog.title = '修改活动信息'; | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 提交按钮 */ | /** 提交按钮 */ | ||||||
| const submitForm = () => { | const submitForm = () => { | ||||||
|  |   form.value.dyActivityProcessList = listdatatime.value; | ||||||
|  |   console.log(form.value); | ||||||
|  |   // return | ||||||
|   activityFormRef.value?.validate(async (valid: boolean) => { |   activityFormRef.value?.validate(async (valid: boolean) => { | ||||||
|     if (valid) { |     if (valid) { | ||||||
|       buttonLoading.value = true; |       buttonLoading.value = true; | ||||||
|       if (form.value.id) { |       if (form.value.id) { | ||||||
|         await updateActivity(form.value).finally(() =>  buttonLoading.value = false); |         await updateActivity(form.value).finally(() => (buttonLoading.value = false)); | ||||||
|       } else { |       } else { | ||||||
|         await addActivity(form.value).finally(() =>  buttonLoading.value = false); |         await addActivity(form.value).finally(() => (buttonLoading.value = false)); | ||||||
|       } |       } | ||||||
|       proxy?.$modal.msgSuccess("操作成功"); |       proxy?.$modal.msgSuccess('操作成功'); | ||||||
|       dialog.visible = false; |       dialog.visible = false; | ||||||
|       await getList(); |       await getList(); | ||||||
|     } |     } | ||||||
|   }); |   }); | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 删除按钮操作 */ | /** 删除按钮操作 */ | ||||||
| const handleDelete = async (row?: ActivityVO) => { | const handleDelete = async (row?: ActivityVO) => { | ||||||
|   const _ids = row?.id || ids.value; |   const _ids = row?.id || ids.value; | ||||||
|   await proxy?.$modal.confirm('是否确认删除活动信息编号为"' + _ids + '"的数据项?').finally(() => loading.value = false); |   await proxy?.$modal.confirm('是否确认删除活动信息编号为"' + _ids + '"的数据项?').finally(() => (loading.value = false)); | ||||||
|   await delActivity(_ids); |   await delActivity(_ids); | ||||||
|   proxy?.$modal.msgSuccess("删除成功"); |   proxy?.$modal.msgSuccess('删除成功'); | ||||||
|   await getList(); |   await getList(); | ||||||
| } | }; | ||||||
| 
 | 
 | ||||||
| /** 导出按钮操作 */ | /** 导出按钮操作 */ | ||||||
| const handleExport = () => { | const handleExport = () => { | ||||||
|   proxy?.download('manage/activity/export', { |   proxy?.download( | ||||||
|     ...queryParams.value |     'manage/activity/export', | ||||||
|   }, `activity_${new Date().getTime()}.xlsx`) |     { | ||||||
| } |       ...queryParams.value | ||||||
| 
 |     }, | ||||||
|  |     `activity_${new Date().getTime()}.xlsx` | ||||||
|  |   ); | ||||||
|  | }; | ||||||
|  | // 添加流程 | ||||||
|  | const addlisttiam = () => { | ||||||
|  |   listdatatime.value.push({ activityTime: '', planContent: '' }); | ||||||
|  | }; | ||||||
|  | // 删除流程 | ||||||
|  | const dellistdata = (index) => { | ||||||
|  |   listdatatime.value.splice(index, 1); | ||||||
|  | }; | ||||||
|  | //问答弹窗 | ||||||
|  | const wendalist = (row) => { | ||||||
|  |   wendadialog.visible = true; | ||||||
|  | }; | ||||||
| onMounted(() => { | onMounted(() => { | ||||||
|   getList(); |   getList(); | ||||||
| }); | }); | ||||||
|  | |||||||
| @ -12,7 +12,7 @@ | |||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item label="账号状态" prop="handlingStatus"> |             <el-form-item label="账号状态" prop="handlingStatus"> | ||||||
|               <el-select v-model="queryParams.handlingStatus" placeholder="请选择状态" clearable> |               <el-select v-model="queryParams.handlingStatus" placeholder="请选择状态" clearable> | ||||||
|                 <el-option v-for="dict in dy_banned_handling_status" :key="dict.value" :label="dict.label" :value="dict.value" /> |                 <!--                <el-option v-for="dict in dy_banned_handling_status" :key="dict.value" :label="dict.label" :value="dict.value" />--> | ||||||
|               </el-select> |               </el-select> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item label="性别" prop="handlingStatus"> |             <el-form-item label="性别" prop="handlingStatus"> | ||||||
| @ -22,7 +22,7 @@ | |||||||
|             </el-form-item> |             </el-form-item> | ||||||
|             <el-form-item label="会员等级" prop="handlingStatus"> |             <el-form-item label="会员等级" prop="handlingStatus"> | ||||||
|               <el-select v-model="queryParams.handlingStatus" placeholder="请选择状态" clearable> |               <el-select v-model="queryParams.handlingStatus" placeholder="请选择状态" clearable> | ||||||
|                 <el-option v-for="dict in dy_banned_handling_status" :key="dict.value" :label="dict.label" :value="dict.value" /> |                 <el-option v-for="dict in dy_banned_handling_status" :key="dict.id" :label="dict.levelName" :value="dict.id" /> | ||||||
|               </el-select> |               </el-select> | ||||||
|             </el-form-item> |             </el-form-item> | ||||||
| 
 | 
 | ||||||
| @ -49,7 +49,11 @@ | |||||||
|         <el-table-column v-if="queryParams.type == 2" label="活动名称" align="center" prop="contentname" /> |         <el-table-column v-if="queryParams.type == 2" label="活动名称" align="center" prop="contentname" /> | ||||||
|         <el-table-column v-if="queryParams.type == 3" label="评论名称" align="center" prop="contentname" /> |         <el-table-column v-if="queryParams.type == 3" label="评论名称" align="center" prop="contentname" /> | ||||||
|         <el-table-column label="用户ID" align="center" prop="reportUserId" /> |         <el-table-column label="用户ID" align="center" prop="reportUserId" /> | ||||||
|         <el-table-column label="会员等级" align="center" prop="userLever" /> |         <el-table-column label="会员等级" align="center" prop="userLevel"> | ||||||
|  |           <template #default="scope"> | ||||||
|  |             <div>{{formatlevel(scope.row.userLevel)}}</div> | ||||||
|  |           </template> | ||||||
|  |         </el-table-column> | ||||||
|         <el-table-column label="昵称" align="center" prop="nickname" /> |         <el-table-column label="昵称" align="center" prop="nickname" /> | ||||||
|         <el-table-column label="性别" align="center" prop="sex"> |         <el-table-column label="性别" align="center" prop="sex"> | ||||||
|           <template #default="scope"> |           <template #default="scope"> | ||||||
| @ -104,18 +108,19 @@ | |||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| <script setup name="Banned" lang="ts"> | <script setup name="Banned" lang="ts"> | ||||||
| import { listBanned, getBanned, delBanned, addBanned, updateBanned } from '@/api/manage/banned'; | import { listBanned, getBanned, delBanned, addBanned, updateBanned, userLevelall } from '@/api/manage/banned'; | ||||||
| import { BannedVO, BannedQuery, BannedForm } from '@/api/manage/banned/types'; | import { BannedVO, BannedQuery, BannedForm } from '@/api/manage/banned/types'; | ||||||
| 
 | 
 | ||||||
| const { proxy } = getCurrentInstance() as ComponentInternalInstance; | const { proxy } = getCurrentInstance() as ComponentInternalInstance; | ||||||
| const { dy_banned_handling_method, dy_banned_handling_status, sys_user_sex, dy_banned_ban_reason, dy_user_ban_days } = toRefs<any>( | const { dy_banned_handling_method, sys_user_sex, dy_banned_ban_reason, dy_user_ban_days } = toRefs<any>( | ||||||
|   proxy?.useDict('dy_banned_handling_method', 'dy_banned_handling_status', 'sys_user_sex', 'dy_banned_ban_reason', 'dy_user_ban_days') |   proxy?.useDict('dy_banned_handling_method', 'sys_user_sex', 'dy_banned_ban_reason', 'dy_user_ban_days') | ||||||
| ); | ); | ||||||
| 
 | 
 | ||||||
| const bannedList = ref<BannedVO[]>([]); | const bannedList = ref<BannedVO[]>([]); | ||||||
| const buttonLoading = ref(false); | const buttonLoading = ref(false); | ||||||
| const loading = ref(true); | const loading = ref(true); | ||||||
| const showSearch = ref(true); | const showSearch = ref(true); | ||||||
|  | const dy_banned_handling_status = ref([]); | ||||||
| const ids = ref<Array<string | number>>([]); | const ids = ref<Array<string | number>>([]); | ||||||
| const single = ref(true); | const single = ref(true); | ||||||
| const multiple = ref(true); | const multiple = ref(true); | ||||||
| @ -273,8 +278,26 @@ const handleExport = () => { | |||||||
|     `banned_${new Date().getTime()}.xlsx` |     `banned_${new Date().getTime()}.xlsx` | ||||||
|   ); |   ); | ||||||
| }; | }; | ||||||
|  | // 等级列表 | ||||||
|  | const getuserLevelall = async () => { | ||||||
|  |   const res = await userLevelall(); | ||||||
|  |   dy_banned_handling_status.value = res; | ||||||
|  |   console.log(res, 'res'); | ||||||
|  | }; | ||||||
|  | // 等级格式化 | ||||||
|  | const formatlevel = (tagId: string | null) => { | ||||||
|  |   let tagString = ''; | ||||||
|  |   for (let i = 0; i < dy_banned_handling_status.value.length; i++) { | ||||||
|  |     const element = dy_banned_handling_status.value[i]; | ||||||
|  |     if (tagId == element.id) { | ||||||
|  |       tagString = element.levelName; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |   return tagString; | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| onMounted(() => { | onMounted(() => { | ||||||
|   getList(); |   getList(); | ||||||
|  |   getuserLevelall(); | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
|  | |||||||
| @ -271,7 +271,7 @@ const submitForm = () => { | |||||||
|   hotelFormRef.value?.validate(async (valid: boolean) => { |   hotelFormRef.value?.validate(async (valid: boolean) => { | ||||||
|     if (valid) { |     if (valid) { | ||||||
|       buttonLoading.value = true; |       buttonLoading.value = true; | ||||||
|       form.value.status = 2; |       form.value.status = 0; | ||||||
|       form.value.imgUrlList = imgUrlList; |       form.value.imgUrlList = imgUrlList; | ||||||
|       if (form.value.id) { |       if (form.value.id) { | ||||||
|         await updateHotel(form.value).finally(() => (buttonLoading.value = false)); |         await updateHotel(form.value).finally(() => (buttonLoading.value = false)); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user