Selaa lähdekoodia

完善首页和稽核任务的功能

yangll 4 vuotta sitten
vanhempi
commit
e9dad5f4ba

+ 5 - 2
src/views/dashboard/Analysis.vue

@@ -1,9 +1,10 @@
 <template>
   <div>
-    <index-chart v-if="indexStyle==1"></index-chart>
+<!--    <index-chart v-if="indexStyle==1"></index-chart>-->
+    <index-chart2 v-if="indexStyle==1"></index-chart2>
     <index-bdc v-if="indexStyle==2"></index-bdc>
     <index-task v-if="indexStyle==3"></index-task>
-    <div style="width: 100%;text-align: right;margin-top: 20px">
+    <div style="width: 100%;text-align: right;margin-top: 20px;display: none;">
       请选择首页样式:
       <a-radio-group v-model="indexStyle">
         <a-radio :value="1">统计图表</a-radio>
@@ -16,6 +17,7 @@
 
 <script>
   import IndexChart from './IndexChart'
+  import IndexChart2 from './IndexChart2'
   import IndexTask from "./IndexTask"
   import IndexBdc from './IndexBdc'
 
@@ -23,6 +25,7 @@
     name: "Analysis",
     components: {
       IndexChart,
+      IndexChart2,
       IndexTask,
       IndexBdc
     },

+ 546 - 0
src/views/dashboard/IndexChart2.vue

@@ -0,0 +1,546 @@
+<template>
+  <div class="page-header-index-wide">
+    <a-row :gutter="24">
+      <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '12px' }">
+        <a-card :loading="loading" :bordered="false">
+          <template v-slot:title><a-icon type="tags" theme="twoTone"/>系统公告</template>
+          <a slot="extra" @click="showMoreMsg">更多>></a>
+
+          <a-table :dataSource="announcementList" size="small" rowKey="index" :columns="columns" :pagination="false">
+
+          </a-table>
+        </a-card>
+      </a-col>
+      <a-col :sm="24" :md="12" :xl="12" :style="{ marginBottom: '24px' }">
+
+        <a-card :loading="loading" :bordered="false">
+          <template v-slot:title><a-icon type="tags" theme="twoTone"/>部门公告</template>
+          <a slot="extra" @click="showMoreMsg">更多>></a>
+          <a-table :dataSource="announcementList" size="small" rowKey="index" :columns="columns" :pagination="false">
+
+          </a-table>
+        </a-card>
+      </a-col>
+
+    </a-row>
+
+    <a-card :loading="loading" :bordered="false" :body-style="{padding: '0'}">
+      <template v-if="isManager">
+        <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '12px' }">
+          <a-card :loading="loading" :bordered="true" :style="{ margin: '12px' }">
+            <template v-slot:title><a-icon type="tags" theme="twoTone"/>最新动态</template>
+            <a slot="extra" @click="showMoreTask">更多>></a>
+            <template v-if="recentWorkList && recentWorkList.length === 0">
+              <a-empty />
+            </template>
+            <template v-else>
+              <a-timeline>
+                <a-timeline-item v-for="recent in recentWorkList">{{recent.createTime}} {{recent.realname}}提交了【{{recent.customerName}}】的资料</a-timeline-item>
+              </a-timeline>
+            </template>
+          </a-card>
+        </a-col>
+        <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+          <a-card :loading="loading" :bordered="true" :style="{ margin: '12px' }">
+            <template v-slot:title><a-icon type="tags" theme="twoTone"/>我的任务</template>
+            <a slot="extra" @click="showMoreTask">更多>></a>
+            <template v-if="subTaskWorkList && subTaskWorkList.length === 0">
+              <a-empty />
+            </template>
+            <template v-else>
+              <a-table :dataSource="subTaskWorkList" size="small" rowKey="index" :columns="subTaskWorkColumns" :pagination="false">
+              </a-table>
+            </template>
+
+          </a-card>
+        </a-col>
+        <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+          <a-card :loading="loading" :bordered="true" :style="{ margin: '12px' }">
+            <template v-slot:title><a-icon type="tags" theme="twoTone"/>本月目标</template>
+            <a slot="extra" @click="showMoreTask">更多>></a>
+            <template v-if="targetWorkObj.allCount > 0">
+              <a-descriptions size="small" bordered :column="1">
+                <a-descriptions-item label="总数">{{ targetWorkObj.allCount }}</a-descriptions-item>
+                <a-descriptions-item label="未完善">{{ targetWorkObj.undoCount }}</a-descriptions-item>
+                <a-descriptions-item label="待稽核">{{ targetWorkObj.uncheckCount }}</a-descriptions-item>
+                <a-descriptions-item label="待整改">{{ targetWorkObj.checkedCount }}</a-descriptions-item>
+                <a-descriptions-item label="通过">{{ targetWorkObj.doneCount }}</a-descriptions-item>
+              </a-descriptions>
+            </template>
+            <template v-else>
+              <a-empty />
+            </template>
+          </a-card>
+        </a-col>
+        <a-col :sm="24" :md="24" :xl="24" :style="{ marginBottom: '24px' }">
+          <a-table size="small" :style="{ margin: '0px 12px 0px 12px' }"
+                   :dataSource="mainTaskList"
+                   rowKey="id"
+                   :columns="taskColumns"
+                   :customRow="customRow"
+                   :rowSelection="{type:'radio',selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+                   :pagination="false">
+          </a-table>
+        </a-col>
+      </template>
+      <template v-else>
+        <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '12px' }">
+          <a-card :loading="loading" :bordered="true" :style="{ margin: '12px' }">
+            <template v-slot:title><a-icon type="tags" theme="twoTone"/>最新动态</template>
+            <a slot="extra" @click="showMoreTask">更多>></a>
+            <template v-if="recentInfoList && recentInfoList.length === 0">
+              <a-empty />
+            </template>
+            <template v-else>
+              <a-timeline>
+                <a-timeline-item v-for="recent in recentInfoList">{{recent.createTime}} {{recent.realname}}稽核了【{{recent.customerName}}】的资料</a-timeline-item>
+              </a-timeline>
+            </template>
+          </a-card>
+        </a-col>
+        <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+          <a-card :loading="loading" :bordered="true" :style="{ margin: '12px' }">
+            <template v-slot:title><a-icon type="tags" theme="twoTone"/>我的任务</template>
+            <a slot="extra" @click="showMoreTask">更多>></a>
+            <template v-if="subTaskInfoList && subTaskInfoList.length === 0">
+              <a-empty />
+            </template>
+            <template v-else>
+              <a-table :dataSource="subTaskInfoList" size="small" rowKey="index" :columns="subTaskInfoColumns" :pagination="false">
+              </a-table>
+            </template>
+
+          </a-card>
+        </a-col>
+        <a-col :sm="24" :md="12" :xl="8" :style="{ marginBottom: '24px' }">
+          <a-card :loading="loading" :bordered="true" :style="{ margin: '12px' }">
+            <template v-slot:title><a-icon type="tags" theme="twoTone"/>本月目标</template>
+            <a slot="extra" @click="showMoreTask">更多>></a>
+            <template v-if="targetInfoObj.allCount > 0">
+              <a-descriptions size="small" bordered :column="1">
+                <a-descriptions-item label="总数">{{targetInfoObj.allCount}}</a-descriptions-item>
+                <a-descriptions-item label="未完善">{{targetInfoObj.undoCount}}</a-descriptions-item>
+                <a-descriptions-item label="待稽核">{{targetInfoObj.uncheckCount}}</a-descriptions-item>
+                <a-descriptions-item label="待整改">{{targetInfoObj.checkedCount}}</a-descriptions-item>
+                <a-descriptions-item label="通过">{{targetInfoObj.doneCount}}</a-descriptions-item>
+              </a-descriptions>
+            </template>
+            <template v-else>
+              <a-empty />
+            </template>
+          </a-card>
+        </a-col>
+        <a-col :sm="24" :md="24" :xl="24" :style="{ marginBottom: '24px' }">
+          <a-table size="small" :style="{ margin: '0px 12px 0px 12px' }"
+                   :dataSource="mainTaskList"
+                   rowKey="id"
+                   :columns="taskColumns"
+                   :customRow="customRow"
+                   :rowSelection="{type:'radio',selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+                   :pagination="false">
+          </a-table>
+        </a-col>
+      </template>
+
+    </a-card>
+
+    <a-row>
+      <a-col :span="24">
+        <a-card :loading="loading" :bordered="false" title="最近一周访问量统计" :style="{ marginTop: '24px' }">
+          <a-row>
+            <a-col :span="6">
+              <head-info title="今日IP" :content="loginfo.todayIp"></head-info>
+            </a-col>
+            <a-col :span="2">
+              <a-spin class='circle-cust'>
+                <a-icon slot="indicator" type="environment" style="font-size: 24px"  />
+              </a-spin>
+            </a-col>
+            <a-col :span="6">
+              <head-info title="今日访问" :content="loginfo.todayVisitCount"></head-info>
+            </a-col>
+            <a-col :span="2">
+              <a-spin class='circle-cust'>
+                <a-icon slot="indicator" type="team" style="font-size: 24px"  />
+              </a-spin>
+            </a-col>
+            <a-col :span="6">
+              <head-info title="总访问量" :content="loginfo.totalVisitCount"></head-info>
+            </a-col>
+            <a-col :span="2">
+              <a-spin class='circle-cust'>
+                <a-icon slot="indicator" type="rise" style="font-size: 24px"  />
+              </a-spin>
+            </a-col>
+          </a-row>
+          <line-chart-multid :fields="visitFields" :dataSource="visitInfo"></line-chart-multid>
+        </a-card>
+      </a-col>
+    </a-row>
+  </div>
+</template>
+
+<script>
+  import ChartCard from '@/components/ChartCard'
+  import ACol from "ant-design-vue/es/grid/Col"
+  import ATooltip from "ant-design-vue/es/tooltip/Tooltip"
+  import MiniArea from '@/components/chart/MiniArea'
+  import MiniBar from '@/components/chart/MiniBar'
+  import MiniProgress from '@/components/chart/MiniProgress'
+  import RankList from '@/components/chart/RankList'
+  import Bar from '@/components/chart/Bar'
+  import LineChartMultid from '@/components/chart/LineChartMultid'
+  import HeadInfo from '@/components/tools/HeadInfo.vue'
+
+  import Trend from '@/components/Trend'
+  import { getLoginfo,getVisitInfo } from '@/api/api'
+  import { httpAction, getAction } from '@api/manage'
+
+  const rankList = []
+  for (let i = 0; i < 7; i++) {
+    rankList.push({
+      name: '白鹭岛 ' + (i+1) + ' 号店',
+      total: 1234.56 - i * 100
+    })
+  }
+  const barData = []
+  for (let i = 0; i < 12; i += 1) {
+    barData.push({
+      x: `${i + 1}月`,
+      y: Math.floor(Math.random() * 1000) + 200
+    })
+  }
+  export default {
+    name: "IndexChart2",
+    components: {
+      ATooltip,
+      ACol,
+      ChartCard,
+      MiniArea,
+      MiniBar,
+      MiniProgress,
+      RankList,
+      Bar,
+      Trend,
+      LineChartMultid,
+      HeadInfo
+    },
+    data() {
+      return {
+        loading: true,
+        center: null,
+        rankList,
+        barData,
+        loginfo:{},
+        visitFields:['ip','visit'],
+        visitInfo:[],
+        indicator: <a-icon type="loading" style="font-size: 24px" spin />,
+        url: {
+          taskList: '/smsCheck/index/taskList',
+          typeWork: '/smsCheck/index/typeWork',
+          typeInfo: '/smsCheck/index/typeInfo',
+        },
+        announcementList: [],
+        taskId: '',
+        infoLogList: [],
+        isManager: false,
+        recentWorkList: [],
+        subTaskWorkList: [],
+        targetWorkObj: [],
+        recentInfoList: [],
+        subTaskInfoList: [],
+        targetInfoObj: [],
+        dataSource2:[],
+        mainTaskList: [],
+        selectedRowKeys: [],
+        columns:[
+          {
+          title: '标题',
+          align:"left",
+          dataIndex: 'titile'
+        },{
+          title: '消息类型',
+          align:"center",
+          dataIndex: 'msgCategory',
+          customRender: function (text) {
+            if (text == '1') {
+              return "通知公告";
+            } else if (text == "2") {
+              return "系统消息";
+            } else {
+              return text;
+            }
+          }
+        },{
+          title: '发布人',
+          align:"center",
+          dataIndex: 'sender'
+        },{
+          title: '发布时间',
+          align:"center",
+          dataIndex: 'sendTime'
+        },{
+          title: '优先级',
+          align:"center",
+          dataIndex: 'priority',
+          customRender:function (text) {
+            if(text=='L'){
+              return "低";
+            }else if(text=="M"){
+              return "中";
+            }else if(text=="H"){
+              return "高";
+            } else {
+              return text;
+            }
+          }
+        }],
+        subTaskWorkColumns:[
+          {
+          title: '客户名称',
+          align:"left",
+          dataIndex: 'customerName'
+        },{
+          title: '服务号码',
+          align:"left",
+          dataIndex: 'smsNumber'
+        },{
+            title: '操作',
+            align:"left",
+            dataIndex: 'op',
+            customRender: function (text,record) {
+              return <a>稽核</a>
+            }
+          }
+        ],
+        subTaskInfoColumns:[
+          {
+            title: '客户名称',
+            align:"left",
+            dataIndex: 'customerName'
+          },{
+            title: '服务号码',
+            align:"left",
+            dataIndex: 'smsNumber'
+          },{
+            title: '操作',
+            align:"left",
+            dataIndex: 'op',
+            customRender: function (text,record) {
+              return <a>完善</a>
+            }
+          }
+        ],
+        taskColumns:[
+          {
+          title: '任务名称',
+          align:"left",
+          dataIndex: 'taskName'
+        },{
+          title: '任务状态',
+          align:"left",
+          dataIndex: 'taskState_dictText'
+        },{
+          title: '任务开始时间',
+          align:"left",
+          dataIndex: 'taskStartTime'
+        },{
+          title: '任务结束时间',
+          align:"left",
+          dataIndex: 'taskEndTime'
+        },{
+          title: '描述',
+          align:"left",
+          dataIndex: 'description'
+        }],
+      }
+    },
+    created() {
+      setTimeout(() => {
+        this.loading = !this.loading
+      }, 1000)
+      this.initLogInfo();
+    },
+    methods: {
+      initLogInfo () {
+        getLoginfo(null).then((res)=>{
+          if(res.success){
+            Object.keys(res.result).forEach(key=>{
+              res.result[key] =res.result[key]+""
+            })
+            this.loginfo = res.result;
+          }
+        })
+        getVisitInfo().then(res=>{
+          if(res.success){
+             this.visitInfo = res.result;
+           }
+         })
+        this.getMsgList();
+        this.getMainTaskList();
+      },
+      getMsgList() {
+        let httpUrl = '/sys/sysAnnouncementSend/getMyAnnouncementSend?pageNo=1&pageSize=5';
+        let params = {};
+        let that = this;
+        // 发送请求
+        getAction(httpUrl, params)
+          .then((res) => {
+            if(res.success){
+              that.announcementList = res.result.records;
+            }else{
+              that.announcementList = [];
+            }
+          }).finally(() => {
+
+        })
+      },
+      getMainTaskList() {
+        let httpUrl = this.url.taskList + '?&column=createTime&order=desc';
+        let params = {};
+        let that = this;
+        // 发送请求
+        getAction(httpUrl, params)
+          .then((res) => {
+            if(res.success){
+              that.mainTaskList = res.result.records;
+              that.isManager = res.result.isManager;
+              if(that.mainTaskList && that.mainTaskList.length > 0) {
+                that.taskId = that.mainTaskList[0].id;
+                that.selectedRowKeys = [that.taskId];
+                // 管理员
+                if (that.isManager) {
+                  that.getWorkList(that.taskId);
+                } else {
+                  that.getInfoList(that.taskId);
+                }
+              }
+
+            }else{
+              that.mainTaskList = [];
+            }
+          }).finally(() => {
+
+        })
+      },
+      getWorkList(taskId) {
+        let httpUrl = this.url.typeWork +'?taskId=' + taskId;
+        httpUrl += '&pageNo=1&pageSize=5&column=createTime&order=desc';
+        let params = {};
+        let that = this;
+        // 发送请求
+        getAction(httpUrl, params)
+          .then((res) => {
+            if(res.success){
+              that.recentWorkList = res.result.recentList;
+              that.subTaskWorkList = res.result.subTaskList;
+              that.targetWorkObj = res.result.targetObj;
+            }else{
+              that.infoLogList = [];
+            }
+          }).finally(() => {
+
+        })
+      },
+      getInfoList(taskId) {
+        let httpUrl = this.url.typeInfo +'?taskId=' + taskId;
+        httpUrl += '&pageNo=1&pageSize=5&column=createTime&order=desc';
+        let params = {};
+        let that = this;
+        // 发送请求
+        getAction(httpUrl, params)
+          .then((res) => {
+            if(res.success){
+              that.recentInfoList = res.result.recentList;
+              that.subTaskInfoList = res.result.subTaskList;
+              that.targetInfoObj = res.result.targetObj;
+            }else{
+              that.recentInfoList = [];
+              that.subTaskInfoList = [];
+              that.targetInfoObj = {};
+            }
+          }).finally(() => {
+
+        })
+      },
+      showMoreMsg() {
+        this.$router.push({ path: '/isps/userAnnouncement' })
+      },
+      showMoreTask() {
+        this.$router.push({ path: '/smscheck/task/main' })
+      },
+      onSelectChange(selectedRowKeys, selectionRows) {
+        this.selectedRowKeys = selectedRowKeys;
+        this.selectionRows = selectionRows;
+      },
+      customRow(record, index) {
+        let that = this;
+        return {
+          on: {
+            // 鼠标单击行
+            click: (event) => {
+              that.taskId = record.id;
+              that.selectedRowKeys = [record.id];
+              if (that.isManager) {
+                that.getWorkList(that.taskId);
+              } else {
+                that.getInfoList(that.taskId);
+              }
+            },
+          }
+        }
+
+      },
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+  .circle-cust{
+    position: relative;
+    top: 28px;
+    left: -100%;
+  }
+  .extra-wrapper {
+    line-height: 55px;
+    padding-right: 24px;
+
+    .extra-item {
+      display: inline-block;
+      margin-right: 24px;
+
+      a {
+        margin-left: 24px;
+      }
+    }
+  }
+
+  /* 首页访问量统计 */
+  .head-info {
+    position: relative;
+    text-align: left;
+    padding: 0 32px 0 0;
+    min-width: 125px;
+
+    &.center {
+      text-align: center;
+      padding: 0 32px;
+    }
+
+    span {
+      color: rgba(0, 0, 0, .45);
+      display: inline-block;
+      font-size: .95rem;
+      line-height: 42px;
+      margin-bottom: 4px;
+    }
+    p {
+      line-height: 42px;
+      margin: 0;
+      a {
+        font-weight: 600;
+        font-size: 1rem;
+      }
+    }
+  }
+</style>

+ 3 - 2
src/views/smscheck/TaskMain.vue

@@ -23,7 +23,7 @@
                      @goList="showList"
                      @goCheckList="showCheckList"/>
   <!-- 稽核日志详情页 -->
-  <task-check-check v-else-if="showType === 'checkLog'"
+  <task-check-log v-else-if="showType === 'checkLog'"
                     :checkInfo="checkInfo"
                     @goList="showList"
                     @goCheckList="showCheckList"/>
@@ -41,8 +41,8 @@
   import TaskImport from './modules/TaskImport'
   import TaskCheckList from './modules/TaskCheckList'
   import TaskCheckCheck from './modules/TaskCheckCheck'
-  import TaskCheckLog from './modules/TaskCheckLog'
   import TaskCheckDetail from './modules/TaskCheckDetail'
+  import TaskCheckLog from './modules/TaskCheckLog'
 
   export default {
     name: 'TaskMain',
@@ -53,6 +53,7 @@
       TaskCheckList,
       TaskCheckCheck,
       TaskCheckDetail,
+      TaskCheckLog,
     },
     data () {
       return {

+ 2 - 2
src/views/smscheck/modules/TaskCheckCheck.vue

@@ -212,12 +212,12 @@ export default {
         // 验证通过
         if (valid) {
 
+          that.model.taskId = that.checkInfo.task.id;
           that.model.infoId = that.checkInfo.info.id;
           that.model.customerNo = that.checkInfo.info.customerNo;
+          that.model.customerName = that.checkInfo.info.customerName;
           that.model.staffNo = that.checkInfo.info.staffNo;
 
-          console.log(that.checkInfo)
-
           let httpUrl = this.url.check;
           let method = 'post';
           // 发送请求

+ 42 - 45
src/views/smscheck/modules/TaskCheckList.vue

@@ -77,34 +77,17 @@
           class="j-table-force-nowrap"
           @change="handleTableChange">
 
-          <template slot="htmlSlot" slot-scope="text">
-            <div v-html="text"></div>
-          </template>
-          <template slot="imgSlot" slot-scope="text,record">
-            <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-            <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
-          </template>
-          <template slot="fileSlot" slot-scope="text">
-            <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-            <a-button
-              v-else
-              :ghost="true"
-              type="primary"
-              icon="download"
-              size="small"
-              @click="downloadFile(text)">
-              下载
-            </a-button>
-          </template>
 
           <template slot="action" slot-scope="text, record">
-<!--          <a @click="handleEdit(record)">编辑</a>-->
 
-<!--          <a-divider type="vertical" />-->
-            <template v-if="record.checkState != 5">
+            <template v-if="record.checkState != 3 && record.checkState != 5">
               <a @click="noticeDeal(record)">催办</a>
               <a-divider type="vertical" />
             </template>
+            <template v-if="record.checkState >= 3">
+              <a @click="showCheckLog(record)">历史</a>
+              <a-divider type="vertical" />
+            </template>
 
             <a-dropdown>
               <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
@@ -112,6 +95,7 @@
                 <a-menu-item>
                   <a @click="showCheckCheck(record)">稽核</a>
                 </a-menu-item>
+
                 <a-menu-item>
                   <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                     <a>删除</a>
@@ -139,7 +123,7 @@
 
 <script>
 
-import { httpAction, getAction } from '@api/manage'
+import { postAction, getAction, httpAction } from '@api/manage'
 import '@/assets/less/TableExpand.less'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 
@@ -231,7 +215,7 @@ export default {
           dataIndex: 'action',
           align:"center",
           fixed:"right",
-          width:147,
+          width: 160,
           scopedSlots: { customRender: 'action' }
         }
       ],
@@ -242,9 +226,9 @@ export default {
       url: {
         list: "/smsCheck/customerInfo/list",
         count: "/smsCheck/customerInfo/count",
-        delete: "/smsCheck/task/delete",
-        edit: "/smsCheck/task/edit",
-
+        delete: "/smsCheck/customerInfo/delete",
+        edit: "/smsCheck/customerInfo/edit",
+        notice: "/smsCheck/customerInfo/notice",
       },
       autoSearch: false,
     }
@@ -285,33 +269,31 @@ export default {
     },
     // 显示列表页面
     showCheckCheck(record) {
-      let taskInfo = Object.assign({}, this.task);
-      taskInfo.count = this.count;
-      taskInfo.undoCount = this.undoCount;
-      taskInfo.uncheckCount = this.uncheckCount;
-      taskInfo.checkedCount = this.checkedCount;
-      taskInfo.passedCount = this.passedCount;
-      let info = {
-        task: this.task,
-        info: record
-      };
-
+      let info = this.buildTaskInfo(record);
       this.$emit('goCheckCheck', info);
     },
-    // 显示列表页面
+    // 显示稽核详情页面
     showCheckDetail(record) {
+      let info = this.buildTaskInfo(record);
+      this.$emit('goCheckDetail', info);
+    },
+    // 显示稽核历史页面
+    showCheckLog(record) {
+      let info = this.buildTaskInfo(record);
+      this.$emit('goCheckLog', info);
+    },
+    // 构建任务信息
+    buildTaskInfo(record) {
       let taskInfo = Object.assign({}, this.task);
       taskInfo.count = this.count;
       taskInfo.undoCount = this.undoCount;
       taskInfo.uncheckCount = this.uncheckCount;
       taskInfo.checkedCount = this.checkedCount;
       taskInfo.passedCount = this.passedCount;
-      let info = {
+      return  {
         task: this.task,
         info: record
-      };
-
-      this.$emit('goCheckDetail', info);
+      }
     },
     handleCancel () {
       this.visible = false;
@@ -383,8 +365,23 @@ export default {
       })
     },
     noticeDeal (record) {
-      // TODO 通知功能处理
-      this.$message.info('已通知客户经理,进行材料补充!');
+      let url = this.url.notice;
+      let params = {
+        customerName: record.customerName,
+        smsNumber: record.smsNumber,
+        staffNo: record.staffNo,
+        userNo: record.userNo,
+      }
+      let that = this;
+      postAction(url, params).then(res => {
+        let { result } = res;
+        if (res.success) {
+          that.$message.info('已通知客户经理,进行材料补充!');
+        }
+      }).finally(() => {
+
+      })
+
     },
   }
 }

+ 82 - 198
src/views/smscheck/modules/TaskCheckLog.vue

@@ -3,58 +3,25 @@
   <div>
     <a-page-header
       style="background-color: #FFFFFF;"
-      title="稽核详情-稽核记录"
+      title="稽核详情-稽核历史"
       sub-title=""
-      @back="showList"
+      @back="showCheckList"
     >
-      <a-descriptions :title="task.name" :column="3" :bordered="false">
-        <a-descriptions-item label="状态"><a-tag color="blue">{{task.stateText}}</a-tag></a-descriptions-item>
-        <a-descriptions-item label="开始时间">{{task.startTime}}</a-descriptions-item>
-        <a-descriptions-item label="结束时间">{{task.endTime}}</a-descriptions-item>
-        <a-descriptions-item label="描述">{{task.description}}</a-descriptions-item>
+      <a-descriptions :title="checkInfo.info.customerName" :column="3" :bordered="false">
+        <a-descriptions-item label="客户编号">{{checkInfo.info.customerNo}}</a-descriptions-item>
+        <a-descriptions-item label="服务号码">{{checkInfo.info.smsNumber}}</a-descriptions-item>
+        <a-descriptions-item label="用户编号">{{checkInfo.info.userNo}}</a-descriptions-item>
+        <a-descriptions-item label="入网时间">{{checkInfo.info.networkAccessTime}}</a-descriptions-item>
+        <a-descriptions-item label="用户状态" :span="2">{{checkInfo.info.userState}}</a-descriptions-item>
+        <a-descriptions-item label="员工姓名">{{checkInfo.info.staffName}}</a-descriptions-item>
+        <a-descriptions-item label="员工工号">{{checkInfo.info.staffNo}}</a-descriptions-item>
       </a-descriptions>
-      <a-divider style="margin: 6px;"/>
     </a-page-header>
 
-    <a-card :bordered="false" style="margin-top: -20px;">
-      <!-- 查询区域 -->
-      <div class="table-page-search-wrapper">
-        <a-form layout="inline" @keyup.enter.native="searchQuery">
-          <a-row :gutter="24">
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="客户编号">
-                <j-input placeholder="请输入客户编号" v-model="queryParam.customerNo"></j-input>
-              </a-form-item>
-            </a-col>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-              <a-form-item label="客户名称">
-                <j-input placeholder="请输入客户名称" v-model="queryParam.customerName"></j-input>
-              </a-form-item>
-            </a-col>
-            <template v-if="toggleSearchStatus">
-
-            </template>
-            <a-col :xl="6" :lg="7" :md="8" :sm="24">
-            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
-              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
-              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-              <a @click="handleToggleSearch" style="margin-left: 8px">
-                {{ toggleSearchStatus ? '收起' : '展开' }}
-                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
-              </a>
-            </span>
-            </a-col>
-          </a-row>
-        </a-form>
-      </div>
-      <!-- 查询区域-END -->
+    <a-card :bordered="false" style="margin-top: 10px;">
 
       <!-- table区域-begin -->
       <div>
-        <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
-          <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
-          <a style="margin-left: 24px" @click="onClearSelected">清空</a>
-        </div>
 
         <a-table
           ref="table"
@@ -66,55 +33,46 @@
           :dataSource="dataSource"
           :pagination="ipagination"
           :loading="loading"
-          :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
           class="j-table-force-nowrap"
           @change="handleTableChange">
 
-          <template slot="htmlSlot" slot-scope="text">
-            <div v-html="text"></div>
+          <p slot="expandedRowRender" slot-scope="record" style="margin: 0">
+            基本信息结果:{{ record.basicCheckNote }}<br/>
+            规范信息结果:{{ record.standardCheckNote }}<br/>
+            附件资料结果:{{ record.dataCheckNote }}<br/>
+          </p>
+
+          <template slot="action" slot-scope="text, record">
+
+            <a-dropdown>
+              <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
+              <a-menu slot="overlay">
+                <a-menu-item>
+                  <a @click="showCheckCheck(record)">稽核</a>
+                </a-menu-item>
+                <a-menu-item>
+                  <a @click="showCheckLog(record)">历史</a>
+                </a-menu-item>
+                <a-menu-item>
+                  <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
+                    <a>删除</a>
+                  </a-popconfirm>
+                </a-menu-item>
+              </a-menu>
+            </a-dropdown>
           </template>
-          <template slot="imgSlot" slot-scope="text,record">
-            <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
-            <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
+
+          <template v-slot:customerName="text, record">
+            <a @click="showCheckDetail(record)">{{text}}</a>
           </template>
-          <template slot="fileSlot" slot-scope="text">
-            <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
-            <a-button
-              v-else
-              :ghost="true"
-              type="primary"
-              icon="download"
-              size="small"
-              @click="downloadFile(text)">
-              下载
-            </a-button>
+          <template v-slot:checkState="status">
+            <a-badge :status="status | statusTypeFilter" :text="status | statusFilter"/>
           </template>
-
-          <span slot="action" slot-scope="text, record">
-<!--          <a @click="handleEdit(record)">编辑</a>-->
-
-<!--          <a-divider type="vertical" />-->
-          <a @click="showCheckDetail(record)">详情</a>
-          <a-divider type="vertical" />
-          <a-dropdown>
-            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
-            <a-menu slot="overlay">
-              <a-menu-item>
-                <a @click="showCheckCheck(record)">稽核</a>
-              </a-menu-item>
-              <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
-              </a-menu-item>
-            </a-menu>
-          </a-dropdown>
-        </span>
-
         </a-table>
 
       </div>
       <!-- table区域 end -->
+
     </a-card>
 
   </div>
@@ -123,15 +81,15 @@
 
 <script>
 
-import { httpAction, getAction } from '@api/manage'
+import { postAction, getAction } from '@api/manage'
 import '@/assets/less/TableExpand.less'
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 
 export default {
-  name: 'TaskCheckList',
+  name: 'TaskCheckLog',
   mixins:[JeecgListMixin],
   props: {
-    task: {
+    checkInfo: {
       type: Object,
       require: true
     }
@@ -139,16 +97,6 @@ export default {
   data () {
     return {
       description: '稽核详情页面',
-      tabAll: '全部(0)',
-      tabUndo: '未完善(0)',
-      tabUncheck: '待稽核(0)',
-      tabChecked: '待整改(0)',
-      tabPassed: '稽核通过(0)',
-      count: 0,
-      undoCount: 0,
-      uncheckCount: 0,
-      checkedCount: 0,
-      passedCount: 0,
       columns: [
         {
           title: '#',
@@ -161,89 +109,70 @@ export default {
           }
         },
         {
-          title:'客户编号',
+          title:'稽核时间',
           align:"center",
-          dataIndex: 'customerNo'
+          dataIndex: 'createTime',
         },
         {
-          title:'客户名称',
+          title:'基础信息状态',
           align:"center",
-          dataIndex: 'customerName'
+          dataIndex: 'basicCheckState',
+          scopedSlots: { customRender: 'checkState' }
         },
         {
-          title:'服务号码(全)',
+          title:'基础信息结果',
           align:"center",
-          dataIndex: 'smsNumber'
+          dataIndex: 'basicCheckNote',
         },
         {
-          title:'用户编号',
+          title:'规范信息状态',
           align:"center",
-          dataIndex: 'userNo'
+          dataIndex: 'standardCheckState',
+          scopedSlots: { customRender: 'checkState' }
         },
         {
-          title:'入网时间',
+          title:'规范信息结果',
           align:"center",
-          dataIndex: 'networkAccessTime'
+          dataIndex: 'standardCheckNote',
         },
         {
-          title:'用户状态',
+          title:'附件资料状态',
           align:"center",
-          dataIndex: 'userState'
+          dataIndex: 'dataCheckState',
+          scopedSlots: { customRender: 'checkState' }
         },
         {
-          title:'员工姓名',
+          title:'附件资料结果',
           align:"center",
-          dataIndex: 'staffName'
+          dataIndex: 'dataCheckNote',
         },
-        {
-          title:'员工工号',
-          align:"center",
-          dataIndex: 'staffNo'
-        },
-        {
-          title: '操作',
-          dataIndex: 'action',
-          align:"center",
-          fixed:"right",
-          width:147,
-          scopedSlots: { customRender: 'action' }
-        }
       ],
       url: {
-        list: "/smsCheck/customerInfo/list",
-        count: "/smsCheck/customerInfo/count",
-        delete: "/smsCheck/task/delete",
-        edit: "/smsCheck/task/edit",
-
+        list: "/smsCheck/workLog/list",
       },
       autoSearch: false,
     }
   },
   created() {
-    this.queryParam.taskId = this.task.id;
+    this.queryParam.taskId = this.checkInfo.task.id;
+    this.queryParam.infoId = this.checkInfo.info.id;
     this.loadData();
-    let url = this.url.count;
-    let params = {
-      id: this.task.id
-    }
-    let that = this;
-    getAction(url, params).then(res => {
-      let { result } = res;
-      if (result) {
-        that.count = result.count;
-        that.undoCount = result.undoCount;
-        that.uncheckCount = result.uncheckCount;
-        that.checkedCount = result.checkedCount;
-        that.passedCount = result.passedCount;
-        that.tabAll= '全部(' + result.count + ')';
-        that.tabUndo= '未完善(' + result.undoCount + ')';
-        that.tabUncheck= '待稽核(' + result.uncheckCount + ')';
-        that.tabChecked= '待整改(' + result.checkedCount + ')';
-        that.tabPassed= '稽核通过(' + result.passedCount + ')';
+  },
+  filters: {
+    statusTypeFilter(type) {
+      const statusTypeMap = {
+        '1': 'error',
+        '2': 'success'
       }
-    }).finally(() => {
-
-    })
+      return statusTypeMap[type]
+    },
+    statusFilter(status) {
+      const statusMap = {
+        '1': '异常',
+        '2': '通过'
+      }
+      return statusMap[status]
+    }
   },
   methods: {
     // 显示列表页面
@@ -251,54 +180,9 @@ export default {
       this.$emit('goList');
     },
     // 显示列表页面
-    showCheckCheck(record) {
-      let taskInfo = Object.assign({}, this.task);
-      taskInfo.count = this.count;
-      taskInfo.undoCount = this.undoCount;
-      taskInfo.uncheckCount = this.uncheckCount;
-      taskInfo.checkedCount = this.checkedCount;
-      taskInfo.passedCount = this.passedCount;
-      let info = {
-        task: this.task,
-        info: record
-      };
-
-      this.$emit('goCheckCheck', info);
-    },
-    // 显示列表页面
-    showCheckDetail(record) {
-      let taskInfo = Object.assign({}, this.task);
-      taskInfo.count = this.count;
-      taskInfo.undoCount = this.undoCount;
-      taskInfo.uncheckCount = this.uncheckCount;
-      taskInfo.checkedCount = this.checkedCount;
-      taskInfo.passedCount = this.passedCount;
-      let info = {
-        task: this.task,
-        info: record
-      };
-
-      this.$emit('goCheckDetail', info);
-    },
-    handleCancel () {
-      this.visible = false;
-    },
-    detail (record) {
-      this.model = Object.assign({}, record);
-      this.visible = true;
-    },
-    tabChange (key) {
-      // 稽核状态(0:未处理;1:未完善;2:待稽核;3:待整改;4:已整改;5:稽核通过;)
-      if (key === 'undo') {
-        this.queryParam.checkState_MultiString = '0,1';
-      } else if (key === 'uncheck') {
-        this.queryParam.checkState_MultiString = '2,3';
-      } else if (key === 'checked') {
-        this.queryParam.checkState_MultiString = '4';
-      } else if (key === 'passed') {
-        this.queryParam.checkState_MultiString = '5';
-      }
-      this.loadData();
+    showCheckList() {
+      let taskInfo = this.checkInfo.task;
+      this.$emit('goCheckList', taskInfo);
     },
   }
 }

+ 1 - 1
src/views/smscheck/modules/TaskDetail.vue

@@ -16,7 +16,7 @@
         <a-descriptions-item label="结束时间">{{model.taskEndTime}}</a-descriptions-item>
         <a-descriptions-item label="描述" :span="3">{{model.description}}</a-descriptions-item>
         <a-descriptions-item label="客户总数">{{model.customerCount}}</a-descriptions-item>
-        <a-descriptions-item label="待稽核数">{{model.checkCount}}</a-descriptions-item>
+<!--        <a-descriptions-item label="待稽核数">{{model.checkCount}}</a-descriptions-item>-->
       </a-descriptions>
     </a-spin>
 

+ 5 - 5
src/views/smscheck/modules/TaskList.vue

@@ -210,11 +210,11 @@
             align:"center",
             dataIndex: 'customerCount'
           },
-          {
-            title:'待稽核数',
-            align:"center",
-            dataIndex: 'uncheckCount'
-          },
+          // {
+          //   title:'待稽核数',
+          //   align:"center",
+          //   dataIndex: 'uncheckCount'
+          // },
           {
             title: '操作',
             dataIndex: 'action',