yz3456
2024-05-07 e717167307cd29740484741f553e1f7aa3e36dc2
ruoyi-ui/src/views/meeting/statistics.vue
@@ -6,16 +6,344 @@
      </el-backtop>
      <h1 style="font-size:21px;padding-top:30px;display: flex;">
        <span>会议统计</span>
        <p><span >会议统计</span></p>
        <div class="button-container"></div>
        <div style="display: flex; align-items: center;">
          <el-button @click="pictureStatistics" size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 10px">
            <div class="form1"><el-icon style="padding-right:50px;"></el-icon>
              <span class="text" style="width: 69px;height: 26px;font-size: 16px;
              font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">图表统计</span>
            </div>
          </el-button>
        </div>
        <!-- <div style="display: flex; align-items: center;">
          <el-button @click="newRequest" size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 10px">
            <div class="form2" style="width: 100px;"><el-icon style="padding-right:30px;"></el-icon>
              <span class="text" style="width: 69px;height: 26px;font-size: 16px;
              font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">新建</span>
            </div>
          </el-button>
        </div> -->
      </h1>
      <hr />
      <el-table :data="tableData" border :header-cell-style="{ background: 'pink', fontSize: '13px', color: 'black' }"
        :row-class-name="tableRowClassName" :row-key="getRowId">
        <el-table-column label="家庭号" prop="familyId" sortable align="center">
          <template slot-scope="scope">{{ scope.row.familyId
        ? scope.row.familyId : '————' }}</template>
        </el-table-column>
        <el-table-column label="使用时间" prop="useTime" sortable align="center">
          <template slot-scope="scope">{{ scope.row.useTime
        ? scope.row.useTime : '————' }}</template>
        </el-table-column>
        <el-table-column label="会议室名称" prop="conferenceRoom" sortable align="center">
          <template slot-scope="scope">{{
        scope.row.conferenceRoom ? scope.row.conferenceRoom : '————' }}</template>
        </el-table-column>
        <el-table-column label="标题" prop="title" sortable align="center">
          <template slot-scope="scope">{{ scope.row.title
        ? scope.row.title : '————' }}</template>
        </el-table-column>
        <el-table-column label="申请人" prop="applyPerson" sortable align="center">
          <template slot-scope="scope">{{
        scope.row.applyPerson ? scope.row.applyPerson : '————' }}</template>
        </el-table-column>
        <el-table-column label="审批人" prop="ratifyPerson" sortable align="center">
          <template slot-scope="scope">{{ scope.row.ratifyPerson ?
        scope.row.ratifyPerson : '————' }}</template>
        </el-table-column>
        <el-table-column label="状态" prop="status" sortable align="center">
          <template slot-scope="scope">{{ scope.row.status
        ? scope.row.status : '————' }}</template>
        </el-table-column>
        <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
          <template slot-scope="scope" v-if="scope.row.roleId !== 1">
            <div class="button-container">
              <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button> -->
              <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> -->
              <el-button size="mini" type="text" icon="el-icon-d-arrow-right" @click="handleCheck(scope.row)">查看详情</el-button>
            </div>
          </template>
        </el-table-column>
      </el-table>
      <!-- 图表统计 -->
      <el-dialog :title="title2" :visible.sync="open2" width="1500px" @open="open1()" append-to-body>
        <!-- class="p1" -->
        <div class="p1" id="main1">
          <!-- <h1 style="font-size:21px">每月会议次数统计</h1> -->
        </div>
        <div class="p1" id="main2">
          <!-- <h1 style="font-size:21px">会议家庭占比统计</h1> -->
        </div>
      </el-dialog>
      <!-- 新增数据框 -->
      <!-- <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body>
        <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px">
          <el-form-item label="家庭号" prop="familyId">
            <el-input v-model="formDat.familyId" placeholder="请输入会议室名称" clearable :style="{width: '100%'}">
            </el-input>
          </el-form-item>
          <el-form-item label="开始时间" prop="happenTime">
            <el-date-picker v-model="formDat.happenTime" type="datetime" placeholder="选择日期时间"
                            :editable="false" :clearable="false" :style="{width: '100%'}"  value-format="yyyy-MM-dd"
            ></el-date-picker>
          </el-form-item>
          <el-form-item label="结束时间" prop="endTime">
            <el-date-picker v-model="formDat.endTime" type="datetime" placeholder="选择日期时间"
                            :editable="false" :clearable="false" :style="{width: '100%'}"  value-format="yyyy-MM-dd"
            ></el-date-picker>
          </el-form-item>
          <el-form-item label="会议室名称" prop="conferenceRoom">
            <el-input v-model="formDat.conferenceRoom" placeholder="请输入会议室名称" clearable :style="{width: '100%'}">
            </el-input>
          </el-form-item>
          <el-form-item label="标题" prop="meetingTitle">
            <el-input v-model="formDat.meetingTitle" placeholder="请输入会议标题" clearable :style="{width: '100%'}">
            </el-input>
          </el-form-item>
          <el-form-item label="申请人" prop="applyPerson">
            <el-input v-model="formDat.applyPerson" placeholder="请输入申请人" clearable :style="{width: '100%'}">
            </el-input>
          </el-form-item>
          <el-form-item label="审批人" prop="ratifyPerson">
            <el-input v-model="formDat.ratifyPerson" placeholder="请输入审批人" clearable :style="{width: '100%'}">
            </el-input>
          </el-form-item>
          <el-form-item label="状态" prop="status">
            <el-select v-model="formDat.status" placeholder="请选择" clearable :style="{width: '100%'}">
              <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-form>
          </el-upload>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="submitDataScope">保 存</el-button>
          <el-button @click="cancel">取 消</el-button>
        </div>
      </el-dialog> -->
    </div>
  </template>
  <script>
import * as echarts from 'echarts';
 export default {
  created() {},
   data() {
     return {
       // 显示搜索条件
       showSearch: true,
       open: false,
       open2: false,
       title: "",
       tableData: [{
         id: 1,
          familyId: '1',
           title: '1',
           name: 'asasd',
           conferenceRoom: 'asdadsdasd',
           status: '结案'
         },
         {
                    id: 2,
          familyId: '2',
           title: '2',
           name: 'qweqwqwe',
           conferenceRoom: 'qweqweqwe',
           status: '未结案'
         }
       ],
       formDat:{
         id: undefined,
         happenTime: undefined,
         endTime: undefined,
         meetingTitle: undefined,
         conferenceRoom: undefined,
         ratifyPerson: undefined,
         applyPerson: undefined,
         url: "",
         status: undefined,
         familyId: undefined
       },
     queryParams: {
       pageNum: 1,
       pageSize: 10,
       conferenceRoom:undefined,
       applyOrganization:undefined,
       applyPerson:undefined,
       happenTime:undefined
     },
     dateRange: [],
     // 表单校验
     rules: {
       name: [{
         required: true,
         message: '请输入设备名称',
         trigger: 'blur'
       }],
      },
       typeOptions: [
         {
         value: '1',
         label: '结案',
         },
         {
           value: '0',
           label: '未结案',
         }
         ],
     }
   },
   methods: {
     open1(){
       this.$nextTick(() => {
       //  执行echarts方法
         this.initEcharts()
       })
    },
    initEcharts() {
            var echarts = require('echarts');
            const myChart1 = this.$echarts.init(document.getElementById('main1'));
             const option1 = {
                title: {
                    text: 'ECharts 入门示例'
                },
                tooltip: {},
                xAxis: {
                    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
                },
                yAxis: {},
                series: [{
                    name: '销量',
                    type: 'bar',
                    data: [5, 20, 36, 10, 10, 20]
                }]
            };
            const myChart2 = this.$echarts.init(document.getElementById('main2'));
             const option2 = {
                title: {
                    text: 'ECharts 入门示例'
                },
                tooltip: {},
                xAxis: {
                    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
                },
                yAxis: {},
                series: [{
                    name: '销量',
                    type: 'bar',
                    data: [5, 20, 36, 10, 10, 20]
                }]
            };
            myChart1.setOption(option1)
            myChart2.setOption(option2)
          },
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;
       this.getList();
     },
     /** 重置按钮操作 */
     resetQuery() {
       this.dateRange = [];
       this.resetForm("queryForm");
       this.handleQuery();
     },
     newRequest(){
       this.open = true;
       this.title = "新增"
     },
     cancel() {
       this.open = false;
       // this.reset();
     },
     submitDataScope() {
       console.log(666)
     },
     tableRowClassName({
       row,
       rowIndex
     }) {
       if (rowIndex % 2 == 0) {
         return "statistics-warning-row1";
       } else {
         return "statistics-warning-row";
       }
     },
     getRowId(row) {
       return row.id
     },
      // 修改
      handleUpdate(row) {
        const id = row.id;
        let jd = true
        this.$router.push({
          path:"/meeting/statistics/statisticsInfo/" + id,
          query:{
            detail:jd
          }
        });
      },
      // 查看详细信息
      handleCheck(row){
        const id = row.id;
        this.$router.push("/meeting/statistics/statisticsInfo/" + id);
      },
     /** 删除按钮操作 */
     handleDelete(row) {
       const Ids = row.id || this.ids;
       this.$modal.confirm('是否确认删除数据项?').then(function() {
         return delSelfEconomy(Ids);
       }).then(() => {
         this.getList();
         this.$modal.msgSuccess("删除成功");
       }).catch(() => {});
     },
     // 图表统计
     pictureStatistics(){
        this.open2=true;
        this.title2 = "图表统计"
     },
   }
 }
  </script>
<style scoped>
  .el-table__row.statistics-warning-row {
@@ -30,9 +358,43 @@
    font-size: 14px; /* 设置字体大小 */
  }
  .button-container {
    display: inline-flex; /* 设置按钮容器为行内元素 */
    /* display: inline-flex; 设置按钮容器为行内元素 */
    text-align: right;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-grow: 1;
  }
  .app-container {
    background-color: #FEF7FC;
  }
  .form1{
    background:left/40% no-repeat url('../../assets/icons/pic.png') ;
    height: 50px;
    line-height: 50px;
  }
  .form2{
    background:left/25% no-repeat url('../../assets/icons/add1.png') ;
    height: 50px;
    line-height: 50px;
  }
  /deep/ .el-table .statistics-warning-row {
    background: #E0EEFE;
  }
  /deep/ .el-table .statistics-warning-row1 {
    background: #FFEFF2;
  }
  .el-table {
    border-radius: 14px 14px 14px 14px;
  }
  .p1{
    width: 700px;
    height: 700px;
    display: inline-block;
    /* background-color: aqua; */
    margin-right: 30px;
  }
  </style>