沈丘营商办后台前端项目
wjt
2024-06-22 a26af4a8afc3c1b59a33c0642cd07778a89e5813
投书处理天机
10个文件已修改
607 ■■■■ 已修改文件
src/api/system/company/company.ts 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.ts 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/permission.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/dict.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/infomanger/companymanger/components/judge.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/infomanger/complating/component/index.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/infomanger/complating/index.vue 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/infomanger/enforcement/component/details.vue 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/infomanger/enforcement/index.vue 182 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/company/company.ts
@@ -182,3 +182,46 @@
    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 v-if="details.orderStatus == 4">
      <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">{{ details.enforceReason || '' }}</div>
          </el-col>
          <el-col :span="12">
            <div class="label">是否通知企业</div> <div class="value">司法检查</div>
              <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>
              <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">司法检查</div>
              <div class="label">执法结果</div>
              <div class="value">
                {{ status.regionStatus[details.regionStatus] }}
              </div>
          </el-col>
        </el-row>
      </div>
      </div>
      <div v-if="details.orderStatus == 4">
      <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>
        <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>
              <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 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">
import { getOrder } from '@/api/system/company/company'
  const dialogVisible = ref(false)
  function openDialog() {
const details:any = ref({
  evaluateVo: {
    questionList: []
  }
})
const loading = ref(false)
const status = {
  orderStatusMap: {
    '-1': '拒绝',
    0: '待提交',
    1: '已提交',
    2: '待执行',
    3: '待上报',
    4: '已结束',
  },
  regionStatus: {
    0: '正常',
    1: '停业整顿',
  },
  isNoticeCompany: {
    0: '否',
    1: '是',
  }
}
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>