From 8a2bb76f1972728e985226cf85cfde34d54b5284 Mon Sep 17 00:00:00 2001
From: yz3456 <2753272399@qq.com>
Date: 星期六, 23 三月 2024 21:51:46 +0800
Subject: [PATCH] 新增家庭模块

---
 ruoyi-ui/src/views/meeting/approve.vue     |  196 ++++++++
 ruoyi-ui/src/views/meeting/replay.vue      |  160 ++++++
 ruoyi-ui/src/views/meeting/statistics.vue  |   38 +
 ruoyi-ui/src/views/meeting/webcast.vue     |  313 +++++++++++++
 ruoyi-ui/src/views/meeting/meetingInfo.vue |  332 ++++++++++++++
 ruoyi-ui/src/views/meeting/index.vue       |  291 ++++++++++++
 6 files changed, 1,330 insertions(+), 0 deletions(-)

diff --git a/ruoyi-ui/src/views/meeting/approve.vue b/ruoyi-ui/src/views/meeting/approve.vue
new file mode 100644
index 0000000..01ffa4c
--- /dev/null
+++ b/ruoyi-ui/src/views/meeting/approve.vue
@@ -0,0 +1,196 @@
+<template>
+  <div class="app-container">
+
+    <el-backtop :bottom="150" :right="30">
+      <el-button type="primary" circle class="el-icon-top"></el-button>
+    </el-backtop>
+
+
+    <h1 style="font-size:21px;padding-top:30px;display: flex;">
+      <span>浼氳瀹℃壒</span>
+      <div class="button-container"></div>
+      <div style="display: flex; align-items: center;">
+<!--        <el-button size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 200px">
+          <div class="form"><el-icon style="padding-right:100px;"></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-form :model="queryParams1">
+      <el-row>
+        <el-form-item label="" prop="people">
+          <el-input v-model="queryParams1.people" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" clearable style="width: 200px;
+                   height: 35px;
+                   text-align: left;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;" @keyup.enter.native="handleQuery">
+            <i slot="prefix" class="el-input__icon el-icon-search"></i>
+          </el-input>
+        </el-form-item>
+      </el-row>
+    </el-form>
+
+    <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="title" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.title
+      ? scope.row.title : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鍦扮偣" prop="address" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.address ? scope.row.address : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鍙绾充汉鏁�" prop="capacity" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.capacity ? scope.row.capacity : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鍙備笌浜烘暟" prop="persons" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.persons ? scope.row.persons : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鐢宠浜�" prop="applicant" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.applicant ? scope.row.applicant : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鐢宠閮ㄩ棬鎴栧搴�" prop="applyOrganization" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.applyOrganization ? scope.row.applyOrganization : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="寮�濮嬫椂闂�" prop="begin" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.begin
+      ? scope.row.begin : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="缁撴潫鏃堕棿" prop="end" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.end ?
+      scope.row.end : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鏄惁鎽嗘斁姘寸墝" prop="card" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.card
+      ? scope.row.card : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鑱旂郴浜�" prop="name" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.name ?
+      scope.row.name : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鑱旂郴鐢佃瘽" prop="phone" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.phone
+      ? scope.row.phone : '鈥斺�斺�斺��' }}</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="250" 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">鍚屾剰</el-button>
+            <el-button size="mini" type="text" icon="el-icon-delete">鎷掔粷</el-button>
+              <el-button size="mini" type="text" icon="el-icon-d-arrow-right">鏌ョ湅璇︽儏</el-button>
+          </div>
+        </template>
+      </el-table-column>
+
+    </el-table>
+
+  </div>
+</template>
+<script>
+export default {
+  data() {
+    return {
+      tableData: [
+        { title: '1', name: 'asasd', address: 'asdadsdasd', id: 1, age: '30' },
+        { title: '2', name: 'qweqwqwe', address: 'qweqweqwe', id: 2, age: '30' },
+        { title: '3', name: 'zxczxczxc', address: 'zxczxczcx', id: 3, age: '30' },
+        { title: '4', name: 'fghfghfh', address: 'fghfghfgh', id: 4, age: '30' },
+        { title: '5', name: 'rtyrtyrty', address: 'rtyrtyrty', id: 5, age: '30' },
+        { title: '6', name: 'yuiyuiyui', address: 'yuiyuiyui', id: 6, age: '30' },
+        { title: '7', name: 'hjkljkljk', address: 'jkljklhlkjl', id: 7, age: '30' },
+      ],
+      queryParams1: {
+        pageNum: 1,
+        pageSize: 10,
+        happenTime: undefined,
+        people: undefined,
+        address: undefined,
+        title: undefined,
+        remark: undefined
+      }
+    }
+  },
+  methods: {
+
+    tableRowClassName({ row, rowIndex }) {
+      if (rowIndex % 2 == 0) {
+        return "statistics-warning-row1";
+      } else {
+        return "statistics-warning-row";
+      }
+    },
+    getRowId(row) {
+      return row.id
+    },
+
+  }
+}
+</script>
+<style scoped="">
+.app-container {
+  background-color: #FEF7FC;
+  width: 100%;
+  height: 100%;
+}
+
+/deep/ .el-table .statistics-warning-row {
+  background: #E0EEFE;
+
+}
+
+/deep/ .el-table .statistics-warning-row1 {
+  background: #FFEFF2;
+}
+
+.button-container {
+  text-align: right;
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  flex-grow: 1;
+}
+
+.el-table {
+  border-radius: 14px 14px 14px 14px;
+}
+
+/* :deep(.el-table td:first-child) {
+  border-left: 1px solid #e2ecfa;
+  border-radius: 8px 0 0 8px;
+  padding: 2px;
+  z-index: 999;
+  background: #fff;
+}
+:deep(.el-table td:last-child) {
+  border-right: 1px solid #e2ecfa;
+  border-radius: 0 8px 8px 0;
+  z-index: 999;
+  padding: 2px;
+  background: #fff;
+} */
+</style>
diff --git a/ruoyi-ui/src/views/meeting/index.vue b/ruoyi-ui/src/views/meeting/index.vue
new file mode 100644
index 0000000..d30da34
--- /dev/null
+++ b/ruoyi-ui/src/views/meeting/index.vue
@@ -0,0 +1,291 @@
+<template>
+  <div class="app-container">
+
+    <el-backtop :bottom="150" :right="30">
+      <el-button type="primary" circle class="el-icon-top"></el-button>
+    </el-backtop>
+
+
+    <h1 style="font-size:21px;padding-top:30px;display: flex;">
+      <span>浼氳鐢宠</span>
+      <div class="button-container"></div>
+      <div style="display: flex; align-items: center;">
+        <el-button @click="newRequest" size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 200px">
+          <div class="form"><el-icon style="padding-right:100px;"></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-form :model="queryParams1">
+      <el-row>
+        <el-form-item label="" prop="people">
+          <el-input v-model="queryParams1.people" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" clearable style="width: 200px;
+                   height: 35px;
+                   text-align: left;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;" @keyup.enter.native="handleQuery">
+            <i slot="prefix" class="el-input__icon el-icon-search"></i>
+          </el-input>
+        </el-form-item>
+      </el-row>
+    </el-form>
+
+    <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="title" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.title
+      ? scope.row.title : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鍦扮偣" prop="address" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.address ? scope.row.address : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鍙绾充汉鏁�" prop="capacity" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.capacity ? scope.row.capacity : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鍙備笌浜烘暟" prop="persons" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.persons ? scope.row.persons : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鐢宠浜�" prop="applicant" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.applicant ? scope.row.applicant : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鐢宠閮ㄩ棬鎴栧搴�" prop="applyOrganization" sortable align="center">
+        <template slot-scope="scope">{{
+      scope.row.applyOrganization ? scope.row.applyOrganization : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="寮�濮嬫椂闂�" prop="begin" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.begin
+      ? scope.row.begin : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="缁撴潫鏃堕棿" prop="end" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.end ?
+      scope.row.end : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鏄惁鎽嗘斁姘寸墝" prop="card" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.card
+      ? scope.row.card : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鑱旂郴浜�" prop="name" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.name ?
+      scope.row.name : '鈥斺�斺�斺��' }}</template>
+      </el-table-column>
+
+      <el-table-column label="鑱旂郴鐢佃瘽" prop="phone" sortable align="center">
+        <template slot-scope="scope">{{ scope.row.phone
+      ? scope.row.phone : '鈥斺�斺�斺��' }}</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="title" :visible.sync="open" width="1000px" append-to-body>
+      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
+
+        <el-form-item label="鏃堕棿" prop="timeSpan">
+          <el-date-picker v-model="formData.timeSpan" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss">
+          </el-date-picker>
+        </el-form-item>
+
+        </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>
+  export default {
+    data() {
+      return {
+        open: false,
+        title: "",
+        tableData: [{
+            title: '1',
+            name: 'asasd',
+            address: 'asdadsdasd',
+            id: 1,
+            age: '30'
+          },
+          {
+            title: '2',
+            name: 'qweqwqwe',
+            address: 'qweqweqwe',
+            id: 2,
+            age: '30'
+          },
+          {
+            title: '3',
+            name: 'zxczxczxc',
+            address: 'zxczxczcx',
+            id: 3,
+            age: '30'
+          },
+          {
+            title: '4',
+            name: 'fghfghfh',
+            address: 'fghfghfgh',
+            id: 4,
+            age: '30'
+          },
+          {
+            title: '5',
+            name: 'rtyrtyrty',
+            address: 'rtyrtyrty',
+            id: 5,
+            age: '30'
+          },
+          {
+            title: '6',
+            name: 'yuiyuiyui',
+            address: 'yuiyuiyui',
+            id: 6,
+            age: '30'
+          },
+          {
+            title: '7',
+            name: 'hjkljkljk',
+            address: 'jkljklhlkjl',
+            id: 7,
+            age: '30'
+          },
+        ],
+        formData:{
+          timeSpan: undefined,
+        },
+        queryParams1: {
+          pageNum: 1,
+          pageSize: 10,
+          happenTime: undefined,
+          people: undefined,
+          address: undefined,
+          title: undefined,
+          remark: undefined
+        }
+      }
+    },
+    methods: {
+
+      newRequest(){
+        this.open = true;
+        this.title = "鏂扮敵璇�"
+      },
+      cancel() {
+        this.open = false;
+        // this.reset();
+      },
+      submitDataScope() {
+        console.log(this.formData.timeSpan)
+      },
+
+      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/index/meetingInfo/" + id,
+          query:{
+            detail:jd
+          }
+        });
+      },
+      // 鏌ョ湅璇︾粏淇℃伅
+      handleCheck(row){
+        const id = row.id;
+        this.$router.push("/meeting/index/meetingInfo/" + id);
+      },
+      /** 鍒犻櫎鎸夐挳鎿嶄綔 */
+      handleDelete(row) {
+        const Ids = row.id || this.ids;
+        this.$modal.confirm('鏄惁纭鍒犻櫎鏁版嵁椤癸紵').then(function() {
+          return delSelfEconomy(Ids);
+        }).then(() => {
+          this.getList();
+          this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+        }).catch(() => {});
+      },
+
+    }
+  }
+</script>
+<style scoped="">
+  .app-container {
+    background-color: #FEF7FC;
+  }
+
+  /deep/ .el-table .statistics-warning-row {
+    background: #E0EEFE;
+  }
+
+  /deep/ .el-table .statistics-warning-row1 {
+    background: #FFEFF2;
+  }
+
+  .button-container {
+    text-align: right;
+    display: flex;
+    justify-content: flex-end;
+    align-items: center;
+    flex-grow: 1;
+  }
+
+  .el-table {
+    border-radius: 14px 14px 14px 14px;
+  }
+
+.form{
+  background:center/11% no-repeat url('../../assets/icons/add1.png') ;
+
+}
+</style>
diff --git a/ruoyi-ui/src/views/meeting/meetingInfo.vue b/ruoyi-ui/src/views/meeting/meetingInfo.vue
new file mode 100644
index 0000000..6fce73d
--- /dev/null
+++ b/ruoyi-ui/src/views/meeting/meetingInfo.vue
@@ -0,0 +1,332 @@
+<template>
+  <div class="app-container" id="printable-content">
+    <div class="form-header mt">
+      <h1 style="font-size:21px;padding-top:30px;display: flex;justify-content: space-between;align-items: center;">
+        <span>浼氳璇︽儏</span>
+      </h1>
+    </div>
+    <div style="padding-left:15px">
+      <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-position="left" label-width="160px">
+
+        <el-container>
+
+          <el-row :span="12">
+
+            <el-cow>
+              <el-form-item label="浼氳鏍囬" prop="meetingTitle" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.meetingTitle" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="寮�濮嬫椂闂�" prop="happenTime" label-width="80px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-date-picker v-model="formDat.happenTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" align="right"
+                  :picker-options="pickerOptions" :style="{width: '100%'}">
+                </el-date-picker>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="缁撴潫鏃堕棿" prop="endTime" label-width="80px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-date-picker v-model="formDat.endTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" align="right"
+                  :picker-options="pickerOptions" :style="{width: '100%'}">
+                </el-date-picker>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="浼氳鍦扮偣" prop="address" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.address" placeholder="璇疯緭鍏ヤ細璁湴鐐�" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+
+            <el-cow>
+              <el-form-item label="浼氳瀹や唬鐮�" prop="meetingID" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.meetingID" placeholder="璇疯緭鍏ヤ細璁浠g爜" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="鍙绾充汉鏁�" prop="capacity" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.capacity" placeholder="璇疯緭鍏ュ彲瀹圭撼浜烘暟" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="鍙備笌浜烘暟" prop="attendance" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.attendance" placeholder="璇疯緭鍏ュ弬涓庝汉鏁�" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="鐢宠浜�" prop="applicant" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="瀹跺涵鎴栭儴闂�" prop="familyName" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.familyName" placeholder="璇疯緭鍏ョ敵璇峰搴垨閮ㄩ棬" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="鏄惁鎷滆姘寸墝" prop="status" label-width="120px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-select v-model="formDat.status" placeholder="璇烽�夋嫨 " clearable :style="{width: '100%'}"
+                  :disabled="dsb">
+                  <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label"
+                    :value="item.value"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="鑱旂郴浜�" prop="name" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.name" placeholder="璇疯緭鍏ヨ仈绯讳汉" clearable :style="{width: '100%'}">
+                </el-input>
+              </el-form-item>
+            </el-cow>
+            <el-cow>
+              <el-form-item label="鑱旂郴鐢佃瘽" prop="phone" label-width="90px"
+                style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
+                <el-input v-model="formDat.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" clearable :style="{width: '100%'}"></el-input>
+              </el-form-item>
+            </el-cow>
+          </el-row>
+        </el-container>
+
+        <h4 class="form-header"> </h4>
+        <el-form-item size="large">
+          <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb">閲嶆柊鐢宠</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+
+
+  </div>
+</template>
+
+<script>
+  export default {
+    components: {},
+    props: [],
+    data() {
+      return {
+        cdi: "涓汉璐骇璇︾粏淇℃伅",
+        udi: "涓汉璐骇淇℃伅璇︽儏",
+        // 鏁版嵁鑼冨洿閫夐」
+        fot: ['.bmp', '.jpg', '.jpeg', '.png', '.tif', '.gif', '.pcx', '.tga', '.exif', '.fpx',
+          '.svg', '.psd', '.cdr', '.pcd', '.dxf', '.ufo', '.eps', '.ai', '.aw', '.WMF', '.webp', '.apng'
+        ],
+
+        fileList: [],
+        fileList1: [],
+        uploadFileList: [],
+        uploadFileList1: [],
+        fileListOther: [],
+        dsb: true,
+        btn: false,
+        isShow: true,
+        uploading: false,
+
+        formDat: {
+          id: undefined,
+          happenTime: undefined,
+          endTime: undefined,
+          timeSpan: undefined,
+          meetingTitle: undefined,
+          address: undefined,
+          meetingID: undefined,
+          capacity: undefined,
+          attendance: undefined,
+          applicant: undefined,
+          familyName: undefined,
+          name: undefined,
+          phone: undefined,
+          url: "",
+          status: undefined
+
+
+        },
+        dialogImageUrl: '',
+        dialogVisible: false,
+        disabled: false,
+        rules: {
+          meetingTitle: [{
+            required: true,
+            message: '璇疯緭鍏ヤ細璁爣棰�',
+            trigger: 'blur'
+          }],
+          happenTime: [{
+            required: true,
+            message: '璇烽�夋嫨寮�濮嬫椂闂�',
+            trigger: 'blur'
+          }],
+          endTime: [{
+            required: true,
+            message: '璇烽�夋嫨缁撴潫鏃堕棿',
+            trigger: 'blur'
+          }],
+          status: [{
+            required: true,
+            message: '璇疯緭鍏ユ槸鍚︽敞閿�',
+            trigger: 'blur'
+          }],
+          isChange: [{
+            required: true,
+            message: '璇疯緭鍏ュ彉鏇�/娉ㄩ攢',
+            trigger: 'blur'
+          }],
+          price: [{
+            required: true,
+            message: '璇疯緭鍏ラ噾棰�',
+            trigger: 'blur'
+          }],
+          incomeName: [{
+            required: true,
+            message: '璇疯緭鍏ユ敹鏀被鍒�',
+            trigger: 'blur'
+          }],
+          timeLimit: [{
+            required: true,
+            message: '璇疯緭鍏ユ湡闄�',
+            trigger: 'blur'
+          }],
+          location: [{
+            required: true,
+            message: '璇疯緭鍏ュ瓨鏀句綅缃�',
+            trigger: 'blur'
+          }],
+          propertyRight: [{
+            required: true,
+            message: '璇疯緭鍏ュ疄鐜伴毦搴�',
+            trigger: 'blur'
+          }],
+
+          remark: [{
+            // required: true,
+            message: '璇疯緭鍏ュ娉�',
+            trigger: 'blur'
+          }],
+        },
+        typeOptions: [{
+            value: 1,
+            label: '鏄�',
+          },
+          {
+            value: 0,
+            label: '鍚�',
+          }
+        ],
+        typeOptions1: [{
+            value: '鍙樻洿',
+            label: '鍙樻洿',
+          },
+          {
+            value: '娉ㄩ攢',
+            label: '娉ㄩ攢',
+          }
+        ],
+      }
+    },
+    created() {
+      const id = this.$route.params && this.$route.params.id;
+      let jd;
+      if (this.$route.query.detail == 'true') {
+        jd = this.$route.query.detail
+        this.btn = jd
+        this.dsb = !jd
+        //    document.title = "淇敼涓汉璐骇璇︾粏淇℃伅";
+        this.$route.meta.title = "浼氳璇︾粏淇℃伅"; //鍒楄〃鐨勫悕绉�
+      } else {
+        //   document.title = "涓汉璐骇璇︾粏淇℃伅";
+        this.$route.meta.title = "浼氳璇︾粏淇℃伅"; //鍒楄〃鐨勫悕绉�
+        this.btn = false;
+        this.isShow = false
+      }
+
+      let _this = this
+    },
+    mounted() {},
+    methods: {
+      submitForm() {
+        let ul = this.fileList.map(function(elem) {
+          return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API, "")
+        }).join(",")
+        let uls = this.fileListOther.map(function(elem) {
+          return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API, "")
+        }).join(",")
+        this.formData.url = ul + "," + uls
+
+        this.$refs['elForm'].validate(valid => {
+          alert(this.formData.status)
+          if (valid) {
+            if (this.formData.id != undefined) {
+              updateSelfEconomy(this.formData).then(response => {
+                this.$modal.msgSuccess("淇敼鎴愬姛");
+                // this.open = false;
+                if (this.formData.status == 1)
+                  this.formData.status = '鏄�'
+                else
+                  this.formData.status = '鍚�'
+                this.btn = false
+              });
+            } else {
+              this.$modal.msgSuccess("淇敼澶辫触");
+              if (this.formData.status == '鏄�')
+                this.formData.status = 1
+              else
+                this.formData.status = 0
+            }
+          }
+        })
+      },
+    }
+  }
+</script>
+
+<style scoped>
+  .app-container {
+    background-color: #FEF7FC;
+  }
+
+  .mt {
+    position: relative;
+  }
+
+  .dt {
+    display: block;
+
+  }
+
+  .pt {
+    right: 10px;
+    top: -3px;
+    display: block;
+    position: absolute;
+  }
+
+  .form {
+    background: center/11% no-repeat url('../../assets/icons/form.png');
+  }
+
+  .hide /deep/ .el-upload--picture-card {
+    display: none;
+  }
+
+  .form_item {
+    font-size: 12px;
+    font-family: Microsoft YaHei-Regular, Microsoft YaHei;
+    font-weight: 400;
+    color: #000000;
+  }
+</style>
diff --git a/ruoyi-ui/src/views/meeting/replay.vue b/ruoyi-ui/src/views/meeting/replay.vue
new file mode 100644
index 0000000..439b303
--- /dev/null
+++ b/ruoyi-ui/src/views/meeting/replay.vue
@@ -0,0 +1,160 @@
+<template>
+    <div class="app-container" style="width: 1500px; height: 800px;">
+        <!-- 鍥炲埌椤堕儴 -->
+        <el-backtop :bottom="150" :right="30">
+            <el-button type="primary" circle class="el-icon-top"></el-button>
+        </el-backtop>
+
+        <!-- 鏍囬 -->
+        <h1 style="font-size:21px;padding-top:30px;display: flex;">
+            <span>鐩存挱鍥炴斁</span>
+        </h1>
+
+        <hr>
+
+        <!-- 鎼滅储 -->
+        <el-form :model="queryParams1">
+            <el-row>
+                <el-form-item label="" prop="people">
+                    <el-input v-model="queryParams1.people" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" clearable style="width: 300px;
+                   height: 35px;
+                   text-align: left;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;" @keyup.enter.native="handleQuery">
+                        <i slot="prefix" class="el-input__icon el-icon-search"></i>
+                    </el-input>
+                </el-form-item>
+            </el-row>
+        </el-form>
+
+        <!-- <el-form :model="vList"> -->
+        <el-row :gutter="25">
+            <el-col :span="8" :style="margin">
+                <div class="module">
+                    <span class="span1">涓瀹跺涵浼氳</span>
+                    <span class="span2">2010-8-26 12:00</span>
+                    <el-button class="huifang" type="primary" plain >鍥炴斁</el-button>
+                    <div class="tubiao"><i class="el-icon-view">10000</i></div>
+                    <p class="author">鍙戣捣鑰�</p>
+                </div>
+            </el-col>
+            <el-col :span="8">
+                <div class="module">
+                    <span class="span1">涓瀹跺涵浼氳</span>
+                    <span class="span2">2010-8-26 12:00</span>
+                    <el-button class="huifang" type="primary" plain >鍥炴斁</el-button>
+                    <div class="tubiao"><i class="el-icon-view">10000</i></div>
+                    <p class="author">鍙戣捣鑰�</p>
+                </div>
+            </el-col>
+            <el-col :span="8">
+                <div class="module">
+                    <span class="span1">涓瀹跺涵浼氳</span>
+                    <span class="span2">2010-8-26 12:00</span>
+                    <el-button class="huifang" type="primary" plain >鍥炴斁</el-button>
+                    <div class="tubiao"><i class="el-icon-view">10000</i></div>
+                    <p class="author">鍙戣捣鑰�</p>
+                </div>
+            </el-col>
+            <el-col :span="8">
+                <div class="module">
+                    <span class="span1">涓瀹跺涵浼氳</span>
+                    <span class="span2">2010-8-26 12:00</span>
+                    <el-button class="huifang" type="primary" plain >鍥炴斁</el-button>
+                    <div class="tubiao"><i class="el-icon-view">10000</i></div>
+                    <p class="author">鍙戣捣鑰�</p>
+                </div>
+            </el-col>
+        </el-row>
+        <!-- </el-form> -->
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            queryParams1: [],
+            vList: [],
+
+        }
+    },
+    methods: {
+
+    }
+}
+</script>
+<style scoped="">
+.app-container {
+    background-color: #FEF7FC;
+/*   width: 2000px;
+    height: 1500px; */
+}
+
+.button-container {
+    text-align: right;
+    display: flex;
+    justify-content: flex-end;
+    align-items: center;
+    flex-grow: 1;
+}
+
+.el-table {
+    border-radius: 14px 14px 14px 14px;
+}
+
+.el-col {
+    border-radius: 4px;
+}
+
+.module {
+    width: 100%;
+    height: 160px;
+    background-color: rgb(255, 255, 255);
+    border-color: red;
+    border-radius: 6%;
+    margin-top: 20px;
+    margin-bottom: 20px;
+    margin-left: 5px;
+    margin-right: 5px;
+    position: relative;
+}
+
+.grid-content {
+    border-radius: 4px;
+    min-height: 36px;
+}
+
+.span1 {
+    float: left;
+    font-size: 20px;
+    margin-top: 5%;
+    margin-left: 3%;
+}
+
+.span2 {
+    float: right;
+    font-size: 20px;
+    margin-top: 5%;
+    margin-right: 3%;
+    margin-bottom: 50px;
+}
+
+.huifang{
+    position: absolute ;
+    bottom: 20px;
+    right: 10px;
+    font-size: 18px;
+}
+
+.tubiao{
+    position: absolute;
+    bottom: 20px;
+    right: 100px;
+}
+
+.author{
+    position: absolute;
+    bottom: 5px;
+    left: 100px;
+}
+</style>
diff --git a/ruoyi-ui/src/views/meeting/statistics.vue b/ruoyi-ui/src/views/meeting/statistics.vue
new file mode 100644
index 0000000..05955e7
--- /dev/null
+++ b/ruoyi-ui/src/views/meeting/statistics.vue
@@ -0,0 +1,38 @@
+<template>
+    <div class="app-container">
+
+      <el-backtop :bottom="150" :right="30">
+        <el-button type="primary" circle class="el-icon-top"></el-button>
+      </el-backtop>
+
+      <h1 style="font-size:21px;padding-top:30px;display: flex;">
+        <span>浼氳缁熻</span>
+      </h1>
+
+      <hr />
+
+    </div>
+  </template>
+
+  <script>
+
+  </script>
+<style scoped>
+  .el-table__row.statistics-warning-row {
+    background: #E0EEFE;
+
+  }
+  .el-table__row.statistics-warning-row1 {
+    background: #FFEFF2;
+
+  }
+  .el-table__cell {
+    font-size: 14px; /* 璁剧疆瀛椾綋澶у皬 */
+  }
+  .button-container {
+    display: inline-flex; /* 璁剧疆鎸夐挳瀹瑰櫒涓鸿鍐呭厓绱� */
+  }
+  .app-container {
+    background-color: #FEF7FC;
+  }
+  </style>
diff --git a/ruoyi-ui/src/views/meeting/webcast.vue b/ruoyi-ui/src/views/meeting/webcast.vue
new file mode 100644
index 0000000..abd3eb6
--- /dev/null
+++ b/ruoyi-ui/src/views/meeting/webcast.vue
@@ -0,0 +1,313 @@
+<template>
+  <div class="app-container" style="width:100%; height: 100%;">
+    <!-- 鍥炲埌椤堕儴 -->
+    <el-backtop :bottom="150" :right="30">
+      <el-button type="primary" circle class="el-icon-top"></el-button>
+    </el-backtop>
+
+    <!-- 鏍囬 -->
+    <h1 style="font-size:21px;padding-top:30px;display: flex;">
+      <span>鐩存挱</span>
+      <div class="button-container"></div>
+      <div style="display: flex; align-items: center;">
+        <el-button size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 200px">
+          <div class="form" @click="newRequest"><el-icon style="padding-right:100px;"></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-form :model="queryParams1">
+      <el-row>
+        <el-form-item label="" prop="people">
+          <el-input v-model="queryParams1.people" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" clearable style="width: 300px;
+                   height: 35px;
+                   text-align: left;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;" @keyup.enter.native="handleQuery">
+            <i slot="prefix" class="el-input__icon el-icon-search"></i>
+          </el-input>
+        </el-form-item>
+      </el-row>
+    </el-form>
+
+    <el-row :gutter="0">
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+      <el-col :span="4">
+        <div class="module">
+          <div class="video">
+            66666666
+          </div>
+          <span class="span1">涓瀹跺涵浼氳</span>
+          <div class="tubiao"><i class="el-icon-view">10000</i></div>
+          <p class="author">鍙戣捣鑰�</p>
+        </div>
+      </el-col>
+    </el-row>
+
+
+    <!-- 鐩存挱鐢宠瀵硅瘽妗� -->
+    <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="happenTime">-->
+        <!--          <el-input v-model="formDat.happenTime" placeholder="璇疯緭鍏ヨ幏寰楁椂闂�" clearable :style="{width: '100%'}" ></el-input>-->
+        <!--        </el-form-item>-->
+        <!--        <el-form-item label="寮�濮嬫椂闂�" prop="happenTime">
+        </el-form-item> -->
+        <el-form-item label="鏃堕棿" prop="timeSpan">
+          <el-date-picker v-model="formDat.timeSpan" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss">
+          </el-date-picker>
+        </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="address">
+          <el-input v-model="formDat.address" placeholder="璇疯緭鍏ヤ細璁湴鐐�" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="浼氳瀹や唬鐮�" prop="meetingID">
+          <el-input v-model="formDat.meetingID" placeholder="璇疯緭鍏ヤ細璁浠g爜" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鍙绾充汉鏁�" prop="capacity">
+          <el-input v-model="formDat.capacity" placeholder="璇疯緭鍏ュ彲瀹圭撼浜烘暟" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鍙備笌浜烘暟" prop="attendance">
+          <el-input v-model="formDat.attendance" placeholder="璇疯緭鍏ュ弬涓庝汉鏁�" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鐢宠浜�" prop="applicant">
+          <el-input v-model="formDat.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鐢宠瀹跺涵鎴栭儴闂�" prop="familyName">
+          <el-input v-model="formDat.familyName" placeholder="璇疯緭鍏ョ敵璇峰搴垨閮ㄩ棬" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鑱旂郴浜�" prop="name">
+          <el-input v-model="formDat.name" placeholder="璇疯緭鍏ヨ仈绯讳汉" clearable :style="{width: '100%'}">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
+          <el-input v-model="formDat.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" clearable :style="{width: '100%'}"></el-input>
+        </el-form-item>
+
+      </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>
+  export default {
+    data() {
+      return {
+        queryParams1: [],
+        // 寮瑰嚭灞傛爣棰�
+        title: "",
+        // 鏄惁鏄剧ず寮瑰嚭灞�
+        open: false,
+        formDat: {
+          id: undefined,
+          happenTime: undefined,
+          endTime: undefined,
+          timeSpan: undefined,
+          meetingTitle: undefined,
+          address: undefined,
+          meetingID: undefined,
+          capacity: undefined,
+          attendance: undefined,
+          applicant: undefined,
+          familyName: undefined,
+          name: undefined,
+          phone: undefined,
+          url: "",
+
+
+        },
+
+      }
+    },
+    methods: {
+      newRequest() {
+        // this.reset();
+        this.open = true;
+        this.title = "鐩存挱鐢宠";
+      },
+      cancel() {
+        this.open = false;
+        // this.reset();
+      },
+      submitDataScope() {
+        console.log(this.formDat.timeSpan)
+      }
+
+    }
+  }
+</script>
+<style scoped="">
+  .video {
+    background-color: black;
+    width: 90%;
+    margin-top: 5%;
+    margin-left: 5%;
+    height: 70%;
+    position: absolute;
+  }
+
+  .app-container {
+    background-color: #FEF7FC;
+    /*   width: 2000px;
+    height: 1500px; */
+  }
+
+  .button-container {
+    text-align: right;
+    display: flex;
+    justify-content: flex-end;
+    align-items: center;
+    flex-grow: 1;
+  }
+
+  .el-table {
+    border-radius: 14px 14px 14px 14px;
+  }
+
+  .el-col {
+    border-radius: 4px;
+  }
+
+  .module {
+    width: 250px;
+    height: 250px;
+    background-color: rgb(255, 255, 255);
+    border-color: red;
+    border-radius: 6%;
+    margin-top: 20px;
+    margin-bottom: 20px;
+    /*    margin-left: 5px;
+    margin-right: 5px; */
+    position: relative;
+  }
+
+  .grid-content {
+    border-radius: 4px;
+    min-height: 36px;
+  }
+
+  .span1 {
+    float: left;
+    font-size: 15px;
+    position: absolute;
+    bottom: 40px;
+    left: 80px;
+  }
+
+  .tubiao {
+    position: absolute;
+    bottom: 20px;
+    right: 10px;
+  }
+
+  .author {
+    position: absolute;
+    bottom: 10px;
+    left: 80px;
+  }
+
+  .form {
+    background: center/11% no-repeat url('../../assets/icons/add1.png');
+
+  }
+</style>

--
Gitblit v1.9.1