src/api/system/company/company.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/permission.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/dict.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/companymanger/components/judge.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/complating/component/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/complating/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/enforcement/component/details.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/enforcement/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/user/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/system/company/company.ts
@@ -181,4 +181,47 @@ method: 'post', data: data }) } // 投诉处理 /enforce/complaint/log/list export function listComplaint(data) { return request({ url: `/enforce/complaint/log/list`, method: 'get', params: data }) } // 企业执法记录 /enforce/order/companyList export function companyListEnforce(data) { return request({ url: `/enforce/order/commonList`, method: 'get', params: data }) } // 查看执法单详情 /enforce/order/{orderId} export function getOrder(data) { return request({ url: `/enforce/order/${data.orderId}`, method: 'get', params: data }) } // 响应 /enforce/complaint/log/inComplaint export function inComplaintLog(data) { return request({ url: `/enforce/complaint/log/inComplaint`, method: 'post', data: data }) } // 修改投诉记录 /enforce/complaint/log/upd export function updComplaintLog(data) { return request({ url: `/enforce/complaint/log/upd`, method: 'post', data: data }) } src/main.ts
@@ -25,7 +25,7 @@ import "./permission"; // permission control import { useDict } from "@/utils/dict"; import { useDict, useDictPer } from "@/utils/dict"; import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from "@/utils/ruoyi"; // 分页组件 @@ -49,6 +49,8 @@ // 全局方法挂载 app.config.globalProperties.useDict = useDict; app.config.globalProperties.useDictPer = useDictPer; // app.config.globalProperties.useDict = (e: any): ToRefs<Dict.resDictType> => { // return useDict(e); // }; src/permission.ts
@@ -32,7 +32,6 @@ usePermissionStore() .generateRoutes() .then((accessRoutes) => { console.log(accessRoutes) // 根据roles权限生成可访问的路由表 accessRoutes.forEach((route: any) => { if (!isHttp(route.path)) { src/utils/dict.ts
@@ -21,7 +21,24 @@ return toRefs(res.value); })(); } export function useDictPer(...args: string[]) { const res = ref<Dict.resDictType>({}); return (() => { args.forEach((dictName: string, index: number) => { res.value[dictName] = [] as Array<Dict.dictType>; const dicts: Array<Dict.dictType> = useDictStore().getDict(dictName); if (dicts) { res.value[dictName] = dicts; } else { getDicts(dictName).then((resp) => { res.value[dictName] = resp.data.map((p: any) => ({ label: p.dictLabel, value: p.dictCode, elTagType: p.listClass, elTagClass: p.cssClass })); useDictStore().setDict(dictName, res.value[dictName]); }); } }); return toRefs(res.value); })(); } // export default { // install(app: App<Element>) { // app.config.globalProperties.$useDict = useDict; src/views/infomanger/companymanger/components/judge.vue
@@ -34,7 +34,7 @@ const info = ref({}) const emit:any = defineEmits() const form: any = reactive({ checkStatus: '' checkStatus: '1' }) const cloaseDialog = () => { dialogVisible.value = false src/views/infomanger/complating/component/index.vue
@@ -1,31 +1,55 @@ <template> <el-dialog title="执法详情" width="1000px" v-model="dialogVisible" @close="closeDialog"> <el-form> <el-form label-width="80px"> <el-form-item label="投诉内容"> <div> {{ info.complaintReason }} </div> </el-form-item> <el-form-item label="办结"> <el-radio-group> <el-radio>驳回</el-radio> <el-radio>办结</el-radio> <el-radio-group v-model="form.complaintStatus"> <el-radio value="-1">驳回</el-radio> <el-radio value="2">办结</el-radio> </el-radio-group> </el-form-item> <el-form-item label="驳回原因"> <el-input type="textarea" placeholder="请输入"></el-input> <el-input type="textarea" placeholder="请输入" v-model="form.returnReason"></el-input> </el-form-item> </el-form> <template #footer> <el-button @click="closeDialog">关 闭</el-button> <el-button @click="updateStatus" type="primary">确认</el-button> </template> </el-dialog> </template> <script setup lang="ts"> import { ElMessage } from 'element-plus' import { updComplaintLog } from "@/api/system/company/company" const dialogVisible = ref(false) function openDialog() { const info = ref({}) const form = ref({ complaintStatus: "-1" }) function openDialog(item) { info.value = item dialogVisible.value = true } function closeDialog() { dialogVisible.value = false } function updateStatus() { if(form.value.complaintStatus == "-1" && !form.value.returnReason) { ElMessage.error("请输入驳回原因") return } info.value.complaintStatus = form.value.complaintStatus info.value.returnReason = form.value.returnReason updComplaintLog(info.value).then(val => { if(val.code == 200){ ElMessage.success("操作成功") } }) } defineExpose({ openDialog, closeDialog }) </script> src/views/infomanger/complating/index.vue
@@ -1,8 +1,8 @@ <template> <div class="app-container"> <el-form inline ref="formRef" :model="form.queryParams" label-width="80px"> <el-form inline ref="formRef" :model="form.quparams" label-width="80px"> <el-form-item label="投诉内容" prop="content"> <el-input placeholder="请输入" v-model="form.queryParams.content"></el-input> <el-input placeholder="请输入" v-model="form.quparams.content"></el-input> </el-form-item> <el-form-item label="投诉对象"> <el-input placeholder="请输入"></el-input> @@ -26,31 +26,111 @@ <el-button icon="Download" type="primary" plain>导出</el-button> </el-col> </el-row> <el-table> <el-table-column label="投诉企业"></el-table-column> <el-table-column label="投诉对象"></el-table-column> <el-table-column label="投诉类型"></el-table-column> <el-table-column label="投诉内容"></el-table-column> <el-table-column label="执法主题"></el-table-column> <el-table-column label="办理状态"></el-table-column> <el-table-column label="操作"></el-table-column> <el-table :data="form.tableData"> <el-table-column label="投诉企业" prop="companyName"></el-table-column> <el-table-column label="投诉对象" prop="executeDeptName"> <template #default="scope"> {{ scope.row.executeUser }} ({{ scope.row.executeDeptName }}) </template> </el-table-column> <el-table-column label="投诉类型"> <template #default="scope"> {{ complaint_type[scope.row.complaintType] }} </template> </el-table-column> <el-table-column label="投诉内容" prop="complaintReason"></el-table-column> <el-table-column label="执法主题" prop="enforceReason"> <template #default="scope"> <el-link type="primary" @click="look(scope.row)">{{ scope.row.enforceReason }}</el-link> </template> </el-table-column> <el-table-column label="办理状态" prop="complaintStatus"> <template #default="scope"> {{ form.status[scope.row.complaintStatus] }} </template> </el-table-column> <el-table-column label="操作"> <template #default="scope"> <el-link type="primary" v-if="scope.row.complaintStatus == 2 || scope.row.complaintStatus == -1" @click="look(scope.row)">查看</el-link> <el-link type="primary" v-if="scope.row.complaintStatus == 0" @click="inComplaintLogHandler(scope.row)">响应</el-link> <el-link type="primary" @click="handlerRes(scope.row)" v-if="scope.row.complaintStatus == 1">办结</el-link> </template> </el-table-column> </el-table> <pagination v-show="form.quparams.total > 0" :total="form.quparams.total" v-model:page="form.quparams.pageNum" v-model:limit="form.quparams.pageSize" @pagination="getList" /> <handlerCom ref="handlerComRef"></handlerCom> <orderDetails ref="orderDetailsRef"></orderDetails> </div> </template> <script lang="ts" setup> import { listComplaint, inComplaintLog } from '@/api/system/company/company' import { ElMessageBox } from 'element-plus' import handlerCom from './component/index.vue' import orderDetails from '@/views/infomanger/enforcement/component/details.vue' const { proxy } = getCurrentInstance() const { complaint_type } = proxy.useDictPer("complaint_type"); const handlerComRef = ref() const orderDetailsRef = ref() const formRef = ref() const form = reactive({ queryParams: { content: '' quparams: { content: '', pageSize: 10, pageNum: 1, total: 0 }, tableData: [], status: { "-1":"已驳回",0:"待响应",1:"处理中",2:"已办结" } }) const dispImgType = (e: string) => { return complaint_type.value.find((f: any) => f.value == e)?.label; }; function handleQuery() { } function resetQuery() { formRef.value.resetFields() } function listComplaintHttp() { listComplaint().then((res: any) => { console.log(res.rows) form.tableData = res.rows }) } function handlerRes(item) { handlerComRef.value.openDialog(item) } function look(item) { orderDetailsRef.value.openDialog(item) } function inComplaintLogHandler(item) { ElMessageBox.confirm( '确认响应该条数据?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', } ) .then(() => { inComplaintLog({id: item.id}).then((res: any) => { // console.log(res) listComplaintHttp() }) }) } function getList(e: { limit: number; page: number }) { form.quparams.pageSize = e.limit form.quparams.pageNum = e.page listComplaintHttp() } listComplaintHttp() </script> <style scoped lang="scss"> src/views/infomanger/enforcement/component/details.vue
@@ -1,75 +1,115 @@ <template> <el-dialog title="执法详情" width="1000px" v-model="dialogVisible" @close="closeDialog"> <div> <el-dialog title="执法详情" width="900px" v-model="dialogVisible" @close="closeDialog"> <div v-loading="loading"> <div class="title">执法信息</div> <div> <div class="content"> <el-row> <el-col :span="12"> <div class="label">执法类型</div> <div class="value">司法检查</div> <div class="label">执法类型</div> <div class="value">司法检查</div> </el-col> <el-col :span="12"> <div class="label">执法部门</div> <div class="value">司法检查</div> <div class="label">执法部门</div> <div class="value">{{ details.applyDeptName }}</div> </el-col> <el-col :span="12"> <div class="label">企业</div> <div class="value">司法检查</div> <div class="label">企业</div> <div class="value">{{ details.companyName }}</div> </el-col> <el-col :span="12"> <div class="label">执法人员</div> <div class="value">司法检查</div> <div class="label">执法人员</div> <div class="value">{{ details.executeUser || details.applyUser }}</div> </el-col> <el-col :span="12"> <div class="label">随行人员</div> <div class="value">司法检查</div> <div class="label">随行人员</div> <div class="value"> <div v-for="(item, index) in details.peers" :key="index"> {{ item.peerUser }} ({{ item.peerDeptName }}) </div> </div> </el-col> <el-col :span="12"> <div class="label">申请时间</div> <div class="value">司法检查</div> <div class="label">申请时间</div> <div class="value">{{ details.applyTime || "" }}</div> </el-col> <el-col :span="12"> <div class="label">执法时间</div> <div class="value">司法检查</div> <div class="label">执法时间</div> <div class="value">{{ details.executeTime || details.planTime }}</div> </el-col> <el-col :span="12"> <div class="label">状态</div> <div class="value">司法检查</div> <div class="label">状态</div> <div class="value">{{ status.orderStatusMap[details.orderStatus] }}</div> </el-col> <el-col :span="24"> <div class="label">执法内容</div> <div class="value">1.火灾隐患整改情况以及防范措施的落实情况。 2.安全疏散通道、疏散指示标志、应急照明和安全出口情况。 3.消防车通道、消防水源情况。</div> <div class="label">执法内容</div> <div class="value">{{ details.enforceContent || "--" }}</div> </el-col> </el-row> </div> <div class="title">执法记录</div> <div> <el-row> <el-col :span="12"> <div class="label">执法主题</div> <div class="value">司法检查</div> </el-col> <el-col :span="12"> <div class="label">是否通知企业</div> <div class="value">司法检查</div> </el-col> <el-col :span="24"> <div class="label">执法过程</div> <div class="value">司法检查</div> </el-col> <el-col :span="12"> <div class="label">执法结果</div> <div class="value">司法检查</div> </el-col> </el-row> <div v-if="details.orderStatus == 4"> <div class="title">执法记录</div> <div class="content"> <el-row> <el-col :span="12"> <div class="label">执法主题</div> <div class="value">{{ details.enforceReason || '' }}</div> </el-col> <el-col :span="12"> <div class="label">是否通知企业</div> <div class="value">{{ status.isNoticeCompany[details.isNoticeCompany] }}</div> </el-col> <el-col :span="24"> <div class="label">执法过程</div> <div class="value"> <div> <img :src="baseUrl + item" alt="" class="image" v-for="(item, index) in details.regionImgs" :key="index" /> </div> <div> {{ details.regionReason }} </div> </div> </el-col> <el-col :span="12"> <div class="label">执法结果</div> <div class="value"> {{ status.regionStatus[details.regionStatus] }} </div> </el-col> </el-row> </div> </div> <div class="title">执法评价</div> <div> <el-row> <el-col :span="12"> <div class="label">执法专业性</div> <div class="value">司法检查</div> </el-col> <el-col :span="12"> <div class="label">执法合理性</div> <div class="value">司法检查</div> </el-col> <el-col :span="24"> <div class="label">执法认真程度</div> <div class="value">司法检查</div> </el-col> <el-col :span="12"> <div class="label">执法结果满意度</div> <div class="value">司法检查</div> </el-col> </el-row> <div v-if="details.orderStatus == 4"> <div class="title">执法评价</div> <div class=" end-content" v-if="details.evaluateVo"> <!-- <el-row> --> <div v-for="(item,index) in details.evaluateVo.questionList" :key="index"> <div class="label" >{{item.questionName}}</div> <div class="value" v-if="item.questionType == 2"><el-rate v-model="item.questionScore" disabled></el-rate></div> <div class="value" v-if="item.questionType == 1" style="margin: 10px;"> <!-- <el-raido-group v-model="item.remark" > <el-radio v-for="(ele,inde) in item.answerList" :key="inde" :value="ele.answerId"> {{ ele.answerName }} {{ele.answerId}} {{item.remark}} </el-radio> </el-raido-group> --> {{ item.answerList.find((ele) => ele.answerId == item.remark).answerName }} </div> </div> <!-- <el-col :span="12"> <div class="label">执法合理性</div> <div class="value">司法检查</div> </el-col> <el-col :span="24"> <div class="label">执法认真程度</div> <div class="value">司法检查</div> </el-col> <el-col :span="12"> <div class="label">执法结果满意度</div> <div class="value">司法检查</div> </el-col> --> <!-- </el-row> --> </div> </div> </div> <template #footer> @@ -79,11 +119,115 @@ </template> <script setup lang="ts"> const dialogVisible = ref(false) function openDialog() { dialogVisible.value = true import { getOrder } from '@/api/system/company/company' const dialogVisible = ref(false) const details:any = ref({ evaluateVo: { questionList: [] } function closeDialog() { dialogVisible.value = false }) const loading = ref(false) const status = { orderStatusMap: { '-1': '拒绝', 0: '待提交', 1: '已提交', 2: '待执行', 3: '待上报', 4: '已结束', }, regionStatus: { 0: '正常', 1: '停业整顿', }, isNoticeCompany: { 0: '否', 1: '是', } </script> } const baseUrl = import.meta.env.VITE_APP_BASE_API function getDetails(orderId) { getOrder({ orderId }).then(val => { if (val.data.regionImgs) { val.data.regionImgs = val.data.regionImgs.split(',') } if(val.data.evaluateVo && val.data.evaluateVo.questionList) { val.data.evaluateVo.questionList.map(item => { item.remark = Number(item.remark) }) } details.value = val.data console.log(details.value) loading.value = false }).catch(err => { loading.value = false }) } function openDialog(item: any) { // console.log() loading.value = true getDetails(item.orderId) dialogVisible.value = true } function closeDialog() { dialogVisible.value = false } defineExpose({ openDialog, closeDialog }) </script> <style lang="scss" scoped> .title { font-size: 16px; background-color: #f6f6f6; padding: 10px; margin-bottom: 14px; } .el-col { display: flex; justify-content: flex-start; align-items: flex-start; margin-bottom: 15px } .content { margin-bottom: 14px; .label { font-size: 14px; color: #999; width: 110px; text-align: justify; text-align-last: justify; margin-right: 30px; } .value { font-size: 14px; color: #333; width: calc(100% - 120px); } } .end-content{ margin-bottom: 14px; .label { font-size: 14px; color: #999; margin-right: 30px; } .value { font-size: 14px; color: #333; } } .image { width: 80px; height: 80px; display: inline-block; margin-right: 20px; margin-bottom: 20px } </style> src/views/infomanger/enforcement/index.vue
@@ -1,67 +1,187 @@ <template> <div class="app-container"> <el-form inline class="evenly-distributed-labels" ref="formRef" :model="form.queryParams" label-width="80px"> <el-form-item label="执法记录" prop="content"> <el-input placeholder="请输入" v-model="form.queryParams.content"></el-input> <el-form inline class="evenly-distributed-labels" ref="formRef" :model="refValue.queryParams" label-width="80px"> <el-form-item label="执法记录" prop="enforceReason"> <el-input placeholder="请输入" v-model="refValue.quparams.enforceReason" ></el-input> </el-form-item> <el-form-item label="执法类型"> <el-input placeholder="请输入"></el-input> <el-form-item label="执法类型" prop="enforceType"> <el-select v-model="refValue.quparams.enforceType" placeholder="请选择" style="width: 170px;"> <el-option v-for="(item,index) in enforce_type" :label="item.label" :value="item.value" :key="index"></el-option> </el-select> </el-form-item> <el-form-item label="执法时间"> <el-input placeholder="请输入"></el-input> <el-form-item label="执法时间" prop="enforceType"> <el-date-picker v-model="refValue.quparams.pertime" @change="timeChange" format="YYYY-MM-DD" value-format="YYYY-MM-DD" type="daterange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" /> </el-form-item> <el-form-item label="企业"> <el-input placeholder="请输入"></el-input> <el-form-item label="企业" prop="companyName"> <el-input placeholder="请输入" v-model="refValue.quparams.companyName"></el-input> </el-form-item> <el-form-item label="执法部门"> <el-input placeholder="请输入"></el-input> <el-form-item label="执法部门" prop="applyDeptName"> <el-input placeholder="请输入" v-model="refValue.quparams.applyDeptName"></el-input> </el-form-item> <el-form-item label="状态"> <el-input placeholder="请输入"></el-input> <el-form-item label="状态" prop="orderStatus"> <!-- <el-input placeholder="请输入" ></el-input> --> <el-select v-model="refValue.quparams.orderStatus" placeholder="请选择" style="width: 170px;"> <el-option v-for="(item,index) in refValue.orderStatusMap" :lable="index" :value="item"></el-option> </el-select> </el-form-item> <el-form-item label="执法结果"> <el-input placeholder="请输入"></el-input> <el-form-item label="执法结果" prop="enforceResult"> <el-select style="width: 170px;" v-model="refValue.quparams.enforceResult" placeholder="请选择"> <el-option label="正常" value="0"></el-option> <el-option label="停业整顿" value="1"></el-option> </el-select> </el-form-item> <el-form-item label="是否通知"> <el-input placeholder="请输入"></el-input> <el-form-item label="是否通知" prop="isNoticeCompany"> <el-select v-model="refValue.quparams.isNoticeCompany" placeholder="请选择" style="width: 170px;"> <el-option label="否" value="0"></el-option> <el-option label="是" value="1"></el-option> </el-select> </el-form-item> <el-form-item> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button> </el-form-item> </el-form> <el-row class="mt20 mb10"> <!-- <el-row class="mt20 mb10"> <el-col> <el-button icon="Download" type="primary" plain>导出</el-button> </el-col> </el-row> <el-table> <el-table-column label="企业"></el-table-column> <el-table-column label="执法部门"></el-table-column> <el-table-column label="执法人"></el-table-column> <el-table-column label="执法类型"></el-table-column> <el-table-column label="执法主题"></el-table-column> <el-table-column label="申请时间"></el-table-column> <el-table-column label="执法时间"></el-table-column> <el-table-column label="状态"></el-table-column> <el-table-column label="执法结果"></el-table-column> <el-table-column label="是否通知企业"></el-table-column> </el-row> --> <el-table :data="refValue.tableData"> <el-table-column label="企业" prop="companyName"></el-table-column> <el-table-column label="执法部门" prop="applyDeptName"></el-table-column> <el-table-column label="执法人" prop="applyUser"></el-table-column> <el-table-column label="执法类型" prop="enforceType"> <template #default="scope"> {{dispImgType(scope.row.enforceType)}} </template> </el-table-column> <el-table-column label="执法主题" prop="enforceReason"> <template #default="scope"> <el-link type="primary" @click="openDetails(scope.row)">{{ scope.row.enforceReason }}</el-link> </template> </el-table-column> <el-table-column label="申请时间" prop="applyTime" width="180"></el-table-column> <el-table-column label="执法时间" prop="planTime" width="180"></el-table-column> <el-table-column label="状态" prop="orderStatus" width="100"> <template #default="scope"> {{ refValue.orderStatusMap[scope.row.orderStatus] }} </template> </el-table-column> <el-table-column label="执法结果" prop="regionStatus" width="100"> <template #default="scope"> {{ refValue.regionStatus[scope.row.regionStatus] }} </template> </el-table-column> <el-table-column label="是否通知企业" prop="isNoticeCompany" width="120"> <template #default="scope"> {{ refValue.isNoticeCompany[scope.row.isNoticeCompany] }} </template> </el-table-column> </el-table> <pagination v-show="refValue.quparams.total > 0" :total="refValue.quparams.total" v-model:page="refValue.quparams.pageNum" v-model:limit="refValue.quparams.pageSize" @pagination="getList" /> <detailsCom ref="refDetails"></detailsCom> </div> </template> <script lang="ts" setup> import { companyListEnforce } from '@/api/system/company/company' import detailsCom from './component/details.vue' const formRef = ref() const refDetails = ref() const { proxy } = getCurrentInstance() const { enforce_type } = proxy.useDictPer("enforce_type"); const time = ref("") const refValue: any = reactive({ tableData: [], total: 1, quparams: { pageNum: 1, pageSize: 10, total: 1, companyName: '', enforceType: '', applyDeptName: '', orderStatus: "", enforceReason: "", isNoticeCompany: "", enforceTime: "", begineTime: "", endTime: "", }, orderStatusMap: { '-1': '拒绝', 0: '待提交', 1: '已提交', 2: '待执行', 3: '待上报', 4: '已结束', }, regionStatus: { 0: '正常', 1: '停业整顿', }, isNoticeCompany: { 0: '否', 1: '是', } }) const form = reactive({ queryParams: { content: '' } }) const dispImgType = (e: string) => { return enforce_type.value.find((f: any) => f.value == e)?.label; }; function getList(e: { limit: number; page: number }) { refValue.quparams.pageSize = e.limit refValue.quparams.pageNum = e.page companyListEnforceHandle() } function companyListEnforceHandle() { companyListEnforce(refValue.quparams).then(res => { refValue.tableData = res.rows refValue.quparams.total = res.total }) } companyListEnforceHandle() function handleQuery() { refValue.quparams.pageNum = 1 companyListEnforceHandle() } function timeChange(e: string[]) { refValue.quparams.begineTime = e[0] + " " + "00:00:00" refValue.quparams.endTime = e[1] + " " + "23:59:59" } function openDetails(item: any) { refDetails.value.openDialog(item) } function resetQuery() { refValue.quparams = { pageNum: 1, pageSize: 10, total: 1, companyName: '', enforceType: '', applyDeptName: '', orderStatus: "", enforceReason: "", isNoticeCompany: "", begineTime: "", endTime: "", } formRef.value.resetFields() companyListEnforceHandle() } </script> src/views/system/user/index.vue
@@ -100,9 +100,9 @@ <el-tooltip content="分配角色" placement="top" v-if="scope.row.userId !== 1"> <el-button link type="success" icon="CircleCheck" @click="handleAuthRole(scope.row)" v-hasPermi="['system:user:edit']"></el-button> </el-tooltip> <el-tooltip content="重置支付密码" placement="top" v-if="scope.row.userId !== 1"> <!-- <el-tooltip content="重置支付密码" placement="top" v-if="scope.row.userId !== 1"> <el-button link type="danger" icon="Key" @click="handlePayPwd(scope.row)" v-hasPermi="['system:user:resetPwd']"></el-button> </el-tooltip> </el-tooltip> --> </template> </el-table-column> </el-table>