..
liukangdong
2024-06-06 4bb5b47acbe07a47120b6454483ce411295e0716
admin/src/views/task/index.vue
@@ -7,12 +7,13 @@
      @clear="clear"
    />
    <!--  -->
    <el-tabs v-model="filters.queryType">
    <el-tabs v-model="filters.queryType" @tab-click="(e) => getList(1)">
      <el-tab-pane label="待处理" name="0">
        <template #label>
          <span
            >待处理
            <el-badge
              v-if="headData.noticeWaitNum"
              :value="headData.noticeWaitNum"
              class="item"
              type="danger"
@@ -21,21 +22,48 @@
          </span>
        </template>
      </el-tab-pane>
      <el-tab-pane
        :value="headData.noticeDealNum"
        label="已处理"
        name="1"
      ></el-tab-pane>
      <el-tab-pane
        :value="headData.noticeCreateNum"
        label="我发起的"
        name="2"
      ></el-tab-pane>
      <el-tab-pane
        :value="headData.noticeCopyNum"
        label="抄送我的"
        name="3"
      ></el-tab-pane>
      <el-tab-pane :value="headData.noticeDealNum" label="已处理" name="1">
        <template #label>
          <span
            >已处理
            <el-badge
              v-if="headData.noticeDealNum"
              :value="headData.noticeDealNum"
              class="item"
              type="danger"
            >
            </el-badge>
          </span>
        </template>
      </el-tab-pane>
      <el-tab-pane :value="headData.noticeCreateNum" label="我发起的" name="2">
        <template #label>
          <span
            >我发起的
            <el-badge
              v-if="headData.noticeCreateNum"
              :value="headData.noticeCreateNum"
              class="item"
              type="danger"
            >
            </el-badge>
          </span>
        </template>
      </el-tab-pane>
      <el-tab-pane :value="headData.noticeCopyNum" label="抄送我的" name="3">
        <template #label>
          <span
            >抄送我的
            <el-badge
              v-if="headData.noticeCopyNum"
              :value="headData.noticeCopyNum"
              class="item"
              type="danger"
            >
            </el-badge>
          </span>
        </template>
      </el-tab-pane>
    </el-tabs>
    <el-table
      v-loading="loading"
@@ -46,19 +74,24 @@
    >
      <el-table-column prop="name" label="任务类型" min-width="100">
        <template v-slot="scope">
          <span>{{ cateList[scope.row.objType].name }}</span>
          <span
            v-if="
              (scope.row.objType || scope.row.objType == 0) &&
              cateList[scope.row.objType].name
            "
            >{{ cateList[scope.row.objType].name }}</span
          >
        </template>
      </el-table-column>
      <el-table-column
        prop="name"
        label="提交人"
        min-width="80"
      ></el-table-column>
      <el-table-column
        prop="createDate"
        label="提交时间"
        min-width="100"
      ></el-table-column>
      <el-table-column label="提交人" min-width="80">
        <template v-slot="scope">
          <span v-if="scope.row.title">{{
            scope.row.title.split(" - ")[1]
          }}</span>
        </template>
      </el-table-column>
      <el-table-column prop="createDate" label="提交时间" min-width="100">
      </el-table-column>
      <el-table-column label="操作" width="230" fixed="right">
        <template slot-scope="{ row }">
          <el-button
@@ -76,13 +109,26 @@
      :pagination="pagination"
    />
    <TaskDetail v-if="isShowDetail" ref="DetailRef" />
    <VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" />
    <DangetDetail v-if="isShowDanger" ref="DangetDetailRef" />
    <!-- 用车申请 -->
    <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getList"/>
    <!-- 隐患 -->
    <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getList"/>
    <!-- 预约详情 -->
     <OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
  </div>
</template>
<script>
import Pagination from '@/components/common/Pagination'
import QueryForm from '@/components/common/QueryForm'
import TaskDetail from './taskDetail.vue'
import TaskDetail from './visSubDetail.vue'
import VisReportDetail from './visReportDetail.vue'
import DangetDetail from './dangetDetail.vue'
import OperaCarUseBookWindow from '@/components/business/OperaCarUseBookWindow'
import OperaHiddenDangerWindow from '@/components/business/OperaHiddenDangerWindow'
import OperaVisitsDesWindow from '@/components/business/OperaVisitsDesWindow'
import {
  taskCenterHead,
  taskCenterPage
@@ -90,14 +136,21 @@
export default {
  components: {
    TaskDetail,
    VisReportDetail,
    DangetDetail,
    QueryForm,
    Pagination
    Pagination,
    OperaCarUseBookWindow,
    OperaHiddenDangerWindow,
    OperaVisitsDesWindow
  },
  data () {
    return {
      isShowDetail: false,
      isShowReport: false,
      isShowDanger: false,
      filters: {
        queryType: 0
        queryType: '0'
      },
      queryFormConfig: {
        formItems: [
@@ -105,12 +158,13 @@
            filed: 'type',
            type: 'select',
            label: '任务类型',
            clearable: false,
            options: [
              { label: '访客申请', value: 0 },
              { label: '访客报备', value: 1 },
              { label: '用车申请', value: 2 },
              { label: '隐患随手拍', value: 3 },
              { label: '物流车申请', value: 4 }
              { label: '访客申请', value: '0' },
              { label: '访客报备', value: '1' },
              { label: '用车申请', value: '2' },
              { label: '隐患随手拍', value: '3' },
              { label: '物流车申请', value: '4' }
            ]
          },
          {
@@ -121,15 +175,11 @@
        ],
        online: true
      },
      loading: false,
      sorting: false,
      searchForm: {
        // type: 1
      },
      pagination: {
        capacity: 10,
        page: 1
      },
      loading: false,
      dataList: [],
      headData: {},
      total: 0,
@@ -148,23 +198,49 @@
    this.getList()
  },
  methods: {
    handleDetail () {
      this.isShowDetail = true
      this.$nextTick(() => {
        this.$refs.DetailRef.isShowModal = true
      })
    handleDetail (row) {
      if (row.objType === 2) {
        this.$refs.OperaDetailsWindow.open('公务车申请详情', row)
        return
      }
      if (row.objType === 1) {
        this.isShowReport = true
        this.$nextTick(() => {
          this.$refs.VisReportDetailRef.id = row.objId
          this.$refs.VisReportDetailRef.type = row.objType
          this.$refs.VisReportDetailRef.getDetail()
          this.$refs.VisReportDetailRef.isShowModal = true
        })
        return
      }
      if (row.objType === 3) {
        const obj = { ...row, id: row.objId }
        this.$refs.OperaHiddenDangerWindow.open('隐患随手拍详情', obj)
        return
      }
      if (row.objType === 0) {
        this.isShowDetail = true
        this.$nextTick(() => {
          this.$refs.DetailRef.id = row.objId
          this.$refs.DetailRef.type = row.objType
          this.$refs.DetailRef.getDetail()
          this.$refs.DetailRef.isShowModal = true
        })
      }
    },
    getList (page) {
      console.log(this.filters)
      const { filters, pagination } = this
      if (filters.selDate && filters.length > 0) {
      if (filters.selDate && filters.selDate.length > 0) {
        filters.startDate = filters.selDate[0]
        filters.endDate = filters.selDate[1]
      } else {
        filters.startDate = null
        filters.endDate = null
      }
      pagination.page = page || pagination.page
      taskCenterPage({
        model: { ...filters },
        model: { ...filters, queryType: Number(filters.queryType) },
        ...pagination
      }).then(res => {
        console.log('res', res)
@@ -181,7 +257,12 @@
        this.headData = res
      })
    },
    clear () { },
    clear () {
      this.filters = {
        queryType: '0'
      }
      this.getList(0)
    },
    handleSizeChange (capacity) {
      this.pagination.capacity = capacity
    }