فهرست منبع

Merge branch 'master' into 'test-new'

Master

See merge request spfm-group/spfm-market-front!49
胡俊炜 3 سال پیش
والد
کامیت
1238d9f77a

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 16149 - 31
package-lock.json


BIN
src/assets/POINT.png


BIN
src/assets/close.png


BIN
src/assets/del.png


BIN
src/assets/neirong.png


BIN
src/assets/steam.png


BIN
src/assets/time.png


BIN
src/assets/xiugai.png


+ 225 - 0
src/components/meetingDeclarationUpload.vue

@@ -0,0 +1,225 @@
+<template>
+    <div v-loading="loading">
+        <el-upload class="upload-demo" :drag="fileInfo.type !== 'btn'" multiple :limit="fileInfo.limit" ref="upload"
+            action="string" :on-remove="handleRemove" :on-exceed="handleExceed" :file-list="fileList"
+             :auto-upload="true" :show-file-list="fileInfo.type !== 'btn'"
+            :before-upload="deforeUp" :http-request="signUpload">
+            <div v-if="fileInfo.type !== 'btn'">
+                <i class="el-icon-upload"></i>
+                <div class="el-upload__text">点击上传</div>
+            </div>
+            <div v-if="fileInfo.type === 'btn'">
+                <el-button :size="fileInfo.size?fileInfo.size:'medium'" :type="fileInfo.btntype">{{fileInfo.typename}}</el-button>
+            </div>
+        </el-upload>
+    </div>
+</template>
+<script>
+    export default {
+        props: ['fileInfo', 'fileList'],
+        data() {
+            return {
+                fileLists: [],
+                attList: [],
+                loading: false,
+                num: 0,
+                s: false
+            }
+        },
+        methods: {
+            signUpload(){},
+            //删除
+            handleRemove(file) {
+                for (let i = 0; i < this.attList.length; i++) {
+                    if (this.attList[i].fileName === file.name) {
+                        this.attList.splice(i, 1);
+                        this.$emit('uploadBack', this.attList)
+                    }
+                }
+            },
+            //数量限制
+            handleExceed(files, fileList) {
+                this.$message.warning(
+                    `当前限制选择 ${this.fileInfo.limit} 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`
+                );
+            },
+            deforeUp(file) {
+                const isLt2M = file.size / 1024 / 1024 < 100;
+                if (!isLt2M) {
+                    this.$message.error('上传文件大小不能超过 20MB!');
+                    return false
+                }
+                
+                if(this.fileInfo.type == 'img'){
+                    const isImg = file.type.split("/")[0] == 'image';
+                    if (!isImg) {
+                        this.$message.error('请上传图片格式文件!');
+                        return false
+                    }
+                }
+                if(this.fileInfo.typexz == 'ppt'){
+                    const isImg = file.name.split(".")[1] == 'pptx';
+                    console.log(file.name.split(".")[1] == 'pptx')
+                    if (!isImg) {
+                        this.$message.error('请上传ppt格式文件!');
+                        return false
+                    }
+                }
+                if(this.fileInfo.typexz == 'csv'){
+                    const isImg = file.name.split(".")[1] == 'csv';
+                    if (!isImg) {
+                        this.$message.error('请上传csv格式文件!');
+                        return false
+                    }
+                }
+                if(this.fileInfo.typexz == 'xlsx'){
+                    const isImg = file.name.split(".")[1] == 'xlsx';
+                    if (!isImg) {
+                        this.$message.error('请上传xlsx格式文件!');
+                        return false
+                    }
+                }
+
+                
+                for(var i=0;i<this.attList.length;i++)
+                
+                {
+                     if(this.attList[i].fileName == file.name){
+                        this.$message.error('文件名重复,请修改文件名后,再上传!');
+                        this.attList.push(this.attList[i])
+                        return false
+                    }
+                }
+                this.loading = true;
+                let query = new FormData();
+                query.append("file", file);
+                if(this.fileInfo.typename == '新增素材'){
+                    query.append("advType", this.fileInfo.advType);
+                    query.append("advTypeName", this.fileInfo.advTypeName);
+                }
+                if(this.fileInfo.url == '/market/cIllegalCallTask/importTempByProv'||this.fileInfo.url == '/market/cChannelInfo/cIllegalCallTask/importTempByProv'){
+                    query.append("taskId", this.fileInfo.taskId);
+                    query.append("tempId", this.fileInfo.tempId);
+                }
+                //违规外呼
+                if(this.fileInfo.uploadType == 'outCall'){
+                    query.append("uploadType", 'outCall');
+                    query.append("relId", this.fileInfo.relId);
+                }
+                if(this.fileInfo.uploadType == 'train'){
+                    query.append("uploadType", 'train');
+                    query.append("relId", this.fileInfo.relId);
+                }
+                //运营类项目考核及结算
+                if(this.fileInfo.url == '/market/cmkAttachInfo/upload'){
+                    query.append("uploadType", this.fileInfo.uploadType);
+                }
+                if(this.fileInfo.url == '/market/cStoreOutWo/importData'){
+                    query.append("woNo", this.fileInfo.woNo);
+                }
+                if(this.fileInfo.url == '/market/cStoreScheTrainEva/importDataEva'){
+                    query.append("evaId", this.fileInfo.evaId);
+                }
+                this.num++;
+                let _this = this;
+                
+                this.$http({
+                    url: this.fileInfo.url,
+                    method: "post",
+                    headers: {
+                        "Content-Type": "application/json",
+                    },
+                    data: query,
+                }).then((res) => {
+
+                    if (this.fileInfo.type === 'btn') {
+                        this.$refs['upload'].clearFiles();
+                        this.$emit('uploadBack',res)
+                        _this.$message({
+                            message: res.data.desc,
+                            type: 'success'
+                        });
+                        this.num--;
+                        if (this.num == 0) {
+                            this.loading = false;
+                        }
+                        return
+                    }
+                    if (this.fileInfo.type === 'voice') {
+                        this.attList = res.data;
+                    } else {
+                        this.attList.push({
+                            id: res.data.body.id,
+                            fileName: res.data.body.fileName,
+                            fileCode: res.data.body.fileCode,
+                            opName: res.data.body.opName,
+                            opNo: res.data.body.opNo,
+                            opTime: res.data.body.opTime,
+                            attchFileId: res.data.body.attchFileId,
+                            type: res.data.body.type,
+                        });
+                    }
+                    this.$emit('uploadBack', this.attList);
+                    this.num--;
+                    if (this.num == 0) {
+                        this.loading = false;
+                    }
+                    return true
+                }).catch((res) => {
+                    this.$message({
+                        message: file.name+'上传失败',
+                        type: 'error'
+                    });
+                    this.num--;
+                    if (this.num == 0) {
+                        this.loading = false;
+                    }
+                    for (let i = 0; i < this.$refs['upload'].uploadFiles.length; i++) {
+                        if(file.name == this.$refs['upload'].uploadFiles[i].name){
+                            this.$refs['upload'].uploadFiles.splice(i,1)
+                        }
+                    }
+                    return false
+                })
+            },
+        },
+        mounted() {
+
+        },
+        created() {
+            this.attList = [];
+            for (let i = 0; i < this.fileList.length; i++) {
+                this.attList.push({
+                    id: this.fileList[i].id,
+                    fileName: this.fileList[i].fileName,
+                    fileCode: this.fileList[i].fileCode,
+                    opName: this.fileList[i].opName,
+                    opNo: this.fileList[i].opNo,
+                    opTime: this.fileList[i].opTime,
+                    attchFileId: this.fileList[i].attchFileId,
+                    type: this.fileList[i].type,
+                })
+            }
+        },
+        watch: {
+            fileList() {
+                this.attList = [];
+                for (let i = 0; i < this.fileList.length; i++) {
+                    this.attList.push({
+                        id: this.fileList[i].id,
+                        fileName: this.fileList[i].fileName,
+                        fileCode: this.fileList[i].fileCode,
+                        opName: this.fileList[i].opName,
+                        opNo: this.fileList[i].opNo,
+                        opTime: this.fileList[i].opTime,
+                        attchFileId: this.fileList[i].attchFileId,
+                        type: this.fileList[i].type,
+                    })
+                }
+            }
+        }
+    }
+</script>
+<style scoped lang="scss">
+
+</style>

+ 7 - 0
src/components/p-header.vue

@@ -15,6 +15,10 @@
     </div> -->
     <div class="bars">
       <div class="bars-item user-info">Hello,{{ username }}</div>
+<!--      <div class="bars-item" @click="handleGoToCalendar">-->
+<!--        <i class="el-icon-date"></i>-->
+<!--        日历-->
+<!--      </div>-->
 
       <div class="bars-item" @click="handleHelp">
         <i class="el-icon-time"></i>
@@ -72,6 +76,9 @@ export default {
     //this.menuClose();
   },
   methods: {
+      handleGoToCalendar(){
+        this.$router.push('calendar');
+      },
     handleCall() {
       this.$switchTab(this, { rountPath: "/knowledgetop", name: "知识库" },'knowledgetop');
     },

+ 550 - 198
src/pages/main/fullcalendar/calendar.vue

@@ -1,136 +1,173 @@
 <template>
-    <basic-block title="日历">
-        <!--
-        <div class="tag-tip">
-          <el-tag size="small" color="#f08f00">审核中</el-tag>
-          <el-tag size="small" color="#6bb377">已审核</el-tag>
-          <el-tag size="small" color="#999">已结算</el-tag>
-        </div>
-        -->
-        <el-row type="flex" justify="space-between">
+    <div>
+        <basic-block title="日历">
             <!--
-            <el-col :span="4">
-              <div class="room-content">
-                <div class="room-title">会议室列表</div>
-                <div class="room-list" :class="{'active-list': index === activeNum}"
-                     v-for="(item, index) in meetingRoomList" :key="index" @click="chooseRoom(index)">
-                  <span>{{ item.name }}</span>
-                </div>
-              </div>
-            </el-col>
+            <div class="tag-tip">
+              <el-tag size="small" color="#f08f00">审核中</el-tag>
+              <el-tag size="small" color="#6bb377">已审核</el-tag>
+              <el-tag size="small" color="#999">已结算</el-tag>
+            </div>
             -->
-            <el-col :span="19">
-                <div class="calendar-box">
-                    <full-calendar
-                        ref="fullCalendar"
-                        style="height: 100%"
-                        :options="calendarOptions"
-                    >
-                    </full-calendar>
-                </div>
-            </el-col>
-        </el-row>
-        <!--日程新增弹窗start-->
-        <el-dialog
-            title="会议新增"
-            :visible.sync="dialogVisible"
-            :before-close="close"
-            :modal="false"
-            width="45%">
-            <el-form :model="form" :rules="rules" ref="form" label-width="120px" size="small" class="demo-ruleForm" :disabled="auth? false: 'disabled'">
-                <el-form-item label="会议名称" prop="title">
-                    <el-input v-model="form.title"></el-input>
-                </el-form-item>
-                <el-form-item label="参会角色" prop="roleName">
-                    <el-select v-model="form.roleName" clearable filterable placeholder="参会角色">
-                        <el-option
-                            v-for="item in roleNameList"
-                            :key="item.userId"
-                            :label="item.name"
-                            :value="item.userId">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="是否是党会" prop="isParty">
-                    <el-select v-model="form.isParty" clearable filterable placeholder="是否是党会">
-                        <el-option
-                            v-for="item in isParrty"
-                            :key="item.is_party"
-                            :label="item.name"
-                            :value="item.is_party">
-                        </el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="发起科室" prop="leaderName">
-                    <el-input v-model="form.leaderName"></el-input>
-                </el-form-item>
-                <el-form-item label="会议开始时间" required>
-                    <el-col :span="11">
-                        <el-form-item prop="begindate" style="margin-bottom: 0">
-                            <el-date-picker type="date"
-                                            format="yyyy-MM-dd"
-                                            value-format="yyyy-MM-dd"
-                                            placeholder="选择日期"
-                                            v-model="form.begindate"
-                                            style="width: 100%;" >
-                            </el-date-picker>
-                        </el-form-item>
-                    </el-col>
-                    <el-col class="line" :span="2">-</el-col>
-                    <el-col :span="11">
-                        <el-form-item prop="startTime" style="margin-bottom: 0">
-                            <el-time-select placeholder="选择时间"
-                                            v-model="form.startTime"
-                                            :picker-options="{
-                                start: '00:00',
-                                step: '00:30',
-                                end: '23:30 ',
-                              }"
-                                            @change="onStartTime"
-                                            style="width: 100%;">
-                            </el-time-select>
-                        </el-form-item>
-                    </el-col>
-                </el-form-item>
-                <el-form-item label="会议结束时间" required>
-                    <el-col :span="11">
-                        <el-form-item prop="enddate" style="margin-bottom: 0">
-                            <el-date-picker type="date"
-                                            format="yyyy-MM-dd"
-                                            value-format="yyyy-MM-dd"
-                                            placeholder="选择日期"
-                                            v-model="form.enddate"
-                                            style="width: 100%;">
-                            </el-date-picker>
-                        </el-form-item>
-                    </el-col>
-                    <el-col class="line" :span="2">-</el-col>
-                    <el-col :span="11">
-                        <el-form-item prop="endTime" style="margin-bottom: 0">
-                            <el-time-select placeholder="选择时间"
-                                            v-model="form.endTime"
-                                            :picker-options="{
-                                start: '00:00',
-                                step: '00:30',
-                                end: '23:30 ',
-                                minTime: form.startTime
-                              }"
-                                            style="width: 100%;">
-                            </el-time-select>
-                        </el-form-item>
-                    </el-col>
-                </el-form-item>
-                <el-form-item label="会议备注" prop="remark">
-                    <el-input type="textarea" v-model="form.remark"></el-input>
-                </el-form-item>
-                <el-form-item>
-                    <el-button @click="resetForm('form')">取消</el-button>
-                    <el-button type="primary" @click="submitForm('form')">提交</el-button>
-                </el-form-item>
-            </el-form>
-        </el-dialog>
-        <!--日程新增弹窗end-->
-    </basic-block>
+            <el-row type="flex" justify="space-between">
+                <!--
+                <el-col :span="4">
+                  <div class="room-content">
+                    <div class="room-title">会议室列表</div>
+                    <div class="room-list" :class="{'active-list': index === activeNum}"
+                         v-for="(item, index) in meetingRoomList" :key="index" @click="chooseRoom(index)">
+                      <span>{{ item.name }}</span>
+                    </div>
+                  </div>
+                </el-col>
+                -->
+                <el-col :span="19">
+                    <div class="calendar-box" style="color:black">
+<!-- 日历菜单栏 -->
+                        <full-calendar
+                            ref="fullCalendar"
+                            style="height: 100%;color:black"
+                            :options="calendarOptions"
+                        >
+                        </full-calendar>
+                    </div>
+                </el-col>
+            </el-row>
+            <!-- 悬停窗体 -->
+            <div class="over" v-if="xuanting" >
+                <!-- <button class="fr" @click="closexuan">关闭</button> -->
+                <img src="../../../assets/close.png" class="fr" @click="closexuan">
+                <img src="../../../assets/del.png" class="fr" @click="delxuan">
+                <img src="../../../assets/xiugai.png" class="fr" @click="xiuxuan">
+                <div><img src="../../../assets/POINT.png"><span class="aaaa"></span></div>
+                <div><img src="../../../assets/time.png"><span class="bbbb"></span></div>
+                <div><img src="../../../assets/steam.png"><span class="cccc"></span></div>
+                <div><img src="../../../assets/neirong.png"><span class="dddd"></span></div>
+            </div>
+            <!--日程新增弹窗start-->
+            <el-dialog
+                title="会议新增"
+                :visible.sync="dialogVisible"
+                :before-close="close"
+                :modal="false"
+                width="45%">
+                <el-form :model="form" :rules="rules" ref="form" label-width="120px" size="small" class="demo-ruleForm"
+                         :disabled="auth? false: 'disabled'">
+                    <el-form-item label="会议名称" prop="title">
+                        <el-input v-model="form.title"></el-input>
+                    </el-form-item>
+                    <el-form-item label="参会角色" prop="orgId">
+                        <el-select v-model="form.orgId" clearable filterable placeholder="参会角色" multiple>
+                            <el-option
+                                v-for="item in roleNameList"
+                                :key="item.userId"
+                                :label="item.name"
+                                :value="item.userId">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="是否是党会" prop="isParty">
+                        <el-select v-model="form.isParty" clearable filterable placeholder="是否是党会">
+                            <el-option
+                                v-for="item in isParrty"
+                                :key="item.is_party"
+                                :label="item.name"
+                                :value="item.is_party">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="发起科室" prop="leaderName">
+                        <el-input v-model="form.leaderName"></el-input>
+                    </el-form-item>
+                    <el-form-item label="会议开始时间" required>
+                        <el-col :span="11">
+                            <el-form-item prop="begindate" style="margin-bottom: 0">
+                                <el-date-picker type="date"
+                                                disabled
+                                                format="yyyy-MM-dd"
+                                                value-format="yyyy-MM-dd"
+                                                placeholder="选择日期"
+                                                v-model="form.begindate"
+                                                style="width: 100%;">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                        <el-col class="line" :span="2">-</el-col>
+                        <el-col :span="11">
+                            <el-form-item prop="startTime" style="margin-bottom: 0">
+                                <el-select v-model="form.startTime" placeholder="选择时间" clearable @visible-change="handleBeginTimeOptionShow">
+                                    <el-option
+                                        v-for="item in timeOptions"
+                                        :key="item.time"
+                                        :disabled="item.disabled"
+                                        :label="item.time"
+                                        :value="item.time"
+                                    />
+                                </el-select>
+                                <!--                                <el-time-select placeholder="选择时间"-->
+                                <!--                                                v-model="form.startTime"-->
+
+                                <!--                                                :picker-options="{-->
+                                <!--                                    start: '09:00',-->
+                                <!--                                    step: '00:30',-->
+                                <!--                                    end: '20:00 ',-->
+                                <!--                                  }"-->
+                                <!--                                                @change="onStartTime"-->
+                                <!--                                                style="width: 100%;">-->
+                                <!--                                </el-time-select>-->
+                            </el-form-item>
+                        </el-col>
+                    </el-form-item>
+                    <el-form-item label="会议结束时间" required>
+                        <el-col :span="11">
+                            <el-form-item prop="enddate" style="margin-bottom: 0">
+                                <el-date-picker type="date"
+                                                disabled
+                                                format="yyyy-MM-dd"
+                                                value-format="yyyy-MM-dd"
+                                                placeholder="选择日期"
+                                                v-model="form.enddate"
+                                                style="width: 100%;">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                        <el-col class="line" :span="2">-</el-col>
+                        <el-col :span="11">
+                            <el-form-item prop="endTime" style="margin-bottom: 0">
+<!--                                <el-time-select placeholder="选择时间"-->
+
+<!--                                                v-model="form.endTime"-->
+<!--                                                :picker-options="{-->
+<!--                                    start: '00:00',-->
+<!--                                    step: '00:30',-->
+<!--                                    end: '23:30 ',-->
+<!--                                    minTime: form.startTime-->
+<!--                                  }"-->
+<!--                                                style="width: 100%;">-->
+<!--                                </el-time-select>-->
+                                <el-select v-model="form.endTime" placeholder="选择时间" clearable @visible-change="handleEndTimeOptionShow">
+                                    <el-option
+                                        v-for="item in timeOptions"
+                                        :key="item.time"
+                                        :disabled="item.disabled"
+                                        :label="item.time"
+                                        :value="item.time"
+                                    />
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-form-item>
+                    <el-form-item label="会议备注" prop="remark">
+                        <el-input type="textarea" v-model="form.remark"></el-input>
+                    </el-form-item>
+                    <el-form-item>
+                        <el-button @click="resetForm('form')">取消</el-button>
+                        <el-button type="primary" @click="submitForm('form')">提交</el-button>
+                    </el-form-item>
+                </el-form>
+            </el-dialog>
+            <!--日程新增弹窗end-->
+        </basic-block>
+    </div>
 </template>
 
 <script>
@@ -150,7 +187,13 @@
         data() {
             return {
                 activeNum: 0,
+                // fontc={
+                //     idss:[],
+                //     fcolor:[]
+                // },
+                // Colorr:"",
                 dialogVisible: false,
+                xuanting:false,
                 // meetingRoomList: [],
                 subList: [],
                 array: [],
@@ -178,6 +221,8 @@
                     },
 
                 ],
+                idx:"",
+                calEventt:{},
                 form: {
                     title: '',
                     userId: '',
@@ -191,95 +236,201 @@
                     roleColor: '',
                     id: '',
                     isParty: '否',
-                    roleName: '分管公司领导/部门负责人'
+                    // roleName: '分管公司领导/部门负责人'
+                    // roleName: [],
+                    orgId: []
                 },
                 rules: {
                     title: [{required: true, message: '请输入会议主题', trigger: 'blur'}],
-                    userid:[{required: true, message: '请选择会议室使用人', trigger: 'change'}],
-                    begindate:[{required: true, message: '请选择开始日期', trigger: 'change'}],
-                    startTime:[{required: true, message: '请选择开始时间', trigger: 'change'}],
-                    enddate:[{required: true, message: '请选择结束日期', trigger: 'change'}],
-                    endTime:[{required: true, message: '请选择结束时间', trigger: 'change'}],
-                    remark:[{required: true, message: '请填写会议备注', trigger: 'blur'}],
-                    leaderName:[{required: true, message: '发起科室', trigger: 'blur'}],
-                    isParty:[{required: true, message: '是否是党会', trigger: 'change'}],
-                    roleName:[{required: true, message: '参会角色', trigger: 'change'}]
-        },
-            calendarOptions: {
-                //   timeGridPlugin  可显示每日时间段
-                height: 700,
+                    userid: [{required: true, message: '请选择会议室使用人', trigger: 'change'}],
+                    begindate: [{required: true, message: '请选择开始日期', trigger: 'change'}],
+                    startTime: [{required: true, message: '请选择开始时间', trigger: 'change'}],
+                    enddate: [{required: true, message: '请选择结束日期', trigger: 'change'}],
+                    endTime: [{required: true, message: '请选择结束时间', trigger: 'change'}],
+                    remark: [{required: true, message: '请填写会议备注', trigger: 'blur'}],
+                    leaderName: [{required: true, message: '发起科室', trigger: 'blur'}],
+                    isParty: [{required: true, message: '是否是党会', trigger: 'change'}],
+                    // roleName:[{required: true, message: '参会角色', trigger: 'change'}]
+                    orgId: [{required: true, message: '参会角色', trigger: 'change'}]
+                },
+                calendarOptions: {
+                    //   timeGridPlugin  可显示每日时间段
+                    height: 700,
                     plugins: [dayGridPlugin, interactionPlugin],
                     headerToolbar: {
-                    left: "prev,next today",
-                    center: "title",
-                    right: "dayGridMonth,dayGridWeek,dayGrid",
-                    // right: 'agendaWeek,dayGridWeek,dayGrid'
-                },
-                buttonText: {
-                    // 设置按钮
-                    today: "今天",
+                        left: "prev,next today",
+                        center: "title",
+                        right: "dayGridMonth,dayGridWeek,dayGrid",
+                        // right: 'agendaWeek,dayGridWeek,dayGrid'
+                    },
+                    buttonText: {
+                        // 设置按钮
+                        today: "今天",
                         month: "月",
                         week: "周",
                         dayGrid: "天",
-                },
-                // allDaySlot: false,
-                editable: false,
+                    },
+                    // allDaySlot: false,
+                    editable: false,
                     selectable: true,
                     navLinks: true,
                     // displayEventEnd: true,//所有视图显示结束时间
                     initialView: "dayGridMonth", // 设置默认显示月,可选周、日
-                    dateClick: this.handleDateClick,
-                    eventClick: this.handleEventClick,
+                    dateClick: this.handleDateClick,//点击日历
+                    eventClick: this.handleEventClick,//日历日程点击
                     eventsSet: this.handleEvents,
                     select: this.handleDateSelect,
+                    eventMouseEnter: this.eventmouseover,//鼠标滑过
+                    eventMouseLeave:this.eventmouseout,//鼠标离开
                     // timezone
                     // 设置日程
                     events: [
-                    // {
-                    // 	id: 1,
-                    // 	title: '09:30~11:30 小破孩',
-                    // 	start: '2020-12-11',
-                    // 	end: '2020-12-13',
-                    // 	color: '#f08f00',
-                    // },
-                    // {
-                    // 	id: 2,
-                    // 	title: '9:30~14:30 项目会议',
-                    // 	start: '2020-12-14',
-                    // 	end: '2020-12-14',
-                    // 	color: '#6bb377',
-                    // },
-                ],
+                        // {
+                        // 	id: 1,
+                        // 	title: '09:30~11:30 小破孩',
+                        // 	start: '2020-12-11',
+                        // 	end: '2020-12-13',
+                        // 	color: '#f08f00',
+                        // },
+                        // {
+                        // 	id: 2,
+                        // 	title: '9:30~14:30 项目会议',
+                        // 	start: '2020-12-14',
+                        // 	end: '2020-12-14',
+                        // 	color: '#6bb377',
+                        // },
+                    ],
                     eventColor: "", // 修改日程背景色
                     locale: "zh-cn", // 设置语言
                     weekNumberCalculation: "ISO", // 周数
                     customButtons: {
-                    prev: { // this overrides the prev button
-                        text: "PREV",
+                        prev: { // this overrides the prev button
+                            text: "PREV",
                             click: () => {
-                            this.prev();
-                        }
-                    },
-                    next: { // this overrides the next button
-                        text: "PREV",
+                                this.prev();
+                            }
+                        },
+                        next: { // this overrides the next button
+                            text: "PREV",
                             click: () => {
-                            this.next();
-                        }
-                    },
-                    today: {
-                        text: "今天",
+                                this.next();
+                            }
+                        },
+                        today: {
+                            text: "今天",
                             click: () => {
-                            this.today();
+                                this.today();
+                            }
                         }
                     }
-                }
-            },
-        }
+                },
+                // 时间选项
+                timeOptions: [
+                    {time:'00:00'},
+                    {time:'00:30'},
+                    {time:'01:00'},
+                    {time:'01:30'},
+                    {time:'02:00'},
+                    {time:'02:30'},
+                    {time:'03:00'},
+                    {time:'03:30'},
+                    {time:'04:00'},
+                    {time:'04:30'},
+                    {time:'05:00'},
+                    {time:'05:30'},
+                    {time:'06:00'},
+                    {time:'06:30'},
+                    {time:'07:00'},
+                    {time:'07:30'},
+                    {time:'08:00'},
+                    {time:'08:30'},
+                    {time:'09:00'},
+                    {time:'09:30'},
+                    {time:'10:00'},
+                    {time:'10:30'},
+                    {time:'11:00'},
+                    {time:'11:30'},
+                    {time:'12:00'},
+                    {time:'12:30'},
+                    {time:'13:00'},
+                    {time:'13:30'},
+                    {time:'14:00'},
+                    {time:'14:30'},
+                    {time:'15:00'},
+                    {time:'15:30'},
+                    {time:'16:00'},
+                    {time:'16:30'},
+                    {time:'17:00'},
+                    {time:'17:30'},
+                    {time:'18:00'},
+                    {time:'18:30'},
+                    {time:'19:00'},
+                    {time:'19:30'},
+                    {time:'20:00'},
+                    {time:'20:30'},
+                    {time:'21:00'},
+                    {time:'21:30'},
+                    {time:'22:00'},
+                    {time:'22:30'},
+                    {time:'23:00'},
+                    {time:'23:30'},
+                ],
+                // 备份
+                backupTimeOptions: [
+                    {time:'00:00'},
+                    {time:'00:30'},
+                    {time:'01:00'},
+                    {time:'01:30'},
+                    {time:'02:00'},
+                    {time:'02:30'},
+                    {time:'03:00'},
+                    {time:'03:30'},
+                    {time:'04:00'},
+                    {time:'04:30'},
+                    {time:'05:00'},
+                    {time:'05:30'},
+                    {time:'06:00'},
+                    {time:'06:30'},
+                    {time:'07:00'},
+                    {time:'07:30'},
+                    {time:'08:00'},
+                    {time:'08:30'},
+                    {time:'09:00'},
+                    {time:'09:30'},
+                    {time:'10:00'},
+                    {time:'10:30'},
+                    {time:'11:00'},
+                    {time:'11:30'},
+                    {time:'12:00'},
+                    {time:'12:30'},
+                    {time:'13:00'},
+                    {time:'13:30'},
+                    {time:'14:00'},
+                    {time:'14:30'},
+                    {time:'15:00'},
+                    {time:'15:30'},
+                    {time:'16:00'},
+                    {time:'16:30'},
+                    {time:'17:00'},
+                    {time:'17:30'},
+                    {time:'18:00'},
+                    {time:'18:30'},
+                    {time:'19:00'},
+                    {time:'19:30'},
+                    {time:'20:00'},
+                    {time:'20:30'},
+                    {time:'21:00'},
+                    {time:'21:30'},
+                    {time:'22:00'},
+                    {time:'22:30'},
+                    {time:'23:00'},
+                    {time:'23:30'},
+                ],
+            }
         },
         mounted() {
             // 获取用户信息
             this.calendarApi = this.$refs.fullCalendar.getApi();
-
             // this.meetingRoomList = this.array.meetingRoomList;
             // console.log('this.array', this.array)
             // this.getReservationList(this.array.scheduleList0);
@@ -315,10 +466,10 @@
                     },
                     data: {isFile: "0"},
                 }).then((res) => {
-                    console.log('res====', typeof res.data)
-                    console.log(res.data)
+                    // console.log('res====', typeof res.data)
+                    // console.log(res.data)
                     this.auth = res.data;
-                    console.log("res.data",res.data)
+                    // console.log("res.data", res.data)
 
                 });
             },
@@ -326,17 +477,20 @@
                 let newArr = [];
                 this.subList = arrayData;
                 arrayData.forEach((item) => {
-                    console.log('item', item)
+                    // console.log('item', item)
                     newArr.push({
+                        newBeginTime: item.begindate.split(' ')[1].substr(0,5),
+                        newEndTime:  item.enddate.split(' ')[1].substr(0,5),
                         start: this.dealWithTime(item.begindate),
                         end: this.addDate(this.dealWithTime(item.enddate), 1),
                         color: item.roleColor,
                         id: item.id,
-                        title: `${this.getTitle(item.begindate, item.enddate)}   ${item.title}    ${item.leaderName}`,
+                        title: `${this.getTitle(item.begindate, item.enddate, item.isParty)}   ${'会议名称:' + item.title}    ${'召集人:' + item.leaderName}`,
                     })
                 });
                 this.calendarOptions.events = newArr;
-                console.log(newArr)
+                
+                // debugger
             },
             // 切换教室
             chooseRoom(index) {
@@ -357,8 +511,14 @@
                 return `${d.getFullYear()}-${mon}-${endD}`;
             },
             // 获取会议事件title
-            getTitle(date1, date2) {
-                let start = date1.substring(11, 16);
+            // getTitle(date1, date2) {
+            //     let start = date1.substring(11, 16);
+            //     let end = date2.substring(11, 16);
+            //     return `${start}~${end}`;
+            // },
+            // 获取会议事件title
+            getTitle(date1, date2, isParty) {
+                let start = isParty == '1' ? '★' + date1.substring(11, 16) : date1.substring(11, 16);
                 let end = date2.substring(11, 16);
                 return `${start}~${end}`;
             },
@@ -379,6 +539,54 @@
                 let newDate = /\d{4}-\d{1,2}-\d{1,2}/g.exec(date)[0];
                 return newDate;
             },
+            //鼠标滑过事件
+            eventmouseover(calEvent){
+                this.idx=calEvent.event.id
+                this.calEventt=calEvent
+                console.log(this.array, '鼠标经过arr');
+                console.log(calEvent, '鼠标经过cal');
+                this.xuanting=true
+                var a=document.querySelector(".aaaa")
+                var b=document.querySelector(".bbbb")
+                var c=document.querySelector(".cccc")
+                var d=document.querySelector(".dddd")
+                var j=0
+                for(var i=0;i<this.array.length;i++){
+                    if(this.array[i].id==calEvent.event.id){
+                        j=i
+                    }
+                }
+                a.innerHTML="<span>"+this.array[j].title+"</span>"
+                b.innerHTML="<span>"+calEvent.event.startStr.substring(5,7)+"月"+
+                            calEvent.event.startStr.substring(8)+"日"+
+                            calEvent.event._def.extendedProps.newBeginTime+"-"+
+                            calEvent.event._def.extendedProps.newEndTime+"</span>"
+                c.innerHTML="<span>"+this.array[j].leaderName+"</span>"
+                d.innerHTML="<span>"+this.array[j].remark+"</span>"
+            },
+            //关闭悬停窗口
+            closexuan(){
+                this.xuanting=false
+            },
+            //悬停窗体修改按钮
+            xiuxuan(events){
+                console.log(events)
+                console.log(this.array)
+                var j=0
+                for(var i=0;i<this.array.length;i++){
+                    if(this.array[i].id==this.idx){
+                        j=i
+                    }
+                }   
+                this.calEventt.event=this.array[j]
+                var aa=this.calEventt
+                console.log(aa)
+                this.handleEventClick(aa)
+            },
+            //悬停窗体删除按钮
+            delxuan(){
+               this.savedel()
+            }, 
             // 点击日历
             handleDateClick: function (arg) {
                 if (!this.auth) {
@@ -386,6 +594,10 @@
                 }
                 this.$forceUpdate();
                 console.log(arg, '事件1')
+                //开始时间
+                this.form.begindate = arg.dateStr
+                //结束时间
+                this.form.enddate = arg.dateStr
                 this.dialogVisible = true;
             },
             // 日历日程点击事件
@@ -421,14 +633,34 @@
             today() {
                 this.calendarApi.today();
             },
+            //提交删除后的数据
+            savedel(calEvent){
+                        this.$http({
+                            url: "/market/calendar/del",
+                            method: "post",
+                            headers: {
+                                "Content-Type": "application/json",
+                            },
+                            data:{
+                                id:this.idx
+                            }
+                        }).then((res) => {
+                            // console.log(res)
+                            location.reload();
+                        });
+            },
             // 提交数据
             submitForm(formName) {
+                console.log(this.form)
                 this.$refs[formName].validate((valid) => {
                     if (valid) {
                         this.form.begindate = `${this.form.begindate} ${this.form.startTime}`;
                         this.form.enddate = `${this.form.enddate} ${this.form.endTime}`;
                         console.log(this.form, '数据');
                         this.dialogVisible = false;
+                        if (this.form.id === '') {
+                            this.form === ""
+                        }
                         this.$http({
                             url: this.form.id === '' ? '/market/calendar/add' : '/market/calendar/update',
                             method: "post",
@@ -469,10 +701,130 @@
             onStartTime(val) {
                 console.log('val', val)
                 this.form.startTime = val
+            },
+            //开始时间 option显示/隐藏
+            handleBeginTimeOptionShow(_value) {
+                if (_value) {
+
+                    let disabledOnOff = false
+
+                    // 第一次过滤,过滤掉结束时间
+                    this.timeOptions = this.backupTimeOptions.map(_item => {
+                        const result = { time: _item.time, disabled: _item.disabled }
+                        if (_item.time === this.form.endTime) {
+                            disabledOnOff = true
+                        }
+                        if (disabledOnOff) {
+                            result.disabled = true
+                        }
+                        return result
+                    })
+                    // 第二次过滤,过滤掉后端返回的数据
+                    disabledOnOff = false
+
+
+                    this.calendarOptions.events.map(_item => {
+
+                        this.timeOptions = this.timeOptions.map(_timeOptionItem => {
+                            // debugger
+                            // 开始
+                            if (_item.newBeginTime === _timeOptionItem.time) {
+                                disabledOnOff = true
+                            }
+                            // 结束
+                            if (_item.newEndTime === _timeOptionItem.time) {
+                                disabledOnOff = false
+                            }
+                            if (disabledOnOff) {
+                                _timeOptionItem.disabled = true
+                            }
+                            return _timeOptionItem
+                        })
+                    })
+                } else {
+                    this.timeOptions = this.backupTimeOptions
+                }
+            },
+            //结束时间 option显示/隐藏
+            handleEndTimeOptionShow(_value) {
+                // 下拉显示
+                if (_value) {
+                    let disabledOnOff = true
+                    if (this.form.startTime !== '') {
+                        // 第一次过滤,过滤掉开始时间
+                        this.timeOptions = this.backupTimeOptions.map(_item => {
+                            const result = { time: _item.time, disabled: _item.disabled }
+                            if (disabledOnOff) {
+                                result.disabled = true
+                            }
+                            if (_item.time === this.form.startTime) {
+                                disabledOnOff = false
+                            }
+                            return result
+                        })
+                    }
+                    // 第二次过滤,过滤掉后端返回的数据
+                    disabledOnOff = false
+                    this.calendarOptions.events.map(_item => {
+                        this.timeOptions = this.timeOptions.map(_timeOptionItem => {
+                            // debugger
+                            if (disabledOnOff) {
+                                _timeOptionItem.disabled = true
+                            }
+                            // 开始
+                            if (_item.newBeginTime === _timeOptionItem.time) {
+                                disabledOnOff = true
+                            }
+
+                            // 结束
+                            if (_item.newEndTime === _timeOptionItem.time) {
+                                disabledOnOff = false
+                            }
+
+                            return _timeOptionItem
+                        })
+                    })
+                } else {
+                    this.timeOptions = this.backupTimeOptions
+                }
             }
-        }
+        },
     }
 </script>
 <style lang="scss" scoped>
     @import "src/assets/calendar";
+
+    .el-row--flex.is-justify-space-between {
+        justify-content: center;
+    }
+    .over{position: absolute; width: 200px;height: 200px;background: #eee;  border: 1px solid black; z-index: 100;top: 300px;left:100px;opacity: 0.8; padding: 10px; border-radius: 5px;}
+    .over img{width: 20px;height: 20px;}
+    .over div{margin: 20px 0px;height: 17px;}
+    .over div img{height: 17px;}
+    .over div span{margin-left: 5px; line-height: 17px;height: 17px;}
+    .fr{float: right;}
+    ::v-deep .fc-daygrid-event{
+        background-color:#ffffff !important;
+        border: 1px solid black  !important;
+    }
+    // ::v-deep .fc-event-title{
+    //     // color: v-band(Color)  !important;
+    //     color: black  !important;
+    // }
+    // ::v-deep .fc-daygrid-event-harness:nth-child(odd){
+    //     color: black  !important;
+    // }
+    // ::v-deep .fc-daygrid-event-harness:nth-child(even){
+    //     color: blue  !important;
+    // }
+    // ::v-deep .fc-event-title-container:nth-child(odd){
+    //     color: black  !important;
+    // }
+    // ::v-deep .fc-event-title-container:nth-child(even){
+    //     color: blue  !important;
+    // }
+    ::v-deep .fc-sticky{
+        // color: v-band(Color)  !important;
+        color: black  !important;
+    }
 </style>

+ 98 - 48
src/pages/main/meetingDeclaration/marketDecisionMeeting.vue

@@ -47,12 +47,12 @@
                     style="width: 100%"
                     v-loading="loading"
                 >
-                    <el-table-column label="会议时间"  align="center"  width="300px">
-                        <template slot-scope="scope">
+                    <el-table-column label="会议时间"  align="center"  width="300px" prop="meetingTime" :formatter="dateFormat">
+                        <!-- <template slot-scope="scope">
                             <span>{{
                                 $formatDate(scope.row.meetingTime, "YYYY-MM-DD")
                             }}</span>
-                        </template>
+                        </template> -->
                     </el-table-column>
                     <el-table-column prop="meetingName" label="会议名称"  align="center">
                     </el-table-column>
@@ -100,6 +100,7 @@
                     border
                     size="mini"
                     style="margin: 20px 0;"
+                    height="50vh"
                 >
                     <el-table-column prop="serialNumber" label="序号">
                     </el-table-column>
@@ -128,19 +129,20 @@
                         label="操作"
                         width="150px"
                         align="center"
-                        fixed="right"
                     >
                         <template slot-scope="scope">
                             <el-button
                                 size="mini"
                                 type="primary"
                                 @click="jump(3, scope.row)"
+                                v-if="scope.row.opNo == loginNoStr"
                                 >编辑</el-button
                             >
                             <el-button
                                 size="mini"
                                 type="primary"
                                 @click="jump(4, scope.row)"
+                                v-if="scope.row.opNo == loginNoStr"
                                 >删除</el-button
                             >
                         </template>
@@ -148,7 +150,7 @@
                 </el-table>
 
                 <div slot="footer" class="dialog-footer myfooter">
-                    <el-button type="primary" @click="dialogCli(1)"
+                    <el-button type="primary" @click="dialogCli(1)" v-if="isAllExport"
                         >全量导出</el-button
                     >
                     <el-button type="primary" @click="closedia">确定</el-button>
@@ -177,6 +179,19 @@
                                 disabled
                             ></el-input>
                         </el-form-item>
+                        <el-form-item prop="dept">
+                            <span>申报部门</span>
+                            <el-input v-model="infolist.dept"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="topicsName">
+                            <span>议题名称</span>
+                            <el-input v-model="infolist.topicsName"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="department">
+                            <span>申报科室</span>
+                            <el-input v-model="infolist.department"></el-input>
+                        </el-form-item>
+                        
                         <el-form-item prop="topicsType">
                             <span>线条</span>
                             <el-select
@@ -193,18 +208,6 @@
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item prop="topicsName">
-                            <span>议题名称</span>
-                            <el-input v-model="infolist.topicsName"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="department">
-                            <span>申报科室</span>
-                            <el-input v-model="infolist.department"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="dept">
-                            <span>申报部门</span>
-                            <el-input v-model="infolist.dept"></el-input>
-                        </el-form-item>
                         <el-form-item prop="declarant">
                             <span>申报姓名</span>
                             <el-input v-model="infolist.declarant"></el-input>
@@ -241,12 +244,12 @@
                             <span>附件</span>
                             <div class="upload-box">
                                 <div>
-                                    <myUpload
+                                    <myMeetingUpload
                                         @uploadBack="uploadBack"
                                         :fileInfo="fileInfo"
                                         :fileList="fileInfo.fileList"
                                     >
-                                    </myUpload>
+                                    </myMeetingUpload>
                                 </div>
                             </div>
                         </el-form-item>
@@ -285,6 +288,23 @@
                                 disabled
                             ></el-input>
                         </el-form-item>
+                        <el-form-item prop="dept">
+                            <span>申报部门</span>
+                            <el-input v-model="editInfolist.dept"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="topicsName">
+                            <span>议题名称</span>
+                            <el-input
+                                v-model="editInfolist.topicsName"
+                            ></el-input>
+                        </el-form-item>
+                        <el-form-item prop="department">
+                            <span>申报科室</span>
+                            <el-input
+                                v-model="editInfolist.department"
+                            ></el-input>
+                        </el-form-item>
+                        
                         <el-form-item prop="topicsType">
                             <span>线条</span>
                             <el-select
@@ -301,22 +321,6 @@
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item prop="topicsName">
-                            <span>议题名称</span>
-                            <el-input
-                                v-model="editInfolist.topicsName"
-                            ></el-input>
-                        </el-form-item>
-                        <el-form-item prop="department">
-                            <span>申报科室</span>
-                            <el-input
-                                v-model="editInfolist.department"
-                            ></el-input>
-                        </el-form-item>
-                        <el-form-item prop="dept">
-                            <span>申报部门</span>
-                            <el-input v-model="editInfolist.dept"></el-input>
-                        </el-form-item>
                         <el-form-item prop="declarant">
                             <span>申报姓名</span>
                             <el-input
@@ -355,12 +359,12 @@
                             <span>附件</span>
                             <div class="upload-box">
                                 <div>
-                                    <myUpload
+                                    <myMeetingUpload
                                         @uploadBack="uploadBack"
                                         :fileInfo="fileInfo"
                                         :fileList="fileInfo.fileList"
                                     >
-                                    </myUpload>
+                                    </myMeetingUpload>
                                 </div>
                             </div>
                         </el-form-item>
@@ -387,14 +391,16 @@
 // import mySearch from "../../../components/search.vue";
 import myMessage from "../../../components/myMessage.vue";
 import toolList from "../../../components/toolList";
-import myUpload from "../../../components/upload";
+// import myUpload from "../../../components/upload";
+import myMeetingUpload from "../../../components/meetingDeclarationUpload";
 
 export default {
     components: {
         // mySearch,
         myMessage,
         toolList,
-        myUpload
+        // myUpload,
+        myMeetingUpload
     },
     data() {
         const reporting = (rule, value, callback) => {
@@ -527,6 +533,7 @@ export default {
             year: this.$formatDate(new Date().getTime(), "YYYY"),
             month: "",
             mId: "",
+            mName:"",
             personInfo: [],
             monthOpt: [
                 "01",
@@ -542,10 +549,15 @@ export default {
                 "11",
                 "12"
             ],
-            menus: JSON.parse(window.sessionStorage.childrenMenus)
+            menus: JSON.parse(window.sessionStorage.childrenMenus),
+            isAllExport: false
         };
     },
     methods: {
+        dateFormat(row,column){
+            const daterc = row[column.property]
+            return daterc.split(' ')[0];
+        },
         jump(v, n) {
             //1 查看 2上传 3编辑修改 4删除一条
             if (v === 1) {
@@ -554,6 +566,7 @@ export default {
 
                 this.getInfo(n.id);
                 this.mId = n.id;
+                this.mName = n.meetingName;
             } else if (v === 2) {
                 this.titname = "上传";
                 this.uploadDialogStatus = true;
@@ -612,7 +625,6 @@ export default {
                 });
 
 
-                // console.log(this.editInfolist);
             } else if (v === 4) {
                 this.loadinged = true;
                 this.$http({
@@ -656,6 +668,7 @@ export default {
         },
         editClosedia() {
             this.editDialogStatus = false;
+            this.fileInfo.fileList = []
         },
         //搜索数据
         searchInfo() {
@@ -675,7 +688,7 @@ export default {
                       this.month)
                 : "";
 
-            this.getList(this.params, this.pageSize);
+            this.getList(this.params, 1);
         },
         //获取列表
         getList(v, n) {
@@ -724,7 +737,7 @@ export default {
                         window.navigator.msSaveOrOpenBlob(
                             blob,
                             // this.wo.bizName + ".xlsx"
-                            "导出" + ".zip"
+                            this.mName + ".zip"
                         );
                     } else {
                         /* 火狐谷歌的文件下载方式 */
@@ -732,7 +745,7 @@ export default {
                         var downloadElement = document.createElement("a");
                         var href = window.URL.createObjectURL(blob);
                         downloadElement.href = href;
-                        downloadElement.download = "导出" + ".zip";
+                        downloadElement.download = this.mName + ".zip";
                         document.body.appendChild(downloadElement);
                         downloadElement.click();
                         document.body.removeChild(downloadElement);
@@ -802,7 +815,7 @@ export default {
                     });
                     _this.infolist = {};
                     _this.dialogStatus = false;
-                    _this.getList({}, _this.pageSize);
+                    _this.getList(_this.params, _this.pageSize);
                     _this.uploadDialogStatus = false;
                     _this.editDialogStatus = false;
                     _this.attList = [];
@@ -855,9 +868,7 @@ export default {
         },
         //文件返回值
         uploadBack(v) {
-           // this.fileInfo.fileList=v;
             this.attList = v;
-            // console.log(v);
         },
         //功能栏
         iconCli(v) {
@@ -873,11 +884,37 @@ export default {
             this.loginNoStr = this.userInfo.loginNoStr;
 
             this.personInfo = this.userInfo.groupName.split("/");
+        },
+        getRole(){
+            this.$http({
+                url:"/market/cMeetingDeclaration/getRoleByCode",
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                    // page: '{"pageNo":"' + n + '","pageSize":"10"}'
+                },
+                data: {}
+            }).then(res => {
+                if(res.data.result == "0"){
+                    this.isAllExport = true
+                }else{
+                    this.isAllExport = false
+                }
+            });
         }
     },
     mounted() {
         this.getList({}, 1);
         this.getUser();
+        this.getRole()
+        // this.menus.forEach(item=>{
+        //     console.log(1);
+        //     if(item.jspUrl == '/allExport'){
+        //         this.isAllExport = true
+		// 	}else{
+        //         this.isAllExport = false
+        //     }
+        // })
     },
     created() {}
 };
@@ -938,11 +975,12 @@ export default {
 }
 .info-line2 {
     width: 100%;
-    padding-left: 40px;
+    padding-left: 20px;
 
     .upload-box {
         width: calc(100% - 80px);
         display: inline-block;
+        padding-left: 20px;
     }
     span {
         width: 60px;
@@ -959,6 +997,7 @@ export default {
     .remark-box::v-deep {
         width: calc(100% - 80px);
         display: inline-block;
+        padding-left: 20px;
         div {
             padding-bottom: 10px;
         }
@@ -1073,4 +1112,15 @@ export default {
         }
     }
 }
+.el-table{
+    overflow: auto;
+}
+.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper{overflow:visible;}
+  .el-table__body-wrapper{
+    overflow-x:visible !important;
+  }
+  /* 这个是为了解决前面样式覆盖之后伪类带出来的竖线 */
+ .el-table::after{
+    position: relative;
+}
 </style>

+ 101 - 54
src/pages/main/meetingDeclaration/specialReport.vue

@@ -48,12 +48,7 @@
                     v-loading="loading"
 
                 >
-                    <el-table-column label="会议时间" align="center" width="300px">
-                        <template slot-scope="scope">
-                            <span>{{
-                                $formatDate(scope.row.meetingTime, "YYYY-MM-DD")
-                            }}</span>
-                        </template>
+                    <el-table-column label="会议时间" align="center" width="300px" prop="meetingTime" :formatter="dateFormat">
                     </el-table-column>
                     <el-table-column prop="meetingName" label="会议名称" align="center">
                     </el-table-column>
@@ -94,13 +89,16 @@
             :close-on-click-modal="false"
             :before-close="closedia"
             :fullscreen="false"
+            
         >
-            <div v-loading="loadinged">
+            <div>
                 <el-table
                     :data="infoTableData"
                     border
                     size="mini"
                     style="margin: 20px 0;"
+                    height="50vh"
+                    v-loading="loading"
                 >
                     <el-table-column prop="serialNumber" label="序号">
                     </el-table-column>
@@ -129,19 +127,20 @@
                         label="操作"
                         width="150px"
                         align="center"
-                        fixed="right"
                     >
                         <template slot-scope="scope">
                             <el-button
                                 size="mini"
                                 type="primary"
                                 @click="jump(3, scope.row)"
+                                v-if="scope.row.opNo == loginNoStr"
                                 >编辑</el-button
                             >
                             <el-button
                                 size="mini"
                                 type="primary"
                                 @click="jump(4, scope.row)"
+                                v-if="scope.row.opNo == loginNoStr"
                                 >删除</el-button
                             >
                         </template>
@@ -149,7 +148,7 @@
                 </el-table>
 
                 <div slot="footer" class="dialog-footer myfooter">
-                    <el-button type="primary" @click="dialogCli(1)"
+                    <el-button type="primary" @click="dialogCli(1)" v-if="isAllExport"
                         >全量导出</el-button
                     >
                     <el-button type="primary" @click="closedia">确定</el-button>
@@ -178,6 +177,19 @@
                                 disabled
                             ></el-input>
                         </el-form-item>
+                        <el-form-item prop="dept">
+                            <span>申报部门</span>
+                            <el-input v-model="infolist.dept"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="topicsName">
+                            <span>议题名称</span>
+                            <el-input v-model="infolist.topicsName"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="department">
+                            <span>申报科室</span>
+                            <el-input v-model="infolist.department"></el-input>
+                        </el-form-item>
+                        
                         <el-form-item prop="topicsType">
                             <span>线条</span>
                             <el-select
@@ -194,18 +206,6 @@
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item prop="topicsName">
-                            <span>议题名称</span>
-                            <el-input v-model="infolist.topicsName"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="department">
-                            <span>申报科室</span>
-                            <el-input v-model="infolist.department"></el-input>
-                        </el-form-item>
-                        <el-form-item prop="dept">
-                            <span>申报部门</span>
-                            <el-input v-model="infolist.dept"></el-input>
-                        </el-form-item>
                         <el-form-item prop="declarant">
                             <span>申报姓名</span>
                             <el-input v-model="infolist.declarant"></el-input>
@@ -242,12 +242,12 @@
                             <span>附件</span>
                             <div class="upload-box">
                                 <div>
-                                    <myUpload
+                                    <myMeetingUpload
                                         @uploadBack="uploadBack"
                                         :fileInfo="fileInfo"
                                         :fileList="fileInfo.fileList"
                                     >
-                                    </myUpload>
+                                    </myMeetingUpload>
                                 </div>
                             </div>
                         </el-form-item>
@@ -286,6 +286,23 @@
                                 disabled
                             ></el-input>
                         </el-form-item>
+                        <el-form-item prop="dept">
+                            <span>申报部门</span>
+                            <el-input v-model="editInfolist.dept"></el-input>
+                        </el-form-item>
+                        <el-form-item prop="topicsName">
+                            <span>议题名称</span>
+                            <el-input
+                                v-model="editInfolist.topicsName"
+                            ></el-input>
+                        </el-form-item>
+                        <el-form-item prop="department">
+                            <span>申报科室</span>
+                            <el-input
+                                v-model="editInfolist.department"
+                            ></el-input>
+                        </el-form-item>
+                        
                         <el-form-item prop="topicsType">
                             <span>线条</span>
                             <el-select
@@ -302,22 +319,6 @@
                                 </el-option>
                             </el-select>
                         </el-form-item>
-                        <el-form-item prop="topicsName">
-                            <span>议题名称</span>
-                            <el-input
-                                v-model="editInfolist.topicsName"
-                            ></el-input>
-                        </el-form-item>
-                        <el-form-item prop="department">
-                            <span>申报科室</span>
-                            <el-input
-                                v-model="editInfolist.department"
-                            ></el-input>
-                        </el-form-item>
-                        <el-form-item prop="dept">
-                            <span>申报部门</span>
-                            <el-input v-model="editInfolist.dept"></el-input>
-                        </el-form-item>
                         <el-form-item prop="declarant">
                             <span>申报姓名</span>
                             <el-input
@@ -356,12 +357,12 @@
                             <span>附件</span>
                             <div class="upload-box">
                                 <div>
-                                    <myUpload
+                                    <myMeetingUpload
                                         @uploadBack="uploadBack"
                                         :fileInfo="fileInfo"
                                         :fileList="fileInfo.fileList"
                                     >
-                                    </myUpload>
+                                    </myMeetingUpload>
                                 </div>
                             </div>
                         </el-form-item>
@@ -388,14 +389,14 @@
 // import mySearch from "../../../components/search.vue";
 import myMessage from "../../../components/myMessage.vue";
 import toolList from "../../../components/toolList";
-import myUpload from "../../../components/upload";
+import myMeetingUpload from "../../../components/meetingDeclarationUpload";
 
 export default {
     components: {
         // mySearch,
         myMessage,
         toolList,
-        myUpload
+        myMeetingUpload
     },
     data() {
         // const reporting = (rule, value, callback) => {
@@ -528,6 +529,7 @@ export default {
             year: this.$formatDate(new Date().getTime(), "YYYY"),
             month: "",
             mId: "",
+            mName:"",
             personInfo: [],
             monthOpt: [
                 "01",
@@ -543,10 +545,15 @@ export default {
                 "11",
                 "12"
             ],
-            menus: JSON.parse(window.sessionStorage.childrenMenus)
+            menus: JSON.parse(window.sessionStorage.childrenMenus),
+            isAllExport: false,
         };
     },
     methods: {
+        dateFormat(row,column){
+            const daterc = row[column.property]
+            return daterc.split(' ')[0];
+        },
         jump(v, n) {
             //1 查看 2上传 3编辑修改 4删除一条
             if (v === 1) {
@@ -555,6 +562,7 @@ export default {
 
                 this.getInfo(n.id);
                 this.mId = n.id;
+                this.mName = n.meetingName;
             } else if (v === 2) {
                 this.titname = "上传";
                 this.uploadDialogStatus = true;
@@ -610,10 +618,11 @@ export default {
                         opNo: item.opNo,
                         opTime: item.opTime,
                     });
+
+                    
                 });
 
 
-                // console.log(this.editInfolist);
             } else if (v === 4) {
                 this.loadinged = true;
                 this.$http({
@@ -657,6 +666,7 @@ export default {
         },
         editClosedia() {
             this.editDialogStatus = false;
+            this.fileInfo.fileList = []
         },
         //搜索数据
         searchInfo() {
@@ -675,8 +685,7 @@ export default {
                       "-" +
                       this.month)
                 : "";
-
-            this.getList(this.params, this.pageSize);
+            this.getList(this.params, 1);
         },
         //获取列表
         getList(v, n) {
@@ -725,7 +734,7 @@ export default {
                         window.navigator.msSaveOrOpenBlob(
                             blob,
                             // this.wo.bizName + ".xlsx"
-                            "导出" + ".zip"
+                            this.mName + ".zip"
                         );
                     } else {
                         /* 火狐谷歌的文件下载方式 */
@@ -733,7 +742,7 @@ export default {
                         var downloadElement = document.createElement("a");
                         var href = window.URL.createObjectURL(blob);
                         downloadElement.href = href;
-                        downloadElement.download = "导出" + ".zip";
+                        downloadElement.download = this.mName + ".zip";
                         document.body.appendChild(downloadElement);
                         downloadElement.click();
                         document.body.removeChild(downloadElement);
@@ -803,7 +812,7 @@ export default {
                     });
                     _this.infolist = {};
                     _this.dialogStatus = false;
-                    _this.getList({}, _this.pageSize);
+                    _this.getList(_this.params, _this.pageSize);
                     _this.uploadDialogStatus = false;
                     _this.editDialogStatus = false;
                     _this.attList = [];
@@ -856,9 +865,7 @@ export default {
         },
         //文件返回值
         uploadBack(v) {
-           // this.fileInfo.fileList=v;
             this.attList = v;
-            // console.log(v);
         },
         //功能栏
         iconCli(v) {
@@ -872,13 +879,39 @@ export default {
         getUser() {
             this.userInfo = JSON.parse(window.sessionStorage.userInfo);
             this.loginNoStr = this.userInfo.loginNoStr;
-
             this.personInfo = this.userInfo.groupName.split("/");
+        },
+        getRole(){
+            this.$http({
+                url:"/market/cMeetingDeclaration/getRoleByCode",
+                method: "post",
+                headers: {
+                    "Content-Type": "application/json",
+                    // page: '{"pageNo":"' + n + '","pageSize":"10"}'
+                },
+                data: {}
+            }).then(res => {
+                if(res.data.result == "0"){
+                    this.isAllExport = true
+                }else{
+                    this.isAllExport = false
+                }
+            });
         }
     },
     mounted() {
         this.getList({}, 1);
+        
         this.getUser();
+        this.getRole()
+        // this.menus.forEach(item=>{
+        //     console.log(1);
+        //     if(item.jspUrl == '/allExport'){
+        //         this.isAllExport = true
+		// 	}else{
+        //         this.isAllExport = false
+        //     }
+        // })
     },
     created() {}
 };
@@ -939,11 +972,13 @@ export default {
 }
 .info-line2 {
     width: 100%;
-    padding-left: 40px;
+    padding-left: 20px;
+    
 
     .upload-box {
         width: calc(100% - 80px);
         display: inline-block;
+        padding-left: 20px;
     }
     span {
         width: 60px;
@@ -960,6 +995,7 @@ export default {
     .remark-box::v-deep {
         width: calc(100% - 80px);
         display: inline-block;
+        padding-left: 20px;
         div {
             padding-bottom: 10px;
         }
@@ -1074,4 +1110,15 @@ export default {
         }
     }
 }
+.el-table{
+    overflow: auto;
+}
+.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper{overflow:visible;}
+  .el-table__body-wrapper{
+    overflow-x:visible !important;
+  }
+  /* 这个是为了解决前面样式覆盖之后伪类带出来的竖线 */
+ .el-table::after{
+    position: relative;
+}
 </style>

+ 5 - 6
vue.config.js

@@ -93,7 +93,7 @@ module.exports = {
         proxy: {
             // 开发环境变化可注释 ⬇️⬇️
             "/market/CMK": {
-                target: "http://192.168.3.12:9114",
+                target: "http://192.168.3.129:9113",
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -101,7 +101,7 @@ module.exports = {
                 },
             },
             "/market/mk": {
-                target: "http://192.168.3.12:9114",
+                target: "http://192.168.3.129:9113",
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -109,7 +109,7 @@ module.exports = {
                 },
             },
             "/market/techcentergj": {
-                target: "http://192.168.3.12:9114",
+                target: "http://192.168.3.129:9113",
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -117,7 +117,7 @@ module.exports = {
                 },
             },
             "/mkWangge": {
-                target: "http://192.168.3.12:9114",
+                target: "http://192.168.3.129:9113",
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {
@@ -135,8 +135,7 @@ module.exports = {
                 // target: 'http://192.168.0.156:9600/',
                 // target: 'http://192.168.2.170:9600/',
                 // target: 'http://192.168.2.169:9600/',
-                // target: "http://192.168.0.90:9600",
-                target: "http://192.168.3.165:9600",
+                target: "http://192.168.3.129:9600",
                 changeOrigin: true,
             },
         },

+ 1 - 0
xuanting

@@ -0,0 +1 @@
+