|
@@ -1,1249 +1,1249 @@
|
|
|
-<!--组织详情-->
|
|
|
-<template>
|
|
|
- <div class="index-home">
|
|
|
- <div v-loading.fullscreen.lock="loadingFull" />
|
|
|
- <div class="first">
|
|
|
- <div class="name">{{ organDetail.name }}</div>
|
|
|
- <div class="left">
|
|
|
- <div class="title">
|
|
|
- <div>支部书记:</div>
|
|
|
- <div>支部副书记:</div>
|
|
|
- <div>支部青年委员:</div>
|
|
|
- <div>支部宣传委员:</div>
|
|
|
- <div>支部组织委员:</div>
|
|
|
- <div>换届时间(创建时间):</div>
|
|
|
- <div>届数:</div>
|
|
|
- </div>
|
|
|
- <div class="text">
|
|
|
- <div>{{ testEmpety(organDetail.zb_sj) }}</div>
|
|
|
- <div>{{ testEmpety(organDetail.zb_fsj) }}</div>
|
|
|
-
|
|
|
- <div>{{ testEmpety(organDetail.zb_qnwy) }}</div>
|
|
|
-
|
|
|
- <div>{{ testEmpety(organDetail.zb_xcwy) }}</div>
|
|
|
-
|
|
|
- <div>{{ testEmpety(organDetail.zb_wy) }}</div>
|
|
|
- <div>{{ testEmpety(organDetail.zb_hj_date) }}</div>
|
|
|
- <div>第{{ testEmpety(organDetail.zb_rq) }}届</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="left">
|
|
|
- <div class="title">
|
|
|
- <div class="can-click" @click="handleSetLineChartData(5)">
|
|
|
- 正式党员数:
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="handleSetLineChartData(4)">
|
|
|
- 预备党员数:
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="handleSetLineChartData(6)">
|
|
|
- 发展对象数:
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="handleSetLineChartData(3)">
|
|
|
- 积极分子数:
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="skipRudangZhiyuan">
|
|
|
- 上交入党申请书人数:
|
|
|
- </div>
|
|
|
- <div>状态:</div>
|
|
|
- </div>
|
|
|
- <div class="text">
|
|
|
- <div class="can-click" @click="handleSetLineChartData(5)">
|
|
|
- {{ organDetail.party_member_num }}
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="handleSetLineChartData(4)">
|
|
|
- {{ organDetail.prepare_party_member_num }}
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="handleSetLineChartData(6)">
|
|
|
- {{ organDetail.development_member_num }}
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="handleSetLineChartData(3)">
|
|
|
- {{ organDetail.activists_member_num }}
|
|
|
- </div>
|
|
|
- <div class="can-click" @click="skipRudangZhiyuan">
|
|
|
- {{ organDetail.apply_member_num }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <el-tag v-if="organDetail.status == 1" size="mini">正常</el-tag>
|
|
|
- <el-tag v-else type="danger" size="mini">暂停</el-tag>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <el-row :gutter="40" class="panel-group">
|
|
|
- <el-col
|
|
|
- :xs="8"
|
|
|
- :sm="8"
|
|
|
- :lg="4"
|
|
|
- v-for="(item, index) in statisticsList"
|
|
|
- :key="index"
|
|
|
- class="card-panel-col no-bottom"
|
|
|
- >
|
|
|
- <div class="card-panel">
|
|
|
- <div
|
|
|
- class="card-panel-icon-wrapper icon-people"
|
|
|
- v-if="item.id == 1"
|
|
|
- >
|
|
|
- <img
|
|
|
- src="@/assets/image/jiji.png"
|
|
|
- alt=""
|
|
|
- srcset=""
|
|
|
- class="card-img"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div
|
|
|
- class="card-panel-icon-wrapper icon-message"
|
|
|
- v-if="item.id == 2"
|
|
|
- >
|
|
|
- <img
|
|
|
- src="@/assets/image/fazhan.png"
|
|
|
- alt=""
|
|
|
- srcset=""
|
|
|
- class="card-img"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 3">
|
|
|
- <img
|
|
|
- src="@/assets/image/yubei.png"
|
|
|
- alt=""
|
|
|
- srcset=""
|
|
|
- class="card-img"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 4">
|
|
|
- <img
|
|
|
- src="@/assets/image/dangxiaozu.png"
|
|
|
- alt=""
|
|
|
- srcset=""
|
|
|
- class="card-img"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 5">
|
|
|
- <img
|
|
|
- src="@/assets/image/weiyuan.png"
|
|
|
- alt=""
|
|
|
- srcset=""
|
|
|
- class="card-img"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 6">
|
|
|
- <img
|
|
|
- src="@/assets/image/zuzhishenghuo.png"
|
|
|
- alt=""
|
|
|
- srcset=""
|
|
|
- class="card-img"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="card-panel-description">
|
|
|
- <div class="card-panel-text">
|
|
|
- {{ item.name }}
|
|
|
- </div>
|
|
|
- <count-to
|
|
|
- :start-val="0"
|
|
|
- :end-val="item.nums"
|
|
|
- class="card-panel-num"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- <div class="second">
|
|
|
- <div class="left">
|
|
|
- <div class="title" style="text-algin: left">支部活动记录</div>
|
|
|
- <div class="search">
|
|
|
- <el-form
|
|
|
- ref="searchParams"
|
|
|
- :inline="true"
|
|
|
- :model="queryForm"
|
|
|
- label-width="80px"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model="queryForm.title"
|
|
|
- placeholder="活动名称"
|
|
|
- clearable
|
|
|
- />
|
|
|
-
|
|
|
- <el-select
|
|
|
- v-model="queryForm.category_id"
|
|
|
- filterable
|
|
|
- clearable
|
|
|
- placeholder="请选择活动分类"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in activeSortList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
-
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- @click="searchRecord"
|
|
|
- icon="el-icon-search"
|
|
|
- >搜索</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="(recordVisible = true), (type = 1)"
|
|
|
- >添加记录</el-button
|
|
|
- >
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <el-table
|
|
|
- :data="changeRecord"
|
|
|
- border
|
|
|
- style="width: 100%"
|
|
|
- max-height="450"
|
|
|
- >
|
|
|
- <el-table-column label="序号" width="60" type="index" align="center">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="title"
|
|
|
- label="活动标题"
|
|
|
- min-width="200"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="day"
|
|
|
- label="活动日期"
|
|
|
- min-width="120"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="compere"
|
|
|
- label="主持人"
|
|
|
- min-width="120"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="participant"
|
|
|
- label="参与人"
|
|
|
- min-width="120"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="address"
|
|
|
- label="活动地点"
|
|
|
- min-width="120"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="type"
|
|
|
- label="活动类型"
|
|
|
- min-width="100"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="self_point"
|
|
|
- label="自评分数"
|
|
|
- min-width="100"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="mutual_point"
|
|
|
- label="互评分数"
|
|
|
- min-width="100"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="created_at"
|
|
|
- label="创建时间"
|
|
|
- min-width="155"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="updated_at"
|
|
|
- label="修改时间"
|
|
|
- min-width="155"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column
|
|
|
- fixed="right"
|
|
|
- label="操作"
|
|
|
- align="center"
|
|
|
- width="210"
|
|
|
- >
|
|
|
- <template slot-scope="{ row }">
|
|
|
- <el-button
|
|
|
- @click="recordDetail(row.id)"
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- size="mini"
|
|
|
- >详情</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- size="mini"
|
|
|
- @click="editDetail(row)"
|
|
|
- >编辑</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- type="warning"
|
|
|
- plain
|
|
|
- size="mini"
|
|
|
- @click="deleteRecord(row.id)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- :current-page="queryForm.page"
|
|
|
- :layout="layout"
|
|
|
- :page-size="queryForm.per_page"
|
|
|
- :page-sizes="[15, 20, 30, 40, 50, 100]"
|
|
|
- :total="total"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <!--查看详情-->
|
|
|
- <el-dialog
|
|
|
- title="查看详情"
|
|
|
- :visible.sync="dialogVisible"
|
|
|
- width="30%"
|
|
|
- center
|
|
|
- >
|
|
|
- <div class="details">
|
|
|
- <div class="det">
|
|
|
- <div class="left_1">支部名称:{{ organDetail.name }}</div>
|
|
|
- <div class="right_1">支部书记:{{ recDetails.zb_sj }}</div>
|
|
|
- </div>
|
|
|
- <div class="det">
|
|
|
- <div class="left_1">换届日期:{{ recDetails.zb_hj_date }}</div>
|
|
|
- <div class="right_1">届数:{{ recDetails.zb_rq }}</div>
|
|
|
- </div>
|
|
|
- <div class="det">
|
|
|
- <div class="left_1">支部组织委员:{{ recDetails.zb_wy }}</div>
|
|
|
- <div class="right_1">支部宣传委员:{{ recDetails.zb_xcwy }}</div>
|
|
|
- </div>
|
|
|
- <div class="det">
|
|
|
- <div class="left_1" style="flex: 0 0 20%">其他任职人员:</div>
|
|
|
- <div class="right_1">
|
|
|
- <div
|
|
|
- v-for="(item, index1) in recDetails.zb_qtry"
|
|
|
- :key="index1"
|
|
|
- style="height: 40px; line-height: 50px"
|
|
|
- >
|
|
|
- <span>{{ item.name }}</span> <span>({{ item.job }})</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <span slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="dialogVisible = false"
|
|
|
- >关闭</el-button
|
|
|
- >
|
|
|
- </span>
|
|
|
- </el-dialog>
|
|
|
- <!--新增换届记录-->
|
|
|
- <el-dialog
|
|
|
- :title="formType == 0 ? '新增支部活动' : '编辑支部活动'"
|
|
|
- :visible.sync="recordVisible"
|
|
|
- width="700px"
|
|
|
- @close="closeForm"
|
|
|
- center
|
|
|
- >
|
|
|
- <el-form
|
|
|
- :model="setupForm"
|
|
|
- ref="setupForm"
|
|
|
- label-width="100px"
|
|
|
- :rules="rules"
|
|
|
- class="demo-ruleForm"
|
|
|
- >
|
|
|
- <el-form-item label="活动标题" prop="title">
|
|
|
- <el-input
|
|
|
- v-model="setupForm.title"
|
|
|
- placeholder="请填写活动标题"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="活动分类" prop="category_id">
|
|
|
- <el-select
|
|
|
- v-model="setupForm.category_id"
|
|
|
- filterable
|
|
|
- placeholder="请选择活动分类"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in activeSortList"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="支部自评" prop="self_point">
|
|
|
- <el-input
|
|
|
- v-model="setupForm.self_point"
|
|
|
- placeholder="请填写支部自评分数"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="活动日期" prop="day">
|
|
|
- <el-date-picker
|
|
|
- v-model="setupForm.day"
|
|
|
- type="date"
|
|
|
- format="yyyy-MM-dd"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- <!-- <el-date-picker
|
|
|
- v-model="setupForm.day"
|
|
|
- type="date"
|
|
|
- placeholder="选择活动日期时间"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- >
|
|
|
- </el-date-picker> -->
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="主持人" prop="compere">
|
|
|
- <el-input
|
|
|
- v-model="setupForm.compere"
|
|
|
- placeholder="请填写活动主持人"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="参与人员" prop="participant">
|
|
|
- <el-input
|
|
|
- v-model="setupForm.participant"
|
|
|
- placeholder="请填写活动参与人员"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="活动地址" prop="address">
|
|
|
- <el-input
|
|
|
- v-model="setupForm.address"
|
|
|
- placeholder="请填写活动地址"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <div class="position">
|
|
|
- <span class="star">*</span>
|
|
|
- <el-form-item label="封面图" prop="cover">
|
|
|
- <div class="pre-cover" v-if="formType == 1 && uploadType == 0">
|
|
|
- <img :src="setupForm.cover" alt="" />
|
|
|
- </div>
|
|
|
- <el-upload
|
|
|
- class="upload-demo"
|
|
|
- ref="upload"
|
|
|
- :action="base_url + '/upload'"
|
|
|
- :file-list="fileList"
|
|
|
- :auto-upload="true"
|
|
|
- :on-success="uploadSuccess"
|
|
|
- :multiple="true"
|
|
|
- :data="fileData"
|
|
|
- accept=".jpg,.jpeg,.png"
|
|
|
- list-type="picture"
|
|
|
- >
|
|
|
- <el-button slot="trigger" size="mini" type="primary">{{
|
|
|
- formType == 0 ? "选择图片" : "重新上传"
|
|
|
- }}</el-button>
|
|
|
- <div slot="tip" class="el-upload__tip">
|
|
|
- 只能上传jpg/png文件,且不超过500kb
|
|
|
- </div>
|
|
|
- </el-upload>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- <div class="position">
|
|
|
- <span class="star">*</span>
|
|
|
- <el-form-item label="活动内容" prop="body">
|
|
|
- <tinymce v-model="setupForm.body" :height="300" />
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- <el-form-item label="活动类型" prop="type">
|
|
|
- <el-select
|
|
|
- v-model="setupForm.type"
|
|
|
- filterable
|
|
|
- placeholder="请选择活动类型(线上、线下)"
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in activeType"
|
|
|
- :key="item"
|
|
|
- :label="item"
|
|
|
- :value="item"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!--
|
|
|
- <el-form-item label="活动状态" prop="status">
|
|
|
- <el-select
|
|
|
- v-model="setupForm.status"
|
|
|
- filterable
|
|
|
- placeholder="请选择"
|
|
|
- style="width:100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in status"
|
|
|
- :key="item.value"
|
|
|
- :label="item.name"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>-->
|
|
|
- <el-form-item v-if="formType == 0">
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- v-if="formType == 0"
|
|
|
- @click="submitForm('setupForm')"
|
|
|
- >立即创建</el-button
|
|
|
- >
|
|
|
- <el-button @click="resetForm('setupForm')">重置</el-button>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item v-if="formType == 1">
|
|
|
- <el-button type="primary" @click="saveEdit('setupForm')"
|
|
|
- >保存编辑</el-button
|
|
|
- >
|
|
|
- <el-button @click="cancelForm('setupForm')">取消</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </el-dialog>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-<script>
|
|
|
-import {
|
|
|
- organizaDetail,
|
|
|
- changeRecords,
|
|
|
- setupRecord,
|
|
|
- updateRecord,
|
|
|
- deleteRecord,
|
|
|
- activeSort,
|
|
|
- activeStatistics,
|
|
|
-} from "@/api/organizationDetail/index";
|
|
|
-
|
|
|
-import Tinymce from "@/components/Tinymce";
|
|
|
-import CountTo from "vue-count-to";
|
|
|
-export default {
|
|
|
- data() {
|
|
|
- return {
|
|
|
- uploadType: 0, //点击重新上传变为1 隐藏已上传图片
|
|
|
- formType: 0, //0添加,//1 编辑
|
|
|
- organDetail: "",
|
|
|
- loadingFull: false,
|
|
|
- imgDetaildialogVisible: false,
|
|
|
- changeRecord: [], //换届记录
|
|
|
- dialogVisible: false,
|
|
|
- recDetails: {}, //记录详情,
|
|
|
- recordVisible: false, //新增换届记录
|
|
|
- recordVisible1: false, //编辑换届记录
|
|
|
- fileDialogVisible: false, //新建文件列表
|
|
|
- detailVisible: false, //文件详情
|
|
|
- queryForm: {
|
|
|
- page: 1,
|
|
|
- per_page: 15,
|
|
|
- title: "",
|
|
|
- },
|
|
|
- searchParams: {
|
|
|
- name: "", //支部名称
|
|
|
- type: "",
|
|
|
- zb_sj: "",
|
|
|
- limit: 15, //每页显示条数
|
|
|
- page: 1, //当前页码
|
|
|
- }, //搜索框数据
|
|
|
- setupForm: {
|
|
|
- organization_id: "", //当前支部id
|
|
|
- status: 1,
|
|
|
- category_id: "",
|
|
|
- type: "线下活动",
|
|
|
- day: "",
|
|
|
- },
|
|
|
- status: [
|
|
|
- {
|
|
|
- value: 0,
|
|
|
- name: "暂停",
|
|
|
- },
|
|
|
- {
|
|
|
- value: 1,
|
|
|
- name: "正常",
|
|
|
- },
|
|
|
- ],
|
|
|
- fileType: [
|
|
|
- {
|
|
|
- value: 0,
|
|
|
- name: "富文本",
|
|
|
- },
|
|
|
- {
|
|
|
- value: 1,
|
|
|
- name: "图片",
|
|
|
- },
|
|
|
- {
|
|
|
- value: 2,
|
|
|
- name: "文件",
|
|
|
- },
|
|
|
- ], //文件类型选择列表
|
|
|
- fileDetail: "",
|
|
|
- type: "", //类型1为新增 2为编辑
|
|
|
- id: "",
|
|
|
- danganList: [], //换届文档列表
|
|
|
- creatFile: {
|
|
|
- type: "",
|
|
|
- organization_id: "",
|
|
|
- organization_activity_id: "",
|
|
|
- name: "",
|
|
|
- status: 1,
|
|
|
- self_point: "",
|
|
|
- body: "",
|
|
|
- }, //
|
|
|
- rules: {
|
|
|
- title: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请输入标题",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- category_id: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择活动分类",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- day: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择日期",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- type: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择活动类型",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- self_point: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请填写活动自评分数",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- address: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请填写活动地址",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- compere: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请填写主持人员",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- participant: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请填写参与人员",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
- status: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择状态",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- }, //表格验证规则
|
|
|
- activeName: "image",
|
|
|
- fileData: {
|
|
|
- file_type: "img",
|
|
|
- },
|
|
|
- fileList: [], //上传挡案文件列表
|
|
|
- resourceIds: [], //文件id
|
|
|
- file: "",
|
|
|
- rowId: "",
|
|
|
- otherPerson: [
|
|
|
- {
|
|
|
- index: "",
|
|
|
- name: "",
|
|
|
- job: "",
|
|
|
- },
|
|
|
- ],
|
|
|
- bigImage: "",
|
|
|
- activeType: ["线下活动", "线上活动"],
|
|
|
- total: 0,
|
|
|
- layout: "total, sizes, prev, pager, next, jumper",
|
|
|
- activeSortList: [], //活动分类列表
|
|
|
- statisticsList: [], //活动统计列表
|
|
|
- };
|
|
|
- },
|
|
|
- components: { Tinymce, CountTo },
|
|
|
- created() {
|
|
|
- const id = this.$route.query.id;
|
|
|
- this.id = id;
|
|
|
- this.setupForm.organization_id = id;
|
|
|
- this.creatFile.organization_id = id;
|
|
|
- this.queryForm.organization_id = id;
|
|
|
- this.detail(id);
|
|
|
- this.record();
|
|
|
- this.creatFile.type = 1;
|
|
|
- this.fileData.file_type = "img";
|
|
|
- this.activeSort();
|
|
|
- this.activeStatistics();
|
|
|
- },
|
|
|
- methods: {
|
|
|
- testEmpety(value) {
|
|
|
- if (value) return value;
|
|
|
- else return "--";
|
|
|
- },
|
|
|
- handleSetLineChartData(type) {
|
|
|
- this.$router.push({
|
|
|
- path: "/personnel/index",
|
|
|
- query: {
|
|
|
- politics_status: type,
|
|
|
- organization_id: this.id,
|
|
|
- },
|
|
|
- });
|
|
|
- },
|
|
|
- //上传入党志愿书人数
|
|
|
- skipRudangZhiyuan() {
|
|
|
- this.$router.push({
|
|
|
- path: "/personnel/index",
|
|
|
- query: {
|
|
|
- organization_id: this.id,
|
|
|
- is_rdsqs: 1,
|
|
|
- },
|
|
|
- });
|
|
|
- },
|
|
|
- //获取活动分类
|
|
|
- async activeSort() {
|
|
|
- this.activeSortList = [];
|
|
|
- const { data } = await activeSort();
|
|
|
- for (let key in data) {
|
|
|
- console.log(key, data[key], "pppp");
|
|
|
- this.activeSortList.push({
|
|
|
- value: key,
|
|
|
- label: data[key],
|
|
|
- });
|
|
|
- }
|
|
|
- },
|
|
|
- //获取活动分类统计
|
|
|
- async activeStatistics() {
|
|
|
- var date = new Date();
|
|
|
- var y = date.getFullYear();
|
|
|
- let params = {
|
|
|
- organization_id: this.id,
|
|
|
- year: y,
|
|
|
- };
|
|
|
- const { data } = await activeStatistics(params);
|
|
|
- this.statisticsList = data;
|
|
|
- console.log(data, "获取活动分类统计");
|
|
|
- },
|
|
|
- //pageSize 改变时会触发
|
|
|
- handleSizeChange(val) {
|
|
|
- this.queryForm.per_page = val;
|
|
|
- this.searchRecord();
|
|
|
- },
|
|
|
- // currentPage 改变时会触发
|
|
|
- handleCurrentChange(val) {
|
|
|
- this.queryForm.page = val;
|
|
|
- this.searchRecord();
|
|
|
- },
|
|
|
- //关闭大图
|
|
|
- closeBigImg() {
|
|
|
- this.imgDetaildialogVisible = false;
|
|
|
- },
|
|
|
- //查看大图
|
|
|
- imageDetail(item) {
|
|
|
- this.imgDetaildialogVisible = true;
|
|
|
- this.bigImage = item;
|
|
|
- },
|
|
|
- //组织信息
|
|
|
- async detail(id) {
|
|
|
- this.loadingFull = true;
|
|
|
- await organizaDetail(id).then((res) => {
|
|
|
- this.organDetail = res.data;
|
|
|
- this.loadingFull = false;
|
|
|
- });
|
|
|
- },
|
|
|
- //搜索换届记录
|
|
|
- async searchRecord() {
|
|
|
- this.queryForm.page = 1;
|
|
|
- this.loadingFull = true;
|
|
|
- await changeRecords(this.queryForm).then((res) => {
|
|
|
- this.changeRecord = res.data.data;
|
|
|
- this.loadingFull = false;
|
|
|
- });
|
|
|
- },
|
|
|
- //组织换届记录列表
|
|
|
- async record(id) {
|
|
|
- this.loadingFull = true;
|
|
|
- await changeRecords(this.queryForm).then((res) => {
|
|
|
- this.loadingFull = false;
|
|
|
- console.log(res, "res");
|
|
|
- this.changeRecord = res.data.data;
|
|
|
- this.total = res.data.meta.pagination.total;
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- //换届记录详情
|
|
|
- async recordDetail(id) {
|
|
|
- this.$router.push({
|
|
|
- path: "/organization/list_details",
|
|
|
- query: {
|
|
|
- id: id,
|
|
|
- organization_id: this.$route.query.id,
|
|
|
- },
|
|
|
- });
|
|
|
- },
|
|
|
- //编辑换届记录
|
|
|
- editDetail: function (row) {
|
|
|
- this.formType = 1;
|
|
|
- this.recordVisible = true;
|
|
|
- this.setupForm = Object.assign({}, row);
|
|
|
- this.setupForm.category_id = this.setupForm.category_id.toString();
|
|
|
- this.setupForm.organization_id = this.$route.query.id;
|
|
|
- },
|
|
|
- //saveEdit保存编辑
|
|
|
- async saveEdit(formName) {
|
|
|
- this.$refs[formName].validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- await updateRecord(this.setupForm).then((res) => {
|
|
|
- this.$message({
|
|
|
- message: "编辑成功",
|
|
|
- type: "success",
|
|
|
- });
|
|
|
- this.recordVisible = false;
|
|
|
- this.loadingFull = false;
|
|
|
- this.uploadType = 0;
|
|
|
- this.$refs[formName].resetFields();
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //删除换届记录
|
|
|
- deleteRecord(id) {
|
|
|
- this.$confirm("此操作将删除此换届记录, 是否继续?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- this.sureDeleteRecord(id);
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- this.$message({
|
|
|
- type: "info",
|
|
|
- message: "已取消删除",
|
|
|
- });
|
|
|
- });
|
|
|
- },
|
|
|
- async sureDeleteRecord(id) {
|
|
|
- await deleteRecord(id).then((res) => {
|
|
|
- if (!res.code) {
|
|
|
- this.$message({
|
|
|
- message: "删除成功",
|
|
|
- type: "success",
|
|
|
- });
|
|
|
- this.record(this.id);
|
|
|
- } else {
|
|
|
- this.$message({
|
|
|
- message: "删除失败",
|
|
|
- type: "error",
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- //创建换届记录
|
|
|
- submitForm(formName) {
|
|
|
- this.$refs[formName].validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- var reg = new RegExp("^(\\d|[1-9]\\d|100)$");
|
|
|
- if (!reg.test(this.setupForm.self_point)) {
|
|
|
- this.$message({
|
|
|
- message: "请输入0-100的整数!",
|
|
|
- type: "warning",
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- if (!this.setupForm.cover) {
|
|
|
- this.$message({
|
|
|
- type: "error",
|
|
|
- message: "请上传封面图!",
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
- if (!this.setupForm.body) {
|
|
|
- this.$message({
|
|
|
- type: "error",
|
|
|
- message: "请填写活动内容!",
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- await this.setup(formName);
|
|
|
- this.loadingFull = false;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- async setup(formName) {
|
|
|
- // this.setupForm.zb_qtry=this.setupForm.zb_qtry.toString()
|
|
|
- await setupRecord(this.setupForm).then((res) => {
|
|
|
- this.loadingFull = false;
|
|
|
- this.recordVisible = false;
|
|
|
- this.$refs[formName].resetFields();
|
|
|
- this.fileList = [];
|
|
|
- this.setupForm.body = "";
|
|
|
- this.record(this.id);
|
|
|
- });
|
|
|
- },
|
|
|
- resetForm(formName) {
|
|
|
- this.$refs[formName].resetFields();
|
|
|
- },
|
|
|
- cancelForm() {
|
|
|
- this.recordVisible = false;
|
|
|
- this.setupForm = {};
|
|
|
- this.setupForm.status = 1;
|
|
|
- this.setupForm.organization_id = this.$route.query.id;
|
|
|
- this.setupForm.body = "";
|
|
|
- this.formType = 0;
|
|
|
- },
|
|
|
- closeForm() {
|
|
|
- this.recordVisible = false;
|
|
|
- this.setupForm = {};
|
|
|
- this.setupForm.status = 1;
|
|
|
- this.setupForm.organization_id = this.$route.query.id;
|
|
|
- this.setupForm.body = "";
|
|
|
- this.formType = 0;
|
|
|
- },
|
|
|
-
|
|
|
- uploadSuccess(response, file, fileList) {
|
|
|
- if (response.code == 200) {
|
|
|
- this.setupForm.cover = response.data.url;
|
|
|
- this.uploadType = 1;
|
|
|
- this.file = response.data.url;
|
|
|
- this.resourceIds.push(response.data.id);
|
|
|
- }
|
|
|
- },
|
|
|
- //添加其他人员及职务
|
|
|
- addOtherPerson(type) {
|
|
|
- this.index = this.index++;
|
|
|
- this.otherPerson.push({
|
|
|
- name: "",
|
|
|
- index: this.index,
|
|
|
- job: "",
|
|
|
- });
|
|
|
- this.setupForm.zb_qtry = this.otherPerson;
|
|
|
- },
|
|
|
- },
|
|
|
-};
|
|
|
-</script>
|
|
|
-<style lang="scss" scoped>
|
|
|
-@import "@/assets/styles/content.scss";
|
|
|
-.pre-cover {
|
|
|
- width: 100%;
|
|
|
- border-radius: 12px;
|
|
|
- overflow: hidden;
|
|
|
- height: 100px;
|
|
|
- border: solid 1px rgb(219, 217, 217);
|
|
|
- img {
|
|
|
- height: 100px;
|
|
|
- }
|
|
|
-}
|
|
|
-.position {
|
|
|
- position: relative;
|
|
|
- .star {
|
|
|
- position: absolute;
|
|
|
- top: 15px;
|
|
|
- left: 25px;
|
|
|
- color: red;
|
|
|
- }
|
|
|
-}
|
|
|
-.el-table .warning-row {
|
|
|
- background: #ecf5ff;
|
|
|
-}
|
|
|
-.el-dialog__body {
|
|
|
- padding-top: 0 !important;
|
|
|
-}
|
|
|
-.edit-image {
|
|
|
- text-align: center;
|
|
|
- display: flex;
|
|
|
- flex-flow: row wrap;
|
|
|
-}
|
|
|
-
|
|
|
-.img-list {
|
|
|
- flex: 0 0 200px;
|
|
|
- height: 200px;
|
|
|
- width: 200px;
|
|
|
- margin: 20px 5px 5px;
|
|
|
- overflow: hidden;
|
|
|
- img {
|
|
|
- border: 1px solid #ccc;
|
|
|
- border-radius: 5px;
|
|
|
- height: 200px;
|
|
|
- width: 200px;
|
|
|
- }
|
|
|
-}
|
|
|
-.big-img {
|
|
|
- position: fixed;
|
|
|
- z-index: 99999;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- background-color: rgba(0, 0, 0, 0.6);
|
|
|
- overflow: hidden;
|
|
|
- .img-border {
|
|
|
- height: 90vh;
|
|
|
- width: 50%;
|
|
|
- min-width: 500px;
|
|
|
- margin: 0 auto;
|
|
|
- margin-top: 5vh;
|
|
|
- background-color: #ffffff;
|
|
|
- overflow: auto;
|
|
|
- text-align: center;
|
|
|
- line-height: 80vh;
|
|
|
- }
|
|
|
- img {
|
|
|
- /* margin-top: 3%; */
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
-}
|
|
|
-.first {
|
|
|
- margin-top: 10px;
|
|
|
- box-shadow: 5px 5px 7px 7px #f1f0f0;
|
|
|
-
|
|
|
- padding: 20px;
|
|
|
- border-radius: 10px;
|
|
|
- .name {
|
|
|
- font-size: 30px;
|
|
|
- font-weight: 500;
|
|
|
- margin-bottom: 20px;
|
|
|
- }
|
|
|
- .left {
|
|
|
- display: inline-block;
|
|
|
- vertical-align: middle;
|
|
|
- color: #535353;
|
|
|
- min-width: 30%;
|
|
|
- .title {
|
|
|
- width: 35%;
|
|
|
- display: inline-block;
|
|
|
- /*text-align: right;*/
|
|
|
- div {
|
|
|
- height: 30px;
|
|
|
- line-height: 30px;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- .text {
|
|
|
- display: inline-block;
|
|
|
- div {
|
|
|
- height: 30px;
|
|
|
- line-height: 30px;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .right {
|
|
|
- display: inline-block;
|
|
|
- vertical-align: middle;
|
|
|
- width: 30%;
|
|
|
- margin-left: 20px;
|
|
|
- color: #535353;
|
|
|
- div {
|
|
|
- height: 30px;
|
|
|
- line-height: 30px;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- .can-click {
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
-}
|
|
|
-.card-img {
|
|
|
- height: 40px;
|
|
|
-}
|
|
|
-
|
|
|
-.panel-group {
|
|
|
- margin-top: 18px;
|
|
|
-
|
|
|
- .card-panel-col {
|
|
|
- margin-bottom: 32px;
|
|
|
- }
|
|
|
- .no-bottom {
|
|
|
- margin-bottom: 0;
|
|
|
- }
|
|
|
- .card-panel {
|
|
|
- height: 95px;
|
|
|
- cursor: pointer;
|
|
|
- font-size: 12px;
|
|
|
- position: relative;
|
|
|
- overflow: hidden;
|
|
|
- color: #666;
|
|
|
- background: #fff;
|
|
|
- box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
|
|
|
- border-color: rgba(0, 0, 0, 0.05);
|
|
|
-
|
|
|
- &:hover {
|
|
|
- .card-panel-icon-wrapper {
|
|
|
- color: #ffffff;
|
|
|
- }
|
|
|
- }
|
|
|
- .card-panel-icon-wrapper {
|
|
|
- float: left;
|
|
|
- margin: 8px 0 0 8px;
|
|
|
- padding: 16px 10px;
|
|
|
- transition: all 0.38s ease-out;
|
|
|
- border-radius: 6px;
|
|
|
- }
|
|
|
- .card-panel-icon {
|
|
|
- float: left;
|
|
|
- font-size: 48px;
|
|
|
- }
|
|
|
-
|
|
|
- .card-panel-description {
|
|
|
- float: right;
|
|
|
- font-weight: bold;
|
|
|
- margin: 26px;
|
|
|
- margin-left: 0px;
|
|
|
- text-align: right;
|
|
|
-
|
|
|
- .card-panel-text {
|
|
|
- line-height: 18px;
|
|
|
- color: rgba(0, 0, 0, 0.45);
|
|
|
- font-size: 16px;
|
|
|
- margin-bottom: 12px;
|
|
|
- }
|
|
|
-
|
|
|
- .card-panel-num {
|
|
|
- font-size: 20px;
|
|
|
- text-align: right;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-.second {
|
|
|
- margin-top: 30px;
|
|
|
- display: flex;
|
|
|
- .left {
|
|
|
- flex: 1;
|
|
|
- padding: 10px;
|
|
|
- padding-bottom: 30px;
|
|
|
- width: 58%;
|
|
|
- margin-right: 5px;
|
|
|
- background-color: #ffffff;
|
|
|
- box-shadow: 5px 5px 7px 7px #f1f0f0;
|
|
|
- }
|
|
|
- .title {
|
|
|
- font-size: 22px;
|
|
|
- font-weight: 500;
|
|
|
- height: 50px;
|
|
|
- line-height: 50px;
|
|
|
- margin-bottom: 5px;
|
|
|
- }
|
|
|
- .right {
|
|
|
- box-shadow: 5px 5px 7px 7px #f1f0f0;
|
|
|
- flex: 1;
|
|
|
- width: 35%;
|
|
|
- padding: 10px;
|
|
|
- background-color: #ffffff;
|
|
|
- padding-bottom: 30px;
|
|
|
- }
|
|
|
- /*.el-button+.el-button{
|
|
|
- margin: 0px;
|
|
|
- margin-top: 5px
|
|
|
- }*/
|
|
|
-
|
|
|
- .details {
|
|
|
- .det {
|
|
|
- display: flex;
|
|
|
- .left_1 {
|
|
|
- flex: 1;
|
|
|
- height: 50px;
|
|
|
- line-height: 50px;
|
|
|
- font-size: 14px;
|
|
|
- width: 50%;
|
|
|
- }
|
|
|
- .right_1 {
|
|
|
- flex: 1;
|
|
|
- height: 50px;
|
|
|
- width: 50%;
|
|
|
- line-height: 50px;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-/*去掉input加减按钮 */
|
|
|
-input::-webkit-outer-spin-button,
|
|
|
-input::-webkit-inner-spin-button {
|
|
|
- -webkit-appearance: none;
|
|
|
-}
|
|
|
-.other_personnel {
|
|
|
- display: inline-block;
|
|
|
- vertical-align: middle;
|
|
|
- margin-bottom: 10px;
|
|
|
- width: 90%;
|
|
|
- .svg-icon {
|
|
|
- vertical-align: middle;
|
|
|
- }
|
|
|
- .el-input {
|
|
|
- width: 45% !important;
|
|
|
- display: inline-block;
|
|
|
- vertical-align: middle;
|
|
|
- margin-right: 20px;
|
|
|
- }
|
|
|
-}
|
|
|
-.demo-ruleForm {
|
|
|
- margin: 30px;
|
|
|
- ::v-deep {
|
|
|
- .el-select,
|
|
|
- .el-date-editor {
|
|
|
- width: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-.title {
|
|
|
- height: 50px;
|
|
|
- line-height: 50px;
|
|
|
- /* text-align: center; */
|
|
|
- font-size: 30px;
|
|
|
-}
|
|
|
-.content {
|
|
|
- margin-top: 20px;
|
|
|
- font-size: 16px;
|
|
|
- line-height: 22px;
|
|
|
-}
|
|
|
-.image {
|
|
|
- margin-top: 30px;
|
|
|
-
|
|
|
- text-align: center;
|
|
|
-}
|
|
|
-
|
|
|
-.text {
|
|
|
- height: 50px;
|
|
|
- font-size: 16px;
|
|
|
- color: #409eff;
|
|
|
- margin-top: 20px;
|
|
|
-}
|
|
|
-.title-time {
|
|
|
- text-align: center;
|
|
|
- margin-top: 10px;
|
|
|
- font-size: 14px;
|
|
|
- color: rgb(143, 142, 142);
|
|
|
-}
|
|
|
-.search .el-input {
|
|
|
- width: 200px !important;
|
|
|
-}
|
|
|
-</style>
|
|
|
+<!--组织详情-->
|
|
|
+<template>
|
|
|
+ <div class="index-home">
|
|
|
+ <div v-loading.fullscreen.lock="loadingFull" />
|
|
|
+ <div class="first">
|
|
|
+ <div class="name">{{ organDetail.name }}</div>
|
|
|
+ <div class="left">
|
|
|
+ <div class="title">
|
|
|
+ <div>支部书记:</div>
|
|
|
+ <div>支部副书记:</div>
|
|
|
+ <div>支部青年委员:</div>
|
|
|
+ <div>支部宣传委员:</div>
|
|
|
+ <div>支部组织委员:</div>
|
|
|
+ <div>换届时间(创建时间):</div>
|
|
|
+ <div>届数:</div>
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ <div>{{ testEmpety(organDetail.zb_sj) }}</div>
|
|
|
+ <div>{{ testEmpety(organDetail.zb_fsj) }}</div>
|
|
|
+
|
|
|
+ <div>{{ testEmpety(organDetail.zb_qnwy) }}</div>
|
|
|
+
|
|
|
+ <div>{{ testEmpety(organDetail.zb_xcwy) }}</div>
|
|
|
+
|
|
|
+ <div>{{ testEmpety(organDetail.zb_wy) }}</div>
|
|
|
+ <div>{{ testEmpety(organDetail.zb_hj_date) }}</div>
|
|
|
+ <div>第{{ testEmpety(organDetail.zb_rq) }}届</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="left">
|
|
|
+ <div class="title">
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(5)">
|
|
|
+ 正式党员数:
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(4)">
|
|
|
+ 预备党员数:
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(6)">
|
|
|
+ 发展对象数:
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(3)">
|
|
|
+ 积极分子数:
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="skipRudangZhiyuan">
|
|
|
+ 上交入党申请书人数:
|
|
|
+ </div>
|
|
|
+ <div>状态:</div>
|
|
|
+ </div>
|
|
|
+ <div class="text">
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(5)">
|
|
|
+ {{ organDetail.party_member_num }}
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(4)">
|
|
|
+ {{ organDetail.prepare_party_member_num }}
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(6)">
|
|
|
+ {{ organDetail.development_member_num }}
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="handleSetLineChartData(3)">
|
|
|
+ {{ organDetail.activists_member_num }}
|
|
|
+ </div>
|
|
|
+ <div class="can-click" @click="skipRudangZhiyuan">
|
|
|
+ {{ organDetail.apply_member_num }}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-tag v-if="organDetail.status == 1" size="mini">正常</el-tag>
|
|
|
+ <el-tag v-else type="danger" size="mini">暂停</el-tag>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-row :gutter="40" class="panel-group">
|
|
|
+ <el-col
|
|
|
+ :xs="8"
|
|
|
+ :sm="8"
|
|
|
+ :lg="4"
|
|
|
+ v-for="(item, index) in statisticsList"
|
|
|
+ :key="index"
|
|
|
+ class="card-panel-col no-bottom"
|
|
|
+ >
|
|
|
+ <div class="card-panel">
|
|
|
+ <div
|
|
|
+ class="card-panel-icon-wrapper icon-people"
|
|
|
+ v-if="item.id == 1"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ src="@/assets/image/jiji.png"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ class="card-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="card-panel-icon-wrapper icon-message"
|
|
|
+ v-if="item.id == 2"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ src="@/assets/image/fazhan.png"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ class="card-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 3">
|
|
|
+ <img
|
|
|
+ src="@/assets/image/yubei.png"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ class="card-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 4">
|
|
|
+ <img
|
|
|
+ src="@/assets/image/dangxiaozu.png"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ class="card-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 5">
|
|
|
+ <img
|
|
|
+ src="@/assets/image/weiyuan.png"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ class="card-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="card-panel-icon-wrapper icon-money" v-if="item.id == 6">
|
|
|
+ <img
|
|
|
+ src="@/assets/image/zuzhishenghuo.png"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ class="card-img"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="card-panel-description">
|
|
|
+ <div class="card-panel-text">
|
|
|
+ {{ item.name }}
|
|
|
+ </div>
|
|
|
+ <count-to
|
|
|
+ :start-val="0"
|
|
|
+ :end-val="item.nums"
|
|
|
+ class="card-panel-num"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div class="second">
|
|
|
+ <div class="left">
|
|
|
+ <div class="title" style="text-algin: left">支部活动记录</div>
|
|
|
+ <div class="search">
|
|
|
+ <el-form
|
|
|
+ ref="searchParams"
|
|
|
+ :inline="true"
|
|
|
+ :model="queryForm"
|
|
|
+ label-width="80px"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="queryForm.title"
|
|
|
+ placeholder="活动名称"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
+
|
|
|
+ <el-select
|
|
|
+ v-model="queryForm.category_id"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ placeholder="请选择活动分类"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in activeSortList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="searchRecord"
|
|
|
+ icon="el-icon-search"
|
|
|
+ >搜索</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="(recordVisible = true), (type = 1)"
|
|
|
+ >添加记录</el-button
|
|
|
+ >
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <el-table
|
|
|
+ :data="changeRecord"
|
|
|
+ border
|
|
|
+ style="width: 100%"
|
|
|
+ max-height="450"
|
|
|
+ >
|
|
|
+ <el-table-column label="序号" width="60" type="index" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="title"
|
|
|
+ label="活动标题"
|
|
|
+ min-width="200"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="day"
|
|
|
+ label="活动日期"
|
|
|
+ min-width="120"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="compere"
|
|
|
+ label="主持人"
|
|
|
+ min-width="120"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="participant"
|
|
|
+ label="参与人"
|
|
|
+ min-width="120"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="address"
|
|
|
+ label="活动地点"
|
|
|
+ min-width="120"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="type"
|
|
|
+ label="活动类型"
|
|
|
+ min-width="100"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="self_point"
|
|
|
+ label="自评分数"
|
|
|
+ min-width="100"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="mutual_point"
|
|
|
+ label="互评分数"
|
|
|
+ min-width="100"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="created_at"
|
|
|
+ label="创建时间"
|
|
|
+ min-width="155"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="updated_at"
|
|
|
+ label="修改时间"
|
|
|
+ min-width="155"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ fixed="right"
|
|
|
+ label="操作"
|
|
|
+ align="center"
|
|
|
+ width="210"
|
|
|
+ >
|
|
|
+ <template slot-scope="{ row }">
|
|
|
+ <el-button
|
|
|
+ @click="recordDetail(row.id)"
|
|
|
+ type="primary"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ >详情</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ @click="editDetail(row)"
|
|
|
+ >编辑</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="warning"
|
|
|
+ plain
|
|
|
+ size="mini"
|
|
|
+ @click="deleteRecord(row.id)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ :current-page="queryForm.page"
|
|
|
+ :layout="layout"
|
|
|
+ :page-size="queryForm.per_page"
|
|
|
+ :page-sizes="[15, 20, 30, 40, 50, 100]"
|
|
|
+ :total="total"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <!--查看详情-->
|
|
|
+ <el-dialog
|
|
|
+ title="查看详情"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ width="30%"
|
|
|
+ center
|
|
|
+ >
|
|
|
+ <div class="details">
|
|
|
+ <div class="det">
|
|
|
+ <div class="left_1">支部名称:{{ organDetail.name }}</div>
|
|
|
+ <div class="right_1">支部书记:{{ recDetails.zb_sj }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="det">
|
|
|
+ <div class="left_1">换届日期:{{ recDetails.zb_hj_date }}</div>
|
|
|
+ <div class="right_1">届数:{{ recDetails.zb_rq }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="det">
|
|
|
+ <div class="left_1">支部组织委员:{{ recDetails.zb_wy }}</div>
|
|
|
+ <div class="right_1">支部宣传委员:{{ recDetails.zb_xcwy }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="det">
|
|
|
+ <div class="left_1" style="flex: 0 0 20%">其他任职人员:</div>
|
|
|
+ <div class="right_1">
|
|
|
+ <div
|
|
|
+ v-for="(item, index1) in recDetails.zb_qtry"
|
|
|
+ :key="index1"
|
|
|
+ style="height: 40px; line-height: 50px"
|
|
|
+ >
|
|
|
+ <span>{{ item.name }}</span> <span>({{ item.job }})</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="dialogVisible = false"
|
|
|
+ >关闭</el-button
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <!--新增换届记录-->
|
|
|
+ <el-dialog
|
|
|
+ :title="formType == 0 ? '新增支部活动' : '编辑支部活动'"
|
|
|
+ :visible.sync="recordVisible"
|
|
|
+ width="800px"
|
|
|
+ @close="closeForm"
|
|
|
+ center
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ :model="setupForm"
|
|
|
+ ref="setupForm"
|
|
|
+ label-width="100px"
|
|
|
+ :rules="rules"
|
|
|
+ class="demo-ruleForm"
|
|
|
+ >
|
|
|
+ <el-form-item label="活动标题" prop="title">
|
|
|
+ <el-input
|
|
|
+ v-model="setupForm.title"
|
|
|
+ placeholder="请填写活动标题"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="活动分类" prop="category_id">
|
|
|
+ <el-select
|
|
|
+ v-model="setupForm.category_id"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择活动分类"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in activeSortList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="支部自评" prop="self_point">
|
|
|
+ <el-input
|
|
|
+ v-model="setupForm.self_point"
|
|
|
+ placeholder="请填写支部自评分数"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="活动日期" prop="day">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="setupForm.day"
|
|
|
+ type="date"
|
|
|
+ format="yyyy-MM-dd"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ <!-- <el-date-picker
|
|
|
+ v-model="setupForm.day"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择活动日期时间"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ >
|
|
|
+ </el-date-picker> -->
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="主持人" prop="compere">
|
|
|
+ <el-input
|
|
|
+ v-model="setupForm.compere"
|
|
|
+ placeholder="请填写活动主持人"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="参与人员" prop="participant">
|
|
|
+ <el-input
|
|
|
+ v-model="setupForm.participant"
|
|
|
+ placeholder="请填写活动参与人员"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="活动地址" prop="address">
|
|
|
+ <el-input
|
|
|
+ v-model="setupForm.address"
|
|
|
+ placeholder="请填写活动地址"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <div class="position">
|
|
|
+ <span class="star">*</span>
|
|
|
+ <el-form-item label="封面图" prop="cover">
|
|
|
+ <div class="pre-cover" v-if="formType == 1 && uploadType == 0">
|
|
|
+ <img :src="setupForm.cover" alt="" />
|
|
|
+ </div>
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ ref="upload"
|
|
|
+ :action="base_url + '/upload'"
|
|
|
+ :file-list="fileList"
|
|
|
+ :auto-upload="true"
|
|
|
+ :on-success="uploadSuccess"
|
|
|
+ :multiple="true"
|
|
|
+ :data="fileData"
|
|
|
+ accept=".jpg,.jpeg,.png"
|
|
|
+ list-type="picture"
|
|
|
+ >
|
|
|
+ <el-button slot="trigger" size="mini" type="primary">{{
|
|
|
+ formType == 0 ? "选择图片" : "重新上传"
|
|
|
+ }}</el-button>
|
|
|
+ <div slot="tip" class="el-upload__tip">
|
|
|
+ 只能上传jpg/png文件,且不超过500kb
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <div class="position">
|
|
|
+ <span class="star">*</span>
|
|
|
+ <el-form-item label="活动内容" prop="body">
|
|
|
+ <tinymce v-model="setupForm.body" :height="300" />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="活动类型" prop="type">
|
|
|
+ <el-select
|
|
|
+ v-model="setupForm.type"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择活动类型(线上、线下)"
|
|
|
+ style="width: 100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in activeType"
|
|
|
+ :key="item"
|
|
|
+ :label="item"
|
|
|
+ :value="item"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <!--
|
|
|
+ <el-form-item label="活动状态" prop="status">
|
|
|
+ <el-select
|
|
|
+ v-model="setupForm.status"
|
|
|
+ filterable
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width:100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in status"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>-->
|
|
|
+ <el-form-item v-if="formType == 0">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ v-if="formType == 0"
|
|
|
+ @click="submitForm('setupForm')"
|
|
|
+ >立即创建</el-button
|
|
|
+ >
|
|
|
+ <el-button @click="resetForm('setupForm')">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="formType == 1">
|
|
|
+ <el-button type="primary" @click="saveEdit('setupForm')"
|
|
|
+ >保存编辑</el-button
|
|
|
+ >
|
|
|
+ <el-button @click="cancelForm('setupForm')">取消</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import {
|
|
|
+ organizaDetail,
|
|
|
+ changeRecords,
|
|
|
+ setupRecord,
|
|
|
+ updateRecord,
|
|
|
+ deleteRecord,
|
|
|
+ activeSort,
|
|
|
+ activeStatistics,
|
|
|
+} from "@/api/organizationDetail/index";
|
|
|
+
|
|
|
+import Tinymce from "@/components/Tinymce";
|
|
|
+import CountTo from "vue-count-to";
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ uploadType: 0, //点击重新上传变为1 隐藏已上传图片
|
|
|
+ formType: 0, //0添加,//1 编辑
|
|
|
+ organDetail: "",
|
|
|
+ loadingFull: false,
|
|
|
+ imgDetaildialogVisible: false,
|
|
|
+ changeRecord: [], //换届记录
|
|
|
+ dialogVisible: false,
|
|
|
+ recDetails: {}, //记录详情,
|
|
|
+ recordVisible: false, //新增换届记录
|
|
|
+ recordVisible1: false, //编辑换届记录
|
|
|
+ fileDialogVisible: false, //新建文件列表
|
|
|
+ detailVisible: false, //文件详情
|
|
|
+ queryForm: {
|
|
|
+ page: 1,
|
|
|
+ per_page: 15,
|
|
|
+ title: "",
|
|
|
+ },
|
|
|
+ searchParams: {
|
|
|
+ name: "", //支部名称
|
|
|
+ type: "",
|
|
|
+ zb_sj: "",
|
|
|
+ limit: 15, //每页显示条数
|
|
|
+ page: 1, //当前页码
|
|
|
+ }, //搜索框数据
|
|
|
+ setupForm: {
|
|
|
+ organization_id: "", //当前支部id
|
|
|
+ status: 1,
|
|
|
+ category_id: "",
|
|
|
+ type: "线下活动",
|
|
|
+ day: "",
|
|
|
+ },
|
|
|
+ status: [
|
|
|
+ {
|
|
|
+ value: 0,
|
|
|
+ name: "暂停",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ name: "正常",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ fileType: [
|
|
|
+ {
|
|
|
+ value: 0,
|
|
|
+ name: "富文本",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 1,
|
|
|
+ name: "图片",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: 2,
|
|
|
+ name: "文件",
|
|
|
+ },
|
|
|
+ ], //文件类型选择列表
|
|
|
+ fileDetail: "",
|
|
|
+ type: "", //类型1为新增 2为编辑
|
|
|
+ id: "",
|
|
|
+ danganList: [], //换届文档列表
|
|
|
+ creatFile: {
|
|
|
+ type: "",
|
|
|
+ organization_id: "",
|
|
|
+ organization_activity_id: "",
|
|
|
+ name: "",
|
|
|
+ status: 1,
|
|
|
+ self_point: "",
|
|
|
+ body: "",
|
|
|
+ }, //
|
|
|
+ rules: {
|
|
|
+ title: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请输入标题",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ category_id: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择活动分类",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ day: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择日期",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ type: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择活动类型",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ self_point: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请填写活动自评分数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ address: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请填写活动地址",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ compere: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请填写主持人员",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ participant: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请填写参与人员",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ status: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择状态",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ }, //表格验证规则
|
|
|
+ activeName: "image",
|
|
|
+ fileData: {
|
|
|
+ file_type: "img",
|
|
|
+ },
|
|
|
+ fileList: [], //上传挡案文件列表
|
|
|
+ resourceIds: [], //文件id
|
|
|
+ file: "",
|
|
|
+ rowId: "",
|
|
|
+ otherPerson: [
|
|
|
+ {
|
|
|
+ index: "",
|
|
|
+ name: "",
|
|
|
+ job: "",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ bigImage: "",
|
|
|
+ activeType: ["线下活动", "线上活动"],
|
|
|
+ total: 0,
|
|
|
+ layout: "total, sizes, prev, pager, next, jumper",
|
|
|
+ activeSortList: [], //活动分类列表
|
|
|
+ statisticsList: [], //活动统计列表
|
|
|
+ };
|
|
|
+ },
|
|
|
+ components: { Tinymce, CountTo },
|
|
|
+ created() {
|
|
|
+ const id = this.$route.query.id;
|
|
|
+ this.id = id;
|
|
|
+ this.setupForm.organization_id = id;
|
|
|
+ this.creatFile.organization_id = id;
|
|
|
+ this.queryForm.organization_id = id;
|
|
|
+ this.detail(id);
|
|
|
+ this.record();
|
|
|
+ this.creatFile.type = 1;
|
|
|
+ this.fileData.file_type = "img";
|
|
|
+ this.activeSort();
|
|
|
+ this.activeStatistics();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ testEmpety(value) {
|
|
|
+ if (value) return value;
|
|
|
+ else return "--";
|
|
|
+ },
|
|
|
+ handleSetLineChartData(type) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/personnel/index",
|
|
|
+ query: {
|
|
|
+ politics_status: type,
|
|
|
+ organization_id: this.id,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //上传入党志愿书人数
|
|
|
+ skipRudangZhiyuan() {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/personnel/index",
|
|
|
+ query: {
|
|
|
+ organization_id: this.id,
|
|
|
+ is_rdsqs: 1,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取活动分类
|
|
|
+ async activeSort() {
|
|
|
+ this.activeSortList = [];
|
|
|
+ const { data } = await activeSort();
|
|
|
+ for (let key in data) {
|
|
|
+ console.log(key, data[key], "pppp");
|
|
|
+ this.activeSortList.push({
|
|
|
+ value: key,
|
|
|
+ label: data[key],
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //获取活动分类统计
|
|
|
+ async activeStatistics() {
|
|
|
+ var date = new Date();
|
|
|
+ var y = date.getFullYear();
|
|
|
+ let params = {
|
|
|
+ organization_id: this.id,
|
|
|
+ year: y,
|
|
|
+ };
|
|
|
+ const { data } = await activeStatistics(params);
|
|
|
+ this.statisticsList = data;
|
|
|
+ console.log(data, "获取活动分类统计");
|
|
|
+ },
|
|
|
+ //pageSize 改变时会触发
|
|
|
+ handleSizeChange(val) {
|
|
|
+ this.queryForm.per_page = val;
|
|
|
+ this.searchRecord();
|
|
|
+ },
|
|
|
+ // currentPage 改变时会触发
|
|
|
+ handleCurrentChange(val) {
|
|
|
+ this.queryForm.page = val;
|
|
|
+ this.searchRecord();
|
|
|
+ },
|
|
|
+ //关闭大图
|
|
|
+ closeBigImg() {
|
|
|
+ this.imgDetaildialogVisible = false;
|
|
|
+ },
|
|
|
+ //查看大图
|
|
|
+ imageDetail(item) {
|
|
|
+ this.imgDetaildialogVisible = true;
|
|
|
+ this.bigImage = item;
|
|
|
+ },
|
|
|
+ //组织信息
|
|
|
+ async detail(id) {
|
|
|
+ this.loadingFull = true;
|
|
|
+ await organizaDetail(id).then((res) => {
|
|
|
+ this.organDetail = res.data;
|
|
|
+ this.loadingFull = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //搜索换届记录
|
|
|
+ async searchRecord() {
|
|
|
+ this.queryForm.page = 1;
|
|
|
+ this.loadingFull = true;
|
|
|
+ await changeRecords(this.queryForm).then((res) => {
|
|
|
+ this.changeRecord = res.data.data;
|
|
|
+ this.loadingFull = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //组织换届记录列表
|
|
|
+ async record(id) {
|
|
|
+ this.loadingFull = true;
|
|
|
+ await changeRecords(this.queryForm).then((res) => {
|
|
|
+ this.loadingFull = false;
|
|
|
+ console.log(res, "res");
|
|
|
+ this.changeRecord = res.data.data;
|
|
|
+ this.total = res.data.meta.pagination.total;
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ //换届记录详情
|
|
|
+ async recordDetail(id) {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/organization/list_details",
|
|
|
+ query: {
|
|
|
+ id: id,
|
|
|
+ organization_id: this.$route.query.id,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //编辑换届记录
|
|
|
+ editDetail: function (row) {
|
|
|
+ this.formType = 1;
|
|
|
+ this.recordVisible = true;
|
|
|
+ this.setupForm = Object.assign({}, row);
|
|
|
+ this.setupForm.category_id = this.setupForm.category_id.toString();
|
|
|
+ this.setupForm.organization_id = this.$route.query.id;
|
|
|
+ },
|
|
|
+ //saveEdit保存编辑
|
|
|
+ async saveEdit(formName) {
|
|
|
+ this.$refs[formName].validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ await updateRecord(this.setupForm).then((res) => {
|
|
|
+ this.$message({
|
|
|
+ message: "编辑成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.recordVisible = false;
|
|
|
+ this.loadingFull = false;
|
|
|
+ this.uploadType = 0;
|
|
|
+ this.$refs[formName].resetFields();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //删除换届记录
|
|
|
+ deleteRecord(id) {
|
|
|
+ this.$confirm("此操作将删除此换届记录, 是否继续?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.sureDeleteRecord(id);
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: "info",
|
|
|
+ message: "已取消删除",
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async sureDeleteRecord(id) {
|
|
|
+ await deleteRecord(id).then((res) => {
|
|
|
+ if (!res.code) {
|
|
|
+ this.$message({
|
|
|
+ message: "删除成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ this.record(this.id);
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: "删除失败",
|
|
|
+ type: "error",
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //创建换届记录
|
|
|
+ submitForm(formName) {
|
|
|
+ this.$refs[formName].validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ var reg = new RegExp("^(\\d|[1-9]\\d|100)$");
|
|
|
+ if (!reg.test(this.setupForm.self_point)) {
|
|
|
+ this.$message({
|
|
|
+ message: "请输入0-100的整数!",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!this.setupForm.cover) {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: "请上传封面图!",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!this.setupForm.body) {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: "请填写活动内容!",
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ await this.setup(formName);
|
|
|
+ this.loadingFull = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ async setup(formName) {
|
|
|
+ // this.setupForm.zb_qtry=this.setupForm.zb_qtry.toString()
|
|
|
+ await setupRecord(this.setupForm).then((res) => {
|
|
|
+ this.loadingFull = false;
|
|
|
+ this.recordVisible = false;
|
|
|
+ this.$refs[formName].resetFields();
|
|
|
+ this.fileList = [];
|
|
|
+ this.setupForm.body = "";
|
|
|
+ this.record(this.id);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ resetForm(formName) {
|
|
|
+ this.$refs[formName].resetFields();
|
|
|
+ },
|
|
|
+ cancelForm() {
|
|
|
+ this.recordVisible = false;
|
|
|
+ this.setupForm = {};
|
|
|
+ this.setupForm.status = 1;
|
|
|
+ this.setupForm.organization_id = this.$route.query.id;
|
|
|
+ this.setupForm.body = "";
|
|
|
+ this.formType = 0;
|
|
|
+ },
|
|
|
+ closeForm() {
|
|
|
+ this.recordVisible = false;
|
|
|
+ this.setupForm = {};
|
|
|
+ this.setupForm.status = 1;
|
|
|
+ this.setupForm.organization_id = this.$route.query.id;
|
|
|
+ this.setupForm.body = "";
|
|
|
+ this.formType = 0;
|
|
|
+ },
|
|
|
+
|
|
|
+ uploadSuccess(response, file, fileList) {
|
|
|
+ if (response.code == 200) {
|
|
|
+ this.setupForm.cover = response.data.url;
|
|
|
+ this.uploadType = 1;
|
|
|
+ this.file = response.data.url;
|
|
|
+ this.resourceIds.push(response.data.id);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //添加其他人员及职务
|
|
|
+ addOtherPerson(type) {
|
|
|
+ this.index = this.index++;
|
|
|
+ this.otherPerson.push({
|
|
|
+ name: "",
|
|
|
+ index: this.index,
|
|
|
+ job: "",
|
|
|
+ });
|
|
|
+ this.setupForm.zb_qtry = this.otherPerson;
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+@import "@/assets/styles/content.scss";
|
|
|
+.pre-cover {
|
|
|
+ width: 100%;
|
|
|
+ border-radius: 12px;
|
|
|
+ overflow: hidden;
|
|
|
+ height: 100px;
|
|
|
+ border: solid 1px rgb(219, 217, 217);
|
|
|
+ img {
|
|
|
+ height: 100px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.position {
|
|
|
+ position: relative;
|
|
|
+ .star {
|
|
|
+ position: absolute;
|
|
|
+ top: 15px;
|
|
|
+ left: 25px;
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+}
|
|
|
+.el-table .warning-row {
|
|
|
+ background: #ecf5ff;
|
|
|
+}
|
|
|
+.el-dialog__body {
|
|
|
+ padding-top: 0 !important;
|
|
|
+}
|
|
|
+.edit-image {
|
|
|
+ text-align: center;
|
|
|
+ display: flex;
|
|
|
+ flex-flow: row wrap;
|
|
|
+}
|
|
|
+
|
|
|
+.img-list {
|
|
|
+ flex: 0 0 200px;
|
|
|
+ height: 200px;
|
|
|
+ width: 200px;
|
|
|
+ margin: 20px 5px 5px;
|
|
|
+ overflow: hidden;
|
|
|
+ img {
|
|
|
+ border: 1px solid #ccc;
|
|
|
+ border-radius: 5px;
|
|
|
+ height: 200px;
|
|
|
+ width: 200px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.big-img {
|
|
|
+ position: fixed;
|
|
|
+ z-index: 99999;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ background-color: rgba(0, 0, 0, 0.6);
|
|
|
+ overflow: hidden;
|
|
|
+ .img-border {
|
|
|
+ height: 90vh;
|
|
|
+ width: 50%;
|
|
|
+ min-width: 500px;
|
|
|
+ margin: 0 auto;
|
|
|
+ margin-top: 5vh;
|
|
|
+ background-color: #ffffff;
|
|
|
+ overflow: auto;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 80vh;
|
|
|
+ }
|
|
|
+ img {
|
|
|
+ /* margin-top: 3%; */
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+}
|
|
|
+.first {
|
|
|
+ margin-top: 10px;
|
|
|
+ box-shadow: 5px 5px 7px 7px #f1f0f0;
|
|
|
+
|
|
|
+ padding: 20px;
|
|
|
+ border-radius: 10px;
|
|
|
+ .name {
|
|
|
+ font-size: 30px;
|
|
|
+ font-weight: 500;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
+ .left {
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: middle;
|
|
|
+ color: #535353;
|
|
|
+ min-width: 30%;
|
|
|
+ .title {
|
|
|
+ width: 35%;
|
|
|
+ display: inline-block;
|
|
|
+ /*text-align: right;*/
|
|
|
+ div {
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .text {
|
|
|
+ display: inline-block;
|
|
|
+ div {
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right {
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: middle;
|
|
|
+ width: 30%;
|
|
|
+ margin-left: 20px;
|
|
|
+ color: #535353;
|
|
|
+ div {
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .can-click {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+}
|
|
|
+.card-img {
|
|
|
+ height: 40px;
|
|
|
+}
|
|
|
+
|
|
|
+.panel-group {
|
|
|
+ margin-top: 18px;
|
|
|
+
|
|
|
+ .card-panel-col {
|
|
|
+ margin-bottom: 32px;
|
|
|
+ }
|
|
|
+ .no-bottom {
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+ .card-panel {
|
|
|
+ height: 95px;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 12px;
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+ color: #666;
|
|
|
+ background: #fff;
|
|
|
+ box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05);
|
|
|
+ border-color: rgba(0, 0, 0, 0.05);
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ .card-panel-icon-wrapper {
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .card-panel-icon-wrapper {
|
|
|
+ float: left;
|
|
|
+ margin: 8px 0 0 8px;
|
|
|
+ padding: 16px 10px;
|
|
|
+ transition: all 0.38s ease-out;
|
|
|
+ border-radius: 6px;
|
|
|
+ }
|
|
|
+ .card-panel-icon {
|
|
|
+ float: left;
|
|
|
+ font-size: 48px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .card-panel-description {
|
|
|
+ float: right;
|
|
|
+ font-weight: bold;
|
|
|
+ margin: 26px;
|
|
|
+ margin-left: 0px;
|
|
|
+ text-align: right;
|
|
|
+
|
|
|
+ .card-panel-text {
|
|
|
+ line-height: 18px;
|
|
|
+ color: rgba(0, 0, 0, 0.45);
|
|
|
+ font-size: 16px;
|
|
|
+ margin-bottom: 12px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .card-panel-num {
|
|
|
+ font-size: 20px;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.second {
|
|
|
+ margin-top: 30px;
|
|
|
+ display: flex;
|
|
|
+ .left {
|
|
|
+ flex: 1;
|
|
|
+ padding: 10px;
|
|
|
+ padding-bottom: 30px;
|
|
|
+ width: 58%;
|
|
|
+ margin-right: 5px;
|
|
|
+ background-color: #ffffff;
|
|
|
+ box-shadow: 5px 5px 7px 7px #f1f0f0;
|
|
|
+ }
|
|
|
+ .title {
|
|
|
+ font-size: 22px;
|
|
|
+ font-weight: 500;
|
|
|
+ height: 50px;
|
|
|
+ line-height: 50px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ }
|
|
|
+ .right {
|
|
|
+ box-shadow: 5px 5px 7px 7px #f1f0f0;
|
|
|
+ flex: 1;
|
|
|
+ width: 35%;
|
|
|
+ padding: 10px;
|
|
|
+ background-color: #ffffff;
|
|
|
+ padding-bottom: 30px;
|
|
|
+ }
|
|
|
+ /*.el-button+.el-button{
|
|
|
+ margin: 0px;
|
|
|
+ margin-top: 5px
|
|
|
+ }*/
|
|
|
+
|
|
|
+ .details {
|
|
|
+ .det {
|
|
|
+ display: flex;
|
|
|
+ .left_1 {
|
|
|
+ flex: 1;
|
|
|
+ height: 50px;
|
|
|
+ line-height: 50px;
|
|
|
+ font-size: 14px;
|
|
|
+ width: 50%;
|
|
|
+ }
|
|
|
+ .right_1 {
|
|
|
+ flex: 1;
|
|
|
+ height: 50px;
|
|
|
+ width: 50%;
|
|
|
+ line-height: 50px;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+/*去掉input加减按钮 */
|
|
|
+input::-webkit-outer-spin-button,
|
|
|
+input::-webkit-inner-spin-button {
|
|
|
+ -webkit-appearance: none;
|
|
|
+}
|
|
|
+.other_personnel {
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ width: 90%;
|
|
|
+ .svg-icon {
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
+ .el-input {
|
|
|
+ width: 45% !important;
|
|
|
+ display: inline-block;
|
|
|
+ vertical-align: middle;
|
|
|
+ margin-right: 20px;
|
|
|
+ }
|
|
|
+}
|
|
|
+.demo-ruleForm {
|
|
|
+ margin: 30px;
|
|
|
+ ::v-deep {
|
|
|
+ .el-select,
|
|
|
+ .el-date-editor {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.title {
|
|
|
+ height: 50px;
|
|
|
+ line-height: 50px;
|
|
|
+ /* text-align: center; */
|
|
|
+ font-size: 30px;
|
|
|
+}
|
|
|
+.content {
|
|
|
+ margin-top: 20px;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 22px;
|
|
|
+}
|
|
|
+.image {
|
|
|
+ margin-top: 30px;
|
|
|
+
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+
|
|
|
+.text {
|
|
|
+ height: 50px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #409eff;
|
|
|
+ margin-top: 20px;
|
|
|
+}
|
|
|
+.title-time {
|
|
|
+ text-align: center;
|
|
|
+ margin-top: 10px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgb(143, 142, 142);
|
|
|
+}
|
|
|
+.search .el-input {
|
|
|
+ width: 200px !important;
|
|
|
+}
|
|
|
+</style>
|