index.vue 9.27 KB
<template>
    <div class="SystemInfo item-box common-info-box">
   <div class="item-title">上报线索研判</div>
   <div class="item-body">
       <div class="NCC-common-layout">
       <div class="NCC-common-layout-center">
           <el-row class="NCC-common-search-box" :gutter="16">
               <el-form @submit.native.prevent size="mini">
                   <el-col :span="4">
                       <el-form-item label="">
                           <el-input v-model="query.platformName" placeholder="请输入平台名称" clearable />	
                       </el-form-item>
                   </el-col>
                   <el-col :span="4">
                       <el-form-item label="">
                           <el-select v-model="query.platformType" placeholder="请选择平台类型" clearable >
                               <el-option v-for="(item, index) in platformTypeOptions" :key="index" :label="item.fullName" :value="item.id"  />
                           </el-select>
                       </el-form-item>
                   </el-col>
                   <el-col :span="4">
                       <el-form-item label="">
                           <depSelect v-model="query.department" placeholder="请选择部门" />
                       </el-form-item>
                   </el-col>
                   <el-col :span="4">
                       <el-form-item label="">
                           <el-select v-model="query.questionType" placeholder="请选择问题类型" >
                               <el-option v-for="(item, index) in questionTypeOptions" :key="index" :label="item.fullName" :value="item.id"  />
                           </el-select>
                       </el-form-item>
                   </el-col>
                   <el-col :span="4">
                       <el-form-item label="">
                           <el-select v-model="query.questionClass" placeholder="请选择问题分类" clearable >
                               <el-option v-for="(item, index) in questionClassOptions" :key="index" :label="item.fullName" :value="item.id"  />
                           </el-select>
                       </el-form-item>
                   </el-col>
                   <el-col :span="4">
                       <el-form-item>
                           <el-button type="primary" icon="el-icon-search" @click="search()">查询</el-button>
                       </el-form-item>
                   </el-col>
               </el-form>
           </el-row>
           <div class="NCC-common-layout-main NCC-flex-main">
               <NCC-table v-loading="listLoading" :data="list">
                   <el-table-column show-overflow-tooltip prop="platformName" label="平台名称" align="left" />
                   <el-table-column show-overflow-tooltip label="平台类型" prop="platformType" align="left">
                           <template slot-scope="scope">{{ scope.row.platformType | dynamicText(platformTypeOptions) }}</template>
                   </el-table-column>
                   <el-table-column show-overflow-tooltip label="问题类型" prop="questionType" align="left">
                           <template slot-scope="scope">{{ scope.row.questionType | dynamicText(questionTypeOptions) }}</template>
                   </el-table-column>
                   <el-table-column show-overflow-tooltip prop="link" label="有害链接" align="left" />
                   <el-table-column show-overflow-tooltip prop="disposalSuggestions" label="处置建议" align="left" />
                   <el-table-column show-overflow-tooltip prop="id" label="主键" align="left" />
                   <el-table-column show-overflow-tooltip prop="department" label="部门" align="left" />
                   <el-table-column show-overflow-tooltip label="问题分类" prop="questionClass" align="left">
                           <template slot-scope="scope">{{ scope.row.questionClass | dynamicText(questionClassOptions) }}</template>
                   </el-table-column>
                   <el-table-column show-overflow-tooltip label="阶段" prop="stage" align="left">
                           <template slot-scope="scope">{{ scope.row.stage | dynamicText(stageOptions) }}</template>
                   </el-table-column>
                   <el-table-column label="操作" fixed="right" width="100">
                        <template slot-scope="scope">
                           <el-button type="text" @click="addOrUpdateHandle(scope.row.id)" >判研</el-button>
                       </template>
                   </el-table-column>
               </NCC-table>
               <pagination :total="total" :page.sync="listQuery.currentPage" :limit.sync="listQuery.pageSize" @pagination="initData" />
           </div>
       </div>
       <NCC-Form v-if="formVisible" ref="NCCForm" @refresh="refresh" />
   </div>
   </div>
   </div>
   
</template>
<script>
   import request from '@/utils/request'
   import { getDictionaryDataSelector } from '@/api/systemData/dictionary'
   import NCCForm from './Form'
   import { getListForJudge, previewDataInterface } from '@/api/systemData/dataInterface'
   export default {
       components: { NCCForm },
       data() {
           return {
               showAll: false,
               query: {
                   platformName:undefined,
                   platformType:undefined,
                   department:undefined,
                   questionType:undefined,
                   questionClass:undefined,
               },
               list: [],
               listLoading: true,
               multipleSelection: [], total: 0,
               listQuery: {
                   currentPage: 1,
                   pageSize: 20,
                   sort: "desc",
                   sidx: "",
               },
               formVisible: false,
               exportBoxVisible: false,
               columnList: [
                   { prop: 'platformName', label: '平台名称' },
                   { prop: 'platformType', label: '平台类型' },
                   { prop: 'questionType', label: '问题类型' },
                   { prop: 'link', label: '有害链接' },
                   { prop: 'disposalSuggestions', label: '处置建议' },
                   { prop: 'id', label: '主键' },
                   { prop: 'department', label: '部门' },
                   { prop: 'questionClass', label: '问题分类' },
                   { prop: 'stage', label: '阶段' },
               ],
               sourceOptions:[{"fullName":"市网信办线索","id":"市网信办线索"},{"fullName":"自主巡查发现","id":"自主巡查发现"}],
               platformTypeOptions : [],
               questionTypeOptions : [],
               questionClassOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
               stageOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}],
           }
       },
       computed: {},
       created() {
           this.initData()
           this.getplatformTypeOptions();
           this.getquestionTypeOptions();
       },
       methods: {
           getplatformTypeOptions(){
               getDictionaryDataSelector('576279943168656645').then(res => {
                   this.platformTypeOptions = res.data.list
               });
           },
           getquestionTypeOptions(){
               getDictionaryDataSelector('577006814432855301').then(res => {
                   this.questionTypeOptions = res.data.list
               });
           },
           initData() {
               this.listLoading = true;
               let _query = {
                   ...this.listQuery,
                   ...this.query
               };
               let query = {}
               for (let key in _query) {
                   if (Array.isArray(_query[key])) {
                       query[key] = _query[key].join()
                   } else {
                       query[key] = _query[key]
                   }
               }
               getListForJudge(query).then(res => {
                   this.list = res.data.list
                   this.total = res.data.pagination.total
                   this.listLoading = false
               })
           },
          
           addOrUpdateHandle(id, isDetail) {
               this.formVisible = true
               this.$nextTick(() => {
                   this.$refs.NCCForm.init(id, isDetail)
               })
           },
           search() {
               this.listQuery = {
                   currentPage: 1,
                   pageSize: 20,
                   sort: "desc",
                   sidx: "",
               }
               this.initData()
           },
           refresh(isrRefresh) {
               this.formVisible = false
               if (isrRefresh) this.reset()
           },
           reset() {
               for (let key in this.query) {
                   this.query[key] = undefined
               }
               this.listQuery = {
                   currentPage: 1,
                   pageSize: 20,
                   sort: "desc",
                   sidx: "",
               }
               this.initData()
           }
       }
   }
</script>
<style scoped lang="scss">
.common-info-box {
 :deep(.el-table__body-wrapper.is-scrolling-none) {
   height: calc(100% - 47px);
   overflow-y: scroll;
 }
 .item-body {
   height: calc(100% - 35px);
 }
}
</style>