mirror of
				https://gitee.com/hhyykk/ipms-sjy-ui.git
				synced 2025-10-31 10:18:43 +08:00 
			
		
		
		
	Vue3 重构:REVIEW 公众号账号
This commit is contained in:
		| @@ -1,6 +1,12 @@ | ||||
| <template> | ||||
|   <Dialog :title="modelTitle" v-model="modelVisible"> | ||||
|     <el-form ref="formRef" :model="formData" :rules="rules" label-width="120px"> | ||||
|     <el-form | ||||
|       ref="formRef" | ||||
|       :model="formData" | ||||
|       :rules="rules" | ||||
|       label-width="120px" | ||||
|       v-loading="formLoading" | ||||
|     > | ||||
|       <el-form-item label="名称" prop="name"> | ||||
|         <el-input v-model="formData.name" placeholder="请输入名称" /> | ||||
|       </el-form-item> | ||||
| @@ -57,16 +63,13 @@ | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|     <template #footer> | ||||
|       <div class="dialog-footer"> | ||||
|         <el-button type="primary" @click="submitForm">确 定</el-button> | ||||
|         <el-button @click="modelVisible = false">取 消</el-button> | ||||
|       </div> | ||||
|       <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> | ||||
|       <el-button @click="modelVisible = false">取 消</el-button> | ||||
|     </template> | ||||
|   </Dialog> | ||||
| </template> | ||||
| <script setup lang="ts"> | ||||
| import * as AccountApi from '@/api/mp/account' | ||||
| 
 | ||||
| const { t } = useI18n() // 国际化 | ||||
| const message = useMessage() // 消息弹窗 | ||||
| 
 | ||||
| @@ -74,7 +77,6 @@ const modelVisible = ref(false) // 弹窗的是否展示 | ||||
| const modelTitle = ref('') // 弹窗的标题 | ||||
| const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 | ||||
| const formType = ref('') // 表单的类型:create - 新增;update - 修改 | ||||
| // 表单参数 | ||||
| const formData = ref({ | ||||
|   id: undefined, | ||||
|   name: '', | ||||
| @@ -85,7 +87,6 @@ const formData = ref({ | ||||
|   aesKey: '', | ||||
|   remark: '' | ||||
| }) | ||||
| // 表单校验 | ||||
| const rules = reactive({ | ||||
|   name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], | ||||
|   account: [{ required: true, message: '公众号账号不能为空', trigger: 'blur' }], | ||||
| @@ -96,7 +97,7 @@ const rules = reactive({ | ||||
| const formRef = ref() // 表单 Ref | ||||
| 
 | ||||
| /** 打开弹窗 */ | ||||
| const openModal = async (type: string, id?: number) => { | ||||
| const open = async (type: string, id?: number) => { | ||||
|   modelVisible.value = true | ||||
|   modelTitle.value = t('action.' + type) | ||||
|   formType.value = type | ||||
| @@ -111,12 +112,10 @@ const openModal = async (type: string, id?: number) => { | ||||
|     } | ||||
|   } | ||||
| } | ||||
| defineExpose({ openModal }) // 提供 openModal 方法,用于打开弹窗 | ||||
| defineExpose({ open }) // 提供 open 方法,用于打开弹窗 | ||||
| 
 | ||||
| /** 提交表单 */ | ||||
| const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 | ||||
| 
 | ||||
| /** 提交按钮 */ | ||||
| const submitForm = async () => { | ||||
|   // 校验表单 | ||||
|   if (!formRef) return | ||||
| @@ -6,7 +6,7 @@ | ||||
|       :model="queryParams" | ||||
|       ref="queryFormRef" | ||||
|       :inline="true" | ||||
|       label-width="90px" | ||||
|       label-width="68px" | ||||
|     > | ||||
|       <el-form-item label="名称" prop="name"> | ||||
|         <el-input | ||||
| @@ -20,8 +20,8 @@ | ||||
|       <el-form-item> | ||||
|         <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" />搜索</el-button> | ||||
|         <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button> | ||||
|         <el-button type="primary" @click="openModal('create')" v-hasPermi="['mp:account:create']" | ||||
|           ><Icon icon="ep:plus" class="mr-5px" />新增 | ||||
|         <el-button type="primary" @click="openForm('create')" v-hasPermi="['mp:account:create']"> | ||||
|           <Icon icon="ep:plus" class="mr-5px" /> 新增 | ||||
|         </el-button> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
| @@ -46,6 +46,14 @@ | ||||
|             alt="二维码" | ||||
|             style="height: 100px; display: inline-block" | ||||
|           /> | ||||
|           <el-button | ||||
|             link | ||||
|             type="primary" | ||||
|             @click="handleGenerateQrCode(scope.row)" | ||||
|             v-hasPermi="['mp:account:qr-code']" | ||||
|           > | ||||
|             生成二维码 | ||||
|           </el-button> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|       <el-table-column label="备注" align="center" prop="remark" /> | ||||
| @@ -54,30 +62,26 @@ | ||||
|           <el-button | ||||
|             link | ||||
|             type="primary" | ||||
|             @click="openModal('update', scope.row.id)" | ||||
|             @click="openForm('update', scope.row.id)" | ||||
|             v-hasPermi="['mp:account:update']" | ||||
|             >编辑 | ||||
|           > | ||||
|             编辑 | ||||
|           </el-button> | ||||
|           <el-button | ||||
|             link | ||||
|             type="danger" | ||||
|             @click="handleDelete(scope.row.id)" | ||||
|             v-hasPermi="['mp:account:delete']" | ||||
|             >删除 | ||||
|           </el-button> | ||||
|           <el-button | ||||
|             link | ||||
|             type="primary" | ||||
|             @click="handleGenerateQrCode(scope.row)" | ||||
|             v-hasPermi="['mp:account:qr-code']" | ||||
|             >生成二维码 | ||||
|           > | ||||
|             删除 | ||||
|           </el-button> | ||||
|           <el-button | ||||
|             link | ||||
|             type="danger" | ||||
|             @click="handleCleanQuota(scope.row)" | ||||
|             v-hasPermi="['mp:account:clear-quota']" | ||||
|             >清空 API 配额 | ||||
|           > | ||||
|             清空 API 配额 | ||||
|           </el-button> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
| @@ -91,23 +95,20 @@ | ||||
|       @pagination="getList" | ||||
|     /> | ||||
|   </content-wrap> | ||||
|   <!-- 对话框(添加 / 修改) --> | ||||
|   <account-form ref="modalRef" @success="getList" /> | ||||
| </template> | ||||
|  | ||||
|   <!-- 对话框(添加 / 修改) --> | ||||
|   <AccountForm ref="formRef" @success="getList" /> | ||||
| </template> | ||||
| <script setup lang="ts" name="MpAccount"> | ||||
| import * as AccountApi from '@/api/mp/account' | ||||
| import AccountForm from './form.vue' | ||||
| import AccountForm from './AccountForm.vue' | ||||
|  | ||||
| const message = useMessage() // 消息弹窗 | ||||
| const { t } = useI18n() // 国际化 | ||||
| // 遮罩层 | ||||
| const loading = ref(true) | ||||
| // 总条数 | ||||
| const total = ref(0) | ||||
| // 公众号账号列表 | ||||
| const list = ref([]) | ||||
| // 查询参数 | ||||
|  | ||||
| const loading = ref(true) // 列表的加载中 | ||||
| const total = ref(0) // 列表的总页数 | ||||
| const list = ref([]) // 列表的数据 | ||||
| const queryParams = reactive({ | ||||
|   pageNo: 1, | ||||
|   pageSize: 10, | ||||
| @@ -134,6 +135,7 @@ const handleQuery = () => { | ||||
|   queryParams.pageNo = 1 | ||||
|   getList() | ||||
| } | ||||
|  | ||||
| /** 重置按钮操作 */ | ||||
| const resetQuery = () => { | ||||
|   queryFormRef.value.resetFields() | ||||
| @@ -141,9 +143,9 @@ const resetQuery = () => { | ||||
| } | ||||
|  | ||||
| /** 添加/修改操作 */ | ||||
| const modalRef = ref() | ||||
| const openModal = (type: string, id?: number) => { | ||||
|   modalRef.value.openModal(type, id) | ||||
| const formRef = ref() | ||||
| const openForm = (type: string, id?: number) => { | ||||
|   formRef.value.open(type, id) | ||||
| } | ||||
|  | ||||
| /** 删除按钮操作 */ | ||||
| @@ -158,6 +160,7 @@ const handleDelete = async (id) => { | ||||
|     await getList() | ||||
|   } catch {} | ||||
| } | ||||
|  | ||||
| /** 生成二维码的按钮操作 */ | ||||
| const handleGenerateQrCode = async (row) => { | ||||
|   try { | ||||
| @@ -170,6 +173,7 @@ const handleGenerateQrCode = async (row) => { | ||||
|     await getList() | ||||
|   } catch {} | ||||
| } | ||||
|  | ||||
| /** 清空二维码 API 配额的按钮操作 */ | ||||
| const handleCleanQuota = async (row) => { | ||||
|   try { | ||||
| @@ -181,6 +185,7 @@ const handleCleanQuota = async (row) => { | ||||
|   } catch {} | ||||
| } | ||||
|  | ||||
| /** 初始化 **/ | ||||
| onMounted(() => { | ||||
|   getList() | ||||
| }) | ||||
|   | ||||
| @@ -1,7 +1,13 @@ | ||||
| <template> | ||||
|   <!-- 搜索工作栏 --> | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px"> | ||||
|     <el-form | ||||
|       class="-mb-15px" | ||||
|       :model="queryParams" | ||||
|       ref="queryFormRef" | ||||
|       :inline="true" | ||||
|       label-width="68px" | ||||
|     > | ||||
|       <el-form-item label="部门名称" prop="title"> | ||||
|         <el-input v-model="queryParams.name" placeholder="请输入部门名称" clearable /> | ||||
|       </el-form-item> | ||||
| @@ -113,7 +119,7 @@ const isExpandAll = ref(true) // 是否展开,默认全部展开 | ||||
| const refreshTable = ref(true) // 重新渲染表格状态 | ||||
| const loading = ref(true) // 列表的加载中 | ||||
|  | ||||
| //获取用户列表 | ||||
| // 获取用户列表 | ||||
| const getUserList = async () => { | ||||
|   const res = await getSimpleUserList() | ||||
|   userOption.value = res | ||||
| @@ -157,6 +163,7 @@ const getList = async () => { | ||||
|     loading.value = false | ||||
|   } | ||||
| } | ||||
|  | ||||
| /** 重置按钮操作 */ | ||||
| const resetQuery = () => { | ||||
|   queryParams.pageNo = 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV