Procházet zdrojové kódy

Merge branch 'master' into 'oapush'

# Conflicts:
#   vue.config.js
徐兴安 před 3 roky
rodič
revize
22da29ad79

+ 12 - 0
package-lock.json

@@ -10425,9 +10425,15 @@
       "dev": true
     },
     "sass": {
+<<<<<<< HEAD
+      "version": "1.48.0",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.48.0.tgz",
+      "integrity": "sha512-hQi5g4DcfjcipotoHZ80l7GNJHGqQS5LwMBjVYB/TaT0vcSSpbgM8Ad7cgfsB2M0MinbkEQQPO9+sjjSiwxqmw==",
+=======
       "version": "1.49.9",
       "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz",
       "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==",
+>>>>>>> e95b7e3f3db5a1d614264a8b533f2f1c1c24098e
       "requires": {
         "chokidar": ">=3.0.0 <4.0.0",
         "immutable": "^4.0.0",
@@ -11153,9 +11159,15 @@
       "dev": true
     },
     "source-map-js": {
+<<<<<<< HEAD
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
+      "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA=="
+=======
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
       "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+>>>>>>> e95b7e3f3db5a1d614264a8b533f2f1c1c24098e
     },
     "source-map-resolve": {
       "version": "0.5.3",

+ 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>

+ 79 - 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) {
@@ -878,6 +889,13 @@ export default {
     mounted() {
         this.getList({}, 1);
         this.getUser();
+        this.menus.forEach(item=>{
+            if(item.jspUrl == '/allExport'){
+                this.isAllExport = true
+			}else{
+                this.isAllExport = false
+            }
+        })
     },
     created() {}
 };
@@ -938,11 +956,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 +978,7 @@ export default {
     .remark-box::v-deep {
         width: calc(100% - 80px);
         display: inline-block;
+        padding-left: 20px;
         div {
             padding-bottom: 10px;
         }
@@ -1073,4 +1093,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>

+ 82 - 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,20 @@ export default {
         getUser() {
             this.userInfo = JSON.parse(window.sessionStorage.userInfo);
             this.loginNoStr = this.userInfo.loginNoStr;
-
             this.personInfo = this.userInfo.groupName.split("/");
         }
     },
     mounted() {
         this.getList({}, 1);
         this.getUser();
+
+        this.menus.forEach(item=>{
+            if(item.jspUrl == '/allExport'){
+                this.isAllExport = true
+			}else{
+                this.isAllExport = false
+            }
+        })
     },
     created() {}
 };
@@ -939,11 +953,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 +976,7 @@ export default {
     .remark-box::v-deep {
         width: calc(100% - 80px);
         display: inline-block;
+        padding-left: 20px;
         div {
             padding-bottom: 10px;
         }
@@ -1074,4 +1091,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>

+ 39 - 99
src/pages/main/performance/components/sheet.vue

@@ -2,7 +2,7 @@
  * @Author       : yuanrunwei
  * @Date         : 2021-12-04 14:23:58
  * @LastEditors: daiqisheng
- * @LastEditTime: 2022-02-15 15:59:58
+ * @LastEditTime: 2022-03-07 17:40:14
  * @FilePath     : \spfm-market-front\src\pages\main\performance\components\sheet.vue
 -->
 <template>
@@ -34,7 +34,7 @@
           >暂存</el-button
         >
         <el-button
-          v-if="status === '2'"
+          v-if="status === '2' || status === '3'"
           type="primary"
           @click="handleResave"
           :disabled="handleForbid()"
@@ -158,7 +158,9 @@
           </el-form-item>
         </el-radio-group>
       </el-form>
-      <template v-if="id && status !== '2'" v-slot:footer><div></div></template>
+      <template v-if="id && status !== '2' && status !== '3'" v-slot:footer
+        ><div></div
+      ></template>
     </simple-dialog>
     <simpleDialog
       title="提交"
@@ -313,7 +315,9 @@ export default {
     // },
     handleAllow({ row, column }) {
       let public_permisson =
-        (!this.form.permission_type || this.status === "2") &&
+        (!this.form.permission_type ||
+          this.status === "2" ||
+          this.status === "3") &&
         this.type === "edit";
       let editable =
         this.row_list.includes(row) && this.column_list.includes(column);
@@ -374,7 +378,7 @@ export default {
           this.form = {
             permission_type: Number(type) - 1,
             person: list.map((el) => {
-              return `${el.principalId},${el.principalName}`;
+              return `${el.principalMent}-${el.principalId},${el.principalName}`;
             }),
             charge: [
               {
@@ -395,7 +399,7 @@ export default {
             row_start: "",
             row_end: "",
             charge: list.map((el) => ({
-              person: el.principalId + "," + el.principalName,
+              person: `${el.principalMent}-${el.principalId},${el.principalName}`,
               col_start: el.allowEditingColumns.split(",")[0],
               col_end:
                 el.allowEditingColumns.split(",")[
@@ -435,10 +439,6 @@ export default {
         type: "json",
       });
     },
-    // formateNumber(String) {
-    //   console.log(String, "daa");
-    //   if(String.split(','))
-    // },
     handleForbid() {
       // const object = {};
       const { permission_type } = this.form;
@@ -508,7 +508,7 @@ export default {
             });
             let changedList = middle.join(",").split(",");
             that.rowList.push(...changedList);
-            console.log(that.rowList,'that.rowList');
+            console.log(that.rowList, "that.rowList");
           },
         },
       };
@@ -570,14 +570,18 @@ export default {
       if (!permission_type) {
         //  公共权限
         const { person } = this.form;
+
         const principalId = [];
         const principalName = [];
+        const principalMent = [];
         person.forEach((el) => {
-          principalId.push(el.split(",")[0]);
+          principalMent.push(el.split(",")[0].split("-")[0]);
+          principalId.push(el.split(",")[0].split("-")[1]);
           principalName.push(el.split(",")[1]);
         });
         reqdata.principalId = principalId.join(",");
         reqdata.principalName = principalName.join(",");
+        reqdata.principalMent = principalName.join(",");
       } else {
         const { charge } = this.form;
         //  特殊权限
@@ -585,7 +589,8 @@ export default {
           JSON.stringify({
             allowEditingColumns: `${el.col_start},${el.col_end}`,
             rowNum: `${el.row_start},${el.row_end}`,
-            principalId: el.person.split(",")[0],
+            principalMent: el.person.split(",")[0].split("-")[0],
+            principalId: el.person.split(",")[0].split("-")[1],
             principalName: el.person.split(",")[1],
           })
         );
@@ -648,56 +653,6 @@ export default {
       } else {
         // 职位
         let duty = JSON.parse(sessionStorage.userInfo).duty;
-        // let { permission_type, charge } = this.form;
-        this.rowList.shift();
-        let reqdata = {
-          rowIndex: [...new Set(this.rowList)]
-            .sort(function (a, b) {
-              return a - b;
-            })
-            .join(","),
-          rowContent: [...new Set(this.rowList)]
-            .sort(function (a, b) {
-              return a - b;
-            })
-            .map((el) => {
-              return data.data[el];
-            }),
-        };
-        console.log(reqdata, "reqdata");
-        // if (permission_type) {
-        //   // 特殊权限
-        //   reqdata = {
-        //     ...reqdata,
-        //     rowIndex: this.paramsArr(
-        //       charge[0].row_start - 1,
-        //       charge[0].row_end - 1
-        //     ),
-        // rowContent: this.paramsArr(
-        //   charge[0].row_start - 1,
-        //   charge[0].row_end - 1
-        // )
-        //   .split(",")
-        //   .map((el) => {
-        //     return data.data[el];
-        //   }),
-        //   };
-        // } else {
-        //   // 公共权限
-        //   const RowList = [];
-        //   const RowContent = [];
-        //   data.data.forEach((item, rowIndex) => {
-        //     if (this.confirmArrayData(item)) {
-        //       RowList.push(rowIndex);
-        //       RowContent.push(item);
-        //     }
-        //   });
-        //   reqdata = {
-        //     ...reqdata,
-        //     rowIndex: RowList.join(","),
-        //     rowContent: RowContent,
-        //   };
-        // }
         if (duty === "7") {
           this.manager_approve = true;
         } else {
@@ -720,6 +675,21 @@ export default {
             return;
           }
           // 员工提交
+          this.rowList.shift();
+          let reqdata = {
+            rowIndex: [...new Set(this.rowList)]
+              .sort(function (a, b) {
+                return a - b;
+              })
+              .join(","),
+            rowContent: [...new Set(this.rowList)]
+              .sort(function (a, b) {
+                return a - b;
+              })
+              .map((el) => {
+                return data.data[el];
+              }),
+          };
           await this.$http({
             url: edit_url, //提交
             method: "post",
@@ -827,7 +797,7 @@ export default {
         const sheet_name = window.luckysheet.getSheet().name;
         const data = window.luckysheet.getSheet(sheet_name);
         const workbook_name = window.luckysheet.getWorkbookName();
-        // let { permission_type, charge } = this.form;
+        // 经理提交
         this.rowList.shift();
         let reqdata = {
           rowIndex: [...new Set(this.rowList)]
@@ -843,39 +813,6 @@ export default {
               return data.data[el];
             }),
         };
-        // if (permission_type) {
-        //   // 特殊权限
-        //   reqdata = {
-        //     ...reqdata,
-        //     rowIndex: this.paramsArr(
-        //       charge[0].row_start - 1,
-        //       charge[0].row_end - 1
-        //     ),
-        //     rowContent: this.paramsArr(
-        //       charge[0].row_start - 1,
-        //       charge[0].row_end - 1
-        //     )
-        //       .split(",")
-        //       .map((el) => {
-        //         return data.data[el];
-        //       }),
-        //   };
-        // } else {
-        //   // 公共权限
-        //   const RowList = [];
-        //   const RowContent = [];
-        //   data.data.forEach((item, rowIndex) => {
-        //     if (this.confirmArrayData(item)) {
-        //       RowList.push(rowIndex);
-        //       RowContent.push(item);
-        //     }
-        //   });
-        //   reqdata = {
-        //     ...reqdata,
-        //     rowIndex: RowList.join(","),
-        //     rowContent: RowContent,
-        //   };
-        // }
         await this.$http({
           url: "/market/CMKIssued/CMKIssuedSubmit", // 提交
           method: "post",
@@ -993,16 +930,19 @@ export default {
       }).then((response) => {
         this.charge_list = response.data.map((element) => ({
           label: `${element.ou} ${element.secLeaderName}`,
-          value: `${element.secLeaderLogin},${element.secLeaderName}`,
+          value: `${element.ou}-${element.secLeaderLogin},${element.secLeaderName}`,
         }));
       });
     },
   },
   mounted() {
-    console.log(this.status, "s");
+    console.log(this.destroy, "destroy");
     this.handleInit();
     this.handleChargeList();
   },
+  destroyed() {
+    window.luckysheet.destroy();
+  },
 };
 </script>
 

+ 4 - 51
src/pages/main/performance/department.vue

@@ -1,12 +1,7 @@
 <template>
   <div>
     <div class="simple-container">
-      <simple-form :form="table_form" @search="handleSearch">
-        <!-- :handle="table_handle"
-      @add="handleRulesVisible"
-      @class="handleDrawer('class')"
-      @download="handleDownload" -->
-      </simple-form>
+      <simple-form :form="table_form" @search="handleSearch"> </simple-form>
       <simple-table
         :list="table_list"
         :config="table_config"
@@ -46,13 +41,6 @@
                 @click="handleTransfer"
                 >转派</el-button
               >
-              <!-- 提交按钮 科员可见 9  -->
-              <!-- <el-button
-                type="primary"
-                v-if="edit_form.status === '1' && duty === '9'"
-                @click="handleSubmit"
-                >提交</el-button
-              > -->
               <!-- 审批按钮 科室经理、分管副总、总经理可见  -->
               <el-button
                 type="primary"
@@ -65,14 +53,7 @@
                 >审批</el-button
               >
             </template>
-            <!-- <el-button type="primary" @click="handleTrack">流程跟踪</el-button>
-            <el-button type="primary">导出</el-button> -->
           </div>
-          <!-- <div>
-            <el-button @click="handleCancel('visible')" type="primary"
-              >返回</el-button
-            >
-          </div> -->
         </div>
         <!-- 主体部分 -->
         <simple-sheet
@@ -288,34 +269,6 @@
         </el-form-item>
       </el-form>
     </simple-dialog>
-    <!-- <simple-dialog
-      title="流程跟踪"
-      :visible="track_visible"
-      :reload="reload"
-      width="600px"
-      props="track_visible"
-      @confirm="handleConfirm"
-      @cancel="handleCancel('track_visible')"
-    >
-      <el-table :data="trackList" border>
-        <el-table-column
-          prop="link"
-          label="流程环节"
-          align="center"
-          width="180"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="creatperson"
-          label="处理人"
-          align="center"
-          width="180"
-        >
-        </el-table-column>
-        <el-table-column prop="explain" label="审批说明" align="center">
-        </el-table-column>
-      </el-table>
-    </simple-dialog> -->
   </div>
 </template>
 
@@ -851,15 +804,15 @@ export default {
     },
     async handleTransfer() {
       let loginNoStr = JSON.parse(sessionStorage.userInfo).loginNoStr;
-      let groupId = JSON.parse(sessionStorage.userInfo).groupId;
+      let logNo = JSON.parse(sessionStorage.userInfo).loginNo;
       await this.$http({
-        url: "/sysmgr/sysuserinfo/queryList",
+        url: "/market/CMKIssued/queryUserList",
         method: "post",
         headers: {
           "Content-Type": "application/json",
         },
         data: {
-          groupId,
+          logNo,
         },
       }).then(({ data }) => {
         this.transfer_list_orgin = data

+ 2 - 2
src/pages/main/performance/mould.vue

@@ -170,14 +170,14 @@ export default {
           label: "下发",
           props: "issue",
           visible: {
-            status: ["0"],
+            status: ["0", "3"],
           },
         },
         {
           label: "编辑",
           props: "redit",
           visible: {
-            status: ["2"],
+            status: ["2", "3"],
           },
         },
         {

+ 1 - 1
vue.config.js

@@ -93,7 +93,7 @@ module.exports = {
         proxy: {
             // 开发环境变化可注释 ⬇️⬇️
             "/market/CMK": {
-                target: "http://192.168.0.90:9113",
+                target: "http://192.168.3.12:9114",
                 ws: false,
                 changeOrigin: true,
                 pathRewrite: {