riku
2022-09-14 2206df0da6499846c78a358cf95ca33c218a5c5d
pages/m_consult/consultproblem/consultproblem.js
@@ -1,99 +1,13 @@
// pages/m_consult/consultproblem/consultproblem.js
const consultservice = require("../../../service/consultservice")
const util = require("../../../utils/util")
const app = getApp()
import ListPage from '../../../base/ListPage'
const b_questions = require('../behaviors/b_questions')
const b_elementTypes = require('../behaviors/b_elementTypes')
Page({
ListPage({
  behaviors: [b_questions, b_elementTypes],
  /**
   * 页面的初始数据
   */
  data: {
    loading: false,
    menus: [
      { name: '大气', value: 1 },
      { name: '水', value: 2 },
      { name: '海洋', value: 3 },
      { name: '土壤', value: 4 },
      { name: '噪声', value: 5 },
      { name: '光', value: 6 },
      { name: '辐射', value: 7 },
      { name: '核', value: 8 },
      { name: '固体废物', value: 9 },
      { name: '化学品', value: 10 },
      { name: '台账', value: 21 },
      { name: '执法', value: 31 },
      { name: '督察', value: 41 },
      { name: '监测', value: 51 },
      { name: '服务', value: 61 },
      { name: '其他', value: 99 }
    ],
    items: [
      [
        { name: 'PM', value: 1  },
        { name: 'NOX', value: 2  },
        { name: 'O3', value: 3  },
        { name: 'VOCs', value: 4  },
        { name: '工业废气', value: 5  },
        { name: '机动车尾气', value: 6  },
        { name: '扬尘', value: 7  },
        { name: '餐饮油烟', value: 8  },
        { name: '恶臭', value: 9  },
        { name: '其他', value: 99 },
      ],
      [
        { name: '地表水', value: 1  },
        { name: '地下水', value: 2  },
        { name: '饮用水', value: 3  },
        { name: '工业废水', value: 4  },
        { name: '生活污水', value: 5  },
        { name: '商业污水', value: 6  },
        { name: '其他', value: 99  },
      ],
      [
        { name: '石油及其产品', value: 1  },
        { name: '重金属和酸碱', value: 2  },
        { name: '农药', value: 3  },
        { name: '有机物质和营养盐类', value: 4  },
        { name: '放射性核素', value: 5  },
        { name: '固体废物', value: 6  },
        { name: '废热', value: 7  },
        { name: '其他', value: 99  },
      ],
      [
        { name: '农田耕地', value: 1  },
        { name: '工业企业用地', value: 2  },
        { name: '石油开采用地', value: 3  },
        { name: '矿山开采用地', value: 4  },
        { name: '其他', value: 99  },
      ],
      [
        { name: '工业生产噪声', value: 1  },
        { name: '交通运输噪声', value: 2  },
        { name: '建筑施工噪声', value: 3  },
        { name: '社会生活噪声', value: 4  },
        { name: '其他', value: 99  },
      ],
      [
        { name: '白亮污染', value: 1  },
        { name: '人工白昼污染', value: 2  },
        { name: '彩光污染', value: 3  },
        { name: '其他', value: 99  },
      ],
      [
        { name: '电磁辐射', value: 1  },
        { name: '放射性辐射', value: 2  },
        { name: '其他', value: 99  },
      ],
      [],
      [],
      [],
      [],
      [],
      [],
      [],
      [],
    ],
    selected: [{
      name: '全部',
      value: null
@@ -101,96 +15,16 @@
      name: '全部',
      value: null
    }],
    questions: []
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getQuestionsByType(1)
    this.getEnElementTypes()
    this.getEnElementSubTypes()
  },
  getQuestionsByType(page = 1) {
    this.setData({loading: true})
    setTimeout(() => {
      this.setData({loading: false})
    }, 100000);
    var that = this
    consultservice.getQuestionsByType(
      app.globalData.accessToken.userId,
      this.data.selected[0].value, this.data.selected[1].value,
      page, 10, {
        onPage(head) {
          that.cPage = head.page
          that.tPage = head.totalPage
          that.setData({
            totalCount: head.totalCount
          })
        },
        success(res) {
          res.forEach(r => {
            r.cqCreateTime = util.formatTime(r.cqCreateTime)
            r.answer = r.answer.replaceAll('\\n', '<br/>')
          });
          let questions = that.data.questions
          if (page == 1) {
            questions = []
          }
          questions = questions.concat(res)
          that.setData({questions})
        },
        complete(e) {
          that.setData({loading: false})
        }
      })
  },
  getEnElementTypes() {
    var that = this
    consultservice.getEnElementTypes(app.globalData.accessToken.userId, {
      success(res) {
        const menus = [{
          name: '全部',
          value: null,
        }]
        res.forEach(r => {
          menus.push({
            name: r.first,
            value: r.second,
          })
        });
        that.setData({menus})
      }
    const selectedValues = this.data.selected.map((obj, index) => {
      return obj.value
    })
  },
  getEnElementSubTypes() {
    var that = this
    consultservice.getEnElementSubTypes(app.globalData.accessToken.userId, {
      success(res) {
        const items = [
          [{
            name: '全部',
            value: null,
          }]
        ]
        res.forEach(r => {
          const l = []
          r.forEach(s => {
            l.push({
              name: s.first,
              value: s.second,
            })
          });
          items.push(l)
        });
        that.setData({items})
      }
    })
    this.getQuestionsByType(1, selectedValues)
  },
  openChooseType() {
@@ -200,29 +34,12 @@
  },
  chooseMenu(e) {
    console.log('chooseMenu');
    console.log(e);
    const i = e.detail
    const menu = this.data.menus[i[0]]
    const item = this.data.items[i[0]][i[1]]
    this.setData({
      selected: [menu, item]
    })
    this.getQuestionsByType()
  },
  // 去往问答详情
  gotoQA(e) {
    const index = e.currentTarget.dataset.index
    var qId = this.data.questions[index].cqGuid
    wx.navigateTo({
      url: '/pages/m_consult/consultdetailqa/consultdetailqa',
      success: (res) => {
        // 通过 eventChannel 向被打开页面传送数据
        res.eventChannel.emit('acceptDataFromOpenerPage', {
          qId: qId
        })
      },
    })
    this.getQuestionsByType(1, [menu.value, item.value])
  },
})