yangbifan 2 лет назад
Родитель
Сommit
6ff91c7cbd

+ 33 - 247
src/pages/main/competitor/components/sheet.vue

@@ -9,6 +9,7 @@
   <div class="sheet-container">
     <div>
       <el-button type="primary" v-if="saveStatus" @click="handleResave">保存</el-button>
+        <!-- <el-button type="primary" @click="handleResave">保存</el-button> -->
       <!-- <el-button> <input style="font-size:16px;" type="file" @change="handdaoru(e)" /></el-button> -->
       <el-button type="primary" @click="handleDownload">导出</el-button>
       <el-button type="primary" @click="handleFullscreen()">全屏显示</el-button>
@@ -26,6 +27,9 @@ export default {
     // simpleDialog,
   },
   props: {
+    excel:{
+     type:Array
+    },
     type: {
       type: String,
       default: "view", // view 查看 edit 编辑
@@ -331,6 +335,7 @@ export default {
           },
         },
       ],
+      excelList:'',
       form: {
         charge: [
           {
@@ -473,7 +478,7 @@ export default {
             let hover = time.getHours();
             let day = time.getDay();
             if (day === 4 || day === 5) {
-              if ((day === 4 && hover <= 15) || (day === 5 && hover >= 15)) {
+              if ((day === 4 && hover < 15) || (day === 5 && hover > 15)) {
                 that.$message.error("不在可编辑时间");
               }
             } else {
@@ -555,12 +560,12 @@ export default {
       // }
       window.luckysheet.create(options);
 
-      let clock = setInterval(() => {
-        if (window.luckysheet) {
-          window.luckysheet.refresh();
-          clearInterval(clock);
-        }
-      }, 1000);
+      // let clock = setInterval(() => {
+      //   if (window.luckysheet) {
+      //     window.luckysheet.refresh();
+      //     clearInterval(clock);
+      //   }
+      // }, 1000);
     },
     // async handleChange(response) {
     //   this.handleCreate({ file: response.raw, type: "file" });
@@ -775,242 +780,6 @@ export default {
       }
     },
     // 获取excel数据
-    async getExcelList() {
-      let name = JSON.parse(window.sessionStorage.getItem("userInfo")).cityName;
-
-      this.$http({
-        url: "/market/mkCompetitor/load",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-      }).then((res) => {
-        // console.log(res)
-        // res.data.body[0].data.map((item) =>{
-        //    item.map((items) =>{
-        //        console.log(items)
-        //    })
-        // })
-        if (res.data.body[0].data) {
-          // let data = res.data.body[0].data;
-          // res.data.body[0].data = [];
-          // for (let i = 0; i <= data.length - 1; i++) {
-          //   if (i <= 79) {
-          //     res.data.body[0].data.push(data[i]);
-          //   }
-          // }
-          if (name == null) {
-            for (let y = res.data.body[0].data.length - 1; y >= 0; y--) {
-              console.log( res.data.body[0].data);
-              if (res.data.body[0].data[y][0] === null) {
-                res.data.body[0].data.splice(y, 1);
-              }
-            }
-            this.getSheetList(res.data.body);
-          } else {
-            this.handleCreate(res.data.body);
-          }
-        } else {
-          console.log(123);
-          let titleList = [
-            {
-              name: "哈尔滨",
-              order: 0,
-              index: 0,
-              cloumn: 10,
-              row: 10,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //
-              },
-            },
-            {
-              name: "哈尔滨",
-              order: 1,
-              index: 1,
-              column: 22,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "鸡西",
-              order: 2,
-              index: 2,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "友商在售信息",
-              order: 0,
-              index: 0,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "友商在售信息",
-              order: 0,
-              index: 0,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "友商在售信息",
-              order: 0,
-              index: 0,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "友商在售信息",
-              order: 0,
-              index: 0,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "友商在售信息",
-              order: 0,
-              index: 0,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-            {
-              name: "友商在售信息",
-              order: 0,
-              index: 0,
-              defaultRowHeight: 50, //自定义行高
-              defaultColWidth: 120, //自定义列宽
-              celldata: [...this.celldata],
-
-              config: {
-                merge: {}, //合并单元格
-                rowlen: { 0: 100 }, //表格行高
-                columnlen: { 1: 200 }, //表格列宽
-                rowhidden: {}, //隐藏行
-                colhidden: {}, //隐藏列
-                borderInfo: {}, //边框
-                authority: {}, //工作表保护
-              },
-            },
-          ];
-          this.handleCreate(titleList);
-        }
-      });
-    },
-    // 判断数组是否有值
-    async getSheetList(data) {
-      let name = JSON.parse(window.sessionStorage.getItem("userInfo")).cityName;
-      if (name) {
-        if (name.length === 5) {
-          name.substring(0, 1);
-        } else if (name.length === 6) {
-          name.substring(0, 2);
-        } else {
-          name.substring(0, 3);
-        }
-      }
-      const form = new FormData();
-      form.append("name", name);
-      await this.$http({
-        url: "/market/mkCompetitor/getSheet",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: form,
-      }).then((res) => {
-        res.data.body.map((item) => {
-          data.push(item[0]);
-        });
-        this.handleCreate(data);
-      });
-    },
 
     handleFullscreen() {
       const element = document.body;
@@ -1105,9 +874,10 @@ export default {
       // }
         let time = new Date()
         let hover = time.getHours()
+        console.log(hover);
         let day = time.getDay()
         if(day === 4 || day === 5){
-            if((day ===4 && hover <=15) || (day === 5 &&hover>=15)){
+            if((day === 4 && hover <15) || (day === 5 &&hover>15)){
                 this.$message.error('不在可编辑时间');
             }else{
                 this.$http({
@@ -1122,7 +892,7 @@ export default {
                         type: "success",
                         message: "保存成功",
                     });
-                    this.$emit("save");
+                    this.$emit("save",true);
                 });
             }
         }else{
@@ -1161,14 +931,30 @@ export default {
     },
   },
   mounted() {
-    this.handleCreate();
     this.handleInit();
     this.handleChargeList();
-    this.getExcelList();
     if (JSON.parse(window.sessionStorage.getItem("userInfo")).cityName) {
       this.saveStatus = true;
+      
     }
   },
+  watch:{
+   excel:{
+    //  immediate:true,
+     handler(val){
+      this.excelList = val
+        
+     }
+   },
+   excelList:{
+     handler(newVal,oldVal){
+       if(oldVal == ''){
+        this.handleCreate(newVal)
+       }
+     
+     }
+   }
+  },
   destroyed() {
     window.luckysheet.destroy();
   },

+ 252 - 4
src/pages/main/competitor/index.vue

@@ -7,7 +7,6 @@
     >
       <el-tabs v-model="activeName" @tab-click="handleClick">
         <el-tab-pane label="友商竞争信息" name="first">
-          
           <div class="container-box">
             <!-- <toolList @iconCli="iconCli" :tooltit="tooltit"></toolList> -->
             <div class="checknum">
@@ -262,12 +261,15 @@
 
         <el-tab-pane label="友商在售信息" name="second">
           <el-dialog
-            style="margin-top: 0; "
+            style="margin-top: 0"
             title="上报excel"
+            :modal="false"
             :visible.sync="dialogTableVisible"
+            :close="clickClose"
+            :destroy-on-close="true"
           >
             <div class="container-box">
-              <simple-sheet />
+              <simple-sheet @save="save" :excel="excelList" />
             </div>
           </el-dialog>
         </el-tab-pane>
@@ -305,6 +307,7 @@ export default {
   },
   data() {
     return {
+      excelList: [],
       dialogTableVisible: false,
       exportType: "1", // 1是违规  2是正常
       activeName: "first",
@@ -391,6 +394,247 @@ export default {
     };
   },
   methods: {
+    save(val) {
+      if (val) {
+        this.getExcelList();
+      }
+    },
+    getExcelList() {
+      let name = JSON.parse(window.sessionStorage.getItem("userInfo")).cityName;
+
+      this.$http({
+        url: "/market/mkCompetitor/load",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+      }).then((res) => {
+        // console.log(res)
+        // res.data.body[0].data.map((item) =>{
+        //    item.map((items) =>{
+        //        console.log(items)
+        //    })
+        // })
+        if (res.data.body[0].data) {
+          // let data = res.data.body[0].data;
+          // res.data.body[0].data = [];
+          // for (let i = 0; i <= data.length - 1; i++) {
+          //   if (i <= 79) {
+          //     res.data.body[0].data.push(data[i]);
+          //   }
+          // }
+          if (name == null) {
+            this.getSheetList(res.data.body);
+            // this.excelList = res.data.body
+          } else {
+            this.excelList = res.data.body;
+          }
+        } else {
+          let titleList = [
+            {
+              name: "哈尔滨",
+              order: 0,
+              index: 0,
+              cloumn: 10,
+              row: 10,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //
+              },
+            },
+            {
+              name: "哈尔滨",
+              order: 1,
+              index: 1,
+              column: 22,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "鸡西",
+              order: 2,
+              index: 2,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "友商在售信息",
+              order: 0,
+              index: 0,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "友商在售信息",
+              order: 0,
+              index: 0,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "友商在售信息",
+              order: 0,
+              index: 0,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "友商在售信息",
+              order: 0,
+              index: 0,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "友商在售信息",
+              order: 0,
+              index: 0,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+            {
+              name: "友商在售信息",
+              order: 0,
+              index: 0,
+              defaultRowHeight: 50, //自定义行高
+              defaultColWidth: 120, //自定义列宽
+              celldata: [...this.celldata],
+
+              config: {
+                merge: {}, //合并单元格
+                rowlen: { 0: 100 }, //表格行高
+                columnlen: { 1: 200 }, //表格列宽
+                rowhidden: {}, //隐藏行
+                colhidden: {}, //隐藏列
+                borderInfo: {}, //边框
+                authority: {}, //工作表保护
+              },
+            },
+          ];
+          this.excelList = titleList;
+        }
+      });
+    },
+    //判断数组是否有值
+    getSheetList(data) {
+      let name = JSON.parse(window.sessionStorage.getItem("userInfo")).cityName;
+      if (name) {
+        if (name.length === 5) {
+          name.substring(0, 1);
+        } else if (name.length === 6) {
+          name.substring(0, 2);
+        } else {
+          name.substring(0, 3);
+        }
+      }
+      const form = new FormData();
+      form.append("name", name);
+      this.$http({
+        url: "/market/mkCompetitor/getSheet",
+        method: "post",
+        headers: {
+          "Content-Type": "application/json",
+        },
+        data: form,
+      }).then((res) => {
+        res.data.body.map((item) => {
+          data.push(item[0]);
+        });
+        for (let y = data[0].data.length - 1; y >= 0; y--) {
+          if (data[0].data[y][0] === null || !data[0].data[y][0].v) {
+            data[0].data.splice(y, 1);
+          }
+        }
+        console.log(this.data);
+        this.excelList = data;
+      });
+    },
     // 接口调用
     getSecondList(v, n) {
       this.pageSize = n;
@@ -416,9 +660,13 @@ export default {
       if (this.activeName == "first") {
         this.getList(this.params, this.pageSize);
       } else {
-        this.dialogTableVisible = true
+        this.dialogTableVisible = true;
+        this.getExcelList();
       }
     },
+    clickClose() {
+      console.log(123);
+    },
     //查询处理
     searchInfo(v) {
       this.params = {};

+ 70 - 34
src/pages/main/competitors/company.vue

@@ -20,7 +20,7 @@
       <el-button type="primary" @click="handleResave" 
         >保存</el-button
       >
-      <el-upload
+      <!-- <el-upload
         class="upload-demo"
         multiple
         ref="upload"
@@ -36,7 +36,7 @@
         <div>
           <el-button>123</el-button>
         </div>
-      </el-upload>
+      </el-upload> -->
       <el-button type="primary" @click="handleDownload">导出</el-button>
       <el-button type="primary" @click="handleFullscreen()">全屏显示</el-button>
     </div>
@@ -78,7 +78,7 @@ export default {
 
   data() {
     return {
-      bednumber: "",
+      bednumber: "联通",
       checkStatus: false,
       unicomList: [], //联通excelList
       telecomList: [], //电信excelList
@@ -503,6 +503,7 @@ export default {
         },
       }).then((res) => {
         // this.handleCreate(res.data.body)
+         res.data.body[0].index= 0
         res.data.body[0].subScript = 0;
         this.a = res.data.body;
       });
@@ -515,6 +516,7 @@ export default {
           "Content-Type": "application/json",
         },
       }).then((res) => {
+         res.data.body[0].index= 1
         res.data.body[0].subScript = 1;
         this.a.push(res.data.body[0]);
       });
@@ -527,6 +529,7 @@ export default {
           "Content-Type": "application/json",
         },
       }).then((res) => {
+         res.data.body[0].index= 0
         res.data.body[0].subScript = 2;
         this.b = res.data.body;
       });
@@ -539,6 +542,7 @@ export default {
           "Content-Type": "application/json",
         },
       }).then((res) => {
+         res.data.body[0].index= 1
         res.data.body[0].subScript = 3;
         this.b.push(res.data.body[0]);
       });
@@ -903,31 +907,31 @@ export default {
         // },
       };
 
-      switch (data.type) {
-        case "file":
-          if (data.file) {
-            await new Promise((resolve) => {
-              luckyexcel.transformExcelToLucky(data.file, (export_json) => {
-                options.data = [
-                  ...export_json.sheets.map((element) => ({
-                    ...element,
-                    zoomRatio: 0.75,
-                  })),
-                ];
-                options.title = export_json.info.name;
-                resolve();
-              });
-            });
-          }
-          break;
-        case "json":
-          console.log(123);
-          // if (json) {
-          //   options.data = [];
-          //   options.title = name;
-          // }
-          break;
-      }
+      // switch (data.type) {
+      //   case "file":
+      //     if (data.file) {
+      //       await new Promise((resolve) => {
+      //         luckyexcel.transformExcelToLucky(data.file, (export_json) => {
+      //           options.data = [
+      //             ...export_json.sheets.map((element) => ({
+      //               ...element,
+      //               zoomRatio: 0.75,
+      //             })),
+      //           ];
+      //           options.title = export_json.info.name;
+      //           resolve();
+      //         });
+      //       });
+      //     }
+      //     break;
+      //   case "json":
+      //     console.log(123);
+      //     // if (json) {
+      //     //   options.data = [];
+      //     //   options.title = name;
+      //     // }
+      //     break;
+      // }
       window.luckysheet.create(options);
 
       let clock = setInterval(() => {
@@ -1365,19 +1369,50 @@ export default {
       //   case 3:
       //     baseUrl = "questionnaireTelecom";
       // }
-       switch (datas.name) {
-        case '联通资费内容':
+         switch (datas.name) {
+        case "联通资费内容":
+        // case "双鸭山联通资费内容":
+        // case "牡丹江联通资费内容":
+        // case "鸡西联通资费内容":
+        // case "齐齐哈尔联通资费内容":
+        // case "鹤岗联通资费内容":
+        // case "伊春联通资费内容":
+        // case "哈尔滨联通资费内容":
+        // case "大庆联通资费内容":
+        // case "绥化联通资费内容":
+        // case "大兴安岭联通资费内容":
+        // case "黑河联通资费内容":
+        // case "佳木斯联通资费内容":
           baseUrl = "expensesUnicom";
+          datas.index = 0;
+          datas.subScript = 0;
           break;
-        case '联通问卷内容':
+        case "联通问卷内容":
           baseUrl = "questionnaireUnicom";
+          datas.index = 1;
+          datas.subScript = 1;
           break;
-        case '电信资费内容':
+        // case "七台河电信资费内容":
+        // case "双鸭山电信资费内容":
+        // case "牡丹江电信资费内容":
+        // case "鸡西电信资费内容":
+        // case "齐齐哈尔电信资费内容":
+        // case "鹤岗电信资费内容":
+        // case "伊春电信资费内容":
+        // case "哈尔滨电信资费内容":
+        // case "大庆电信资费内容":
+        // case "绥化电信资费内容":
+        // case "大兴安岭电信资费内容":
+        // case "黑河电信资费内容":
+        case "电信资费内容":
           baseUrl = "expensesTelecom";
-       
+          datas.index = 0;
+          datas.subScript = 0;
           break;
-        case '电信问卷内容':
+        case "电信问卷内容":
           baseUrl = "questionnaireTelecom";
+          datas.index = 1;
+          datas.subScript = 1;
       }
       const workbook_name = window.luckysheet.getWorkbookName();
       let value = {};
@@ -1455,6 +1490,7 @@ export default {
     },
   },
   mounted() {
+    this.getCheck();
     this.getJurisdiction();
     this.handleInit();
     // this.handleChargeList();

+ 234 - 161
src/pages/main/competitors/home.vue

@@ -17,8 +17,8 @@
           :value="item.value"
         ></el-option>
       </el-select>
-      <el-button type="primary" @click="handleResave">保存</el-button>
-      <el-upload
+      <el-button type="primary" @click="handleResave" v-if="citystatus">保存</el-button>
+      <!-- <el-upload
         class="upload-demo"
         multiple
         ref="upload"
@@ -34,10 +34,13 @@
         <div>
           <el-button>123</el-button>
         </div>
-      </el-upload>
-      <el-button type="primary" @click="handleDownload">导出</el-button>
+      </el-upload> -->
+      <el-button type="primary" @click="handleDownload"  v-if="saveStatus">导出</el-button>
       <!-- <el-button type="primary" @click="handleDownload" v-if="clickOut">导出</el-button> -->
       <el-button type="primary" @click="handleFullscreen()">全屏显示</el-button>
+      <div class="title-tips">
+        <span> 说明:文字结论为必填项</span>
+      </div>
     </div>
 
     <div id="luckysheet" style="width: 75%; height: 70%"></div>
@@ -76,7 +79,9 @@ export default {
 
   data() {
     return {
-      bednumber: "",
+       citystatus: false,
+      saveStatus: false,
+      bednumber: "联通",
       options: [
         {
           value: "电信",
@@ -535,8 +540,9 @@ export default {
         res.data.body[0][0].ch_width = 4971;
         res.data.body[0][0].ch_height = 4971;
         res.data.body[0].push(...data);
-        for (let y =  res.data.body[0][0].data.length - 1; y >= 0; y--) {
-          if (res.data.body[0][0].data[y][0] === null) {
+        console.log(res.data.body);
+        for (let y = res.data.body[0][0].data.length - 1; y >= 3; y--) {
+          if (res.data.body[0][0].data[y][0] === null || !res.data.body[0][0].data[y][0].v) {
             res.data.body[0][0].data.splice(y, 1);
           }
         }
@@ -572,7 +578,6 @@ export default {
       }).then((res) => {
         console.log(res);
         // this.handleCreate(res.data.body)
-        res.data.body[0].subScript = 0;
         this.getUnicomList(res.data.body[0]);
       });
     },
@@ -586,7 +591,6 @@ export default {
         },
       }).then((res) => {
         console.log(res);
-        res.data.body[0].subScript = 1;
         res.data.body.push(data);
         this.handleCreate(res.data.body);
       });
@@ -601,7 +605,6 @@ export default {
         },
       }).then((res) => {
         console.log(res);
-        res.data.body[0].subScript = 2;
         this.getMoveList(res.data.body[0]);
       });
     },
@@ -615,7 +618,6 @@ export default {
         },
       }).then((res) => {
         console.log(res);
-        res.data.body[0].subScript = 3;
         res.data.body.push(data);
         this.handleCreate(res.data.body);
       });
@@ -664,8 +666,8 @@ export default {
         res.data.body[0][0].ch_width = 4971;
         res.data.body[0][0].ch_height = 4971;
         res.data.body[0].push(...data);
-        for (let y =  res.data.body[0][0].data.length - 1; y >= 0; y--) {
-          if (res.data.body[0][0].data[y][0] === null) {
+        for (let y = res.data.body[0][0].data.length - 1; y >= 3; y--) {
+          if (res.data.body[0][0].data[y][0] === null || !res.data.body[0][0].data[y][0].v) {
             res.data.body[0][0].data.splice(y, 1);
           }
         }
@@ -686,7 +688,6 @@ export default {
         let data = [];
         for (let i = 0; i < list.length; i++) {
           data.push(list[i][0]);
-          list[i][0].subScript = 0;
         }
         this.getMoves(data);
       });
@@ -1072,11 +1073,11 @@ export default {
             let day = time.getDay();
             if (day === 4 || day === 5 || day === 6 || day == 7 || day === 1) {
               if ((day === 4 && hover <= 15) || (day === 1 && hover >= 15)) {
-                that.$message.error("上周四下午三点-本周一下午三点");
+                that.$message.error("可编辑时间:上周四下午三点-本周一下午三点");
                 return false;
               }
             } else {
-              that.$message.error("上周四下午三点-本周一下午三点");
+              that.$message.error("可编辑时间:上周四下午三点-本周一下午三点");
               return false;
             }
           },
@@ -1128,31 +1129,31 @@ export default {
         // },
       };
 
-      switch (data.type) {
-        case "file":
-          if (data.file) {
-            await new Promise((resolve) => {
-              luckyexcel.transformExcelToLucky(data.file, (export_json) => {
-                options.data = [
-                  ...export_json.sheets.map((element) => ({
-                    ...element,
-                    zoomRatio: 0.75,
-                  })),
-                ];
-                options.title = export_json.info.name;
-                resolve();
-              });
-            });
-          }
-          break;
-        case "json":
-          console.log(123);
-          // if (json) {
-          //   options.data = [];
-          //   options.title = name;
-          // }
-          break;
-      }
+      // switch (data.type) {
+      //   case "file":
+      //     if (data.file) {
+      //       await new Promise((resolve) => {
+      //         luckyexcel.transformExcelToLucky(data.file, (export_json) => {
+      //           options.data = [
+      //             ...export_json.sheets.map((element) => ({
+      //               ...element,
+      //               zoomRatio: 0.75,
+      //             })),
+      //           ];
+      //           options.title = export_json.info.name;
+      //           resolve();
+      //         });
+      //       });
+      //     }
+      //     break;
+      //   case "json":
+      //     console.log(123);
+      //     // if (json) {
+      //     //   options.data = [];
+      //     //   options.title = name;
+      //     // }
+      //     break;
+      // }
       window.luckysheet.create(options);
       // this.handleCreate(options)
 
@@ -1598,11 +1599,32 @@ export default {
       }
     },
     getTime() {},
+    cityStatus(data) {
+      let cityname = JSON.parse(
+        window.sessionStorage.getItem("userInfo")
+      ).cityName;
+      if (cityname) {
+        let citynames = cityname.substring(0, cityname.length - 3);
+        let datas = [];
+        for (let i = 3; i <= data.data.data.length - 1; i++) {
+          datas.push(data.data.data[i][0]);
+        }
+        let status = datas.every((item) => {
+          console.log(item);
+          if (item && item.v) {
+            return item.v === citynames;
+          } else {
+            return true;
+          }
+        });
+        return status;
+      }
+    },
     handleResave() {
       const sheet_name = window.luckysheet.getSheet().name;
       let baseUrl = "";
       const datas = window.luckysheet.getSheet(sheet_name);
-      // switch (datas.subScript) {
+      // switch (datas.index) {
       //   case 0:
       //     baseUrl = "expensesUnicom";
       //     break;
@@ -1610,7 +1632,7 @@ export default {
       //     baseUrl = "questionnaireUnicom";
       //     break;
       //   case 2:
-      //     baseUrl = "expensesTelecom";load
+      //     baseUrl = "expensesTelecom";
       //
       //     break;
       //   case 3:
@@ -1631,11 +1653,13 @@ export default {
         case "黑河联通资费内容":
         case "佳木斯联通资费内容":
           baseUrl = "expensesUnicom";
-          datas.index = 1;
+          datas.index = 0;
           datas.subScript = 0;
           break;
         case "联通问卷内容":
           baseUrl = "questionnaireUnicom";
+          datas.index = 1;
+          datas.subScript = 1;
           break;
         case "七台河电信资费内容":
         case "双鸭山电信资费内容":
@@ -1651,10 +1675,13 @@ export default {
         case "黑河电信资费内容":
         case "佳木斯电信资费内容":
           baseUrl = "expensesTelecom";
-            datas.index = 4;
+          datas.index = 0;
+          datas.subScript = 0;
           break;
         case "电信问卷内容":
           baseUrl = "questionnaireTelecom";
+          datas.index = 1;
+          datas.subScript = 1;
       }
       const workbook_name = window.luckysheet.getWorkbookName();
       let value = {};
@@ -1679,130 +1706,164 @@ export default {
           data: data, //文件内容
         };
       }
-      if (datas.subScript === 1) {
-        let status = this.cityStatus(value);
-        if (status) {
-          this.$http({
-            // 联通资费内容
-            // url: "/market/expensesUnicom/save",
-            //联通问卷
-            //  url: "/market/questionnaireUnicom/save",
-            //电信费用
-            // url: "/market/expensesTelecom/save",
-            //电信问卷
-            //  url: "/market/questionnaireTelecom/save",
-            url: "/market/" + baseUrl + "/save",
-            method: "post",
-            headers: {
-              "Content-Type": "application/json",
-            },
-            data: value,
-          }).then(() => {
-            this.$message({
-              type: "success",
-              message: "保存成功",
-            });
-            this.getCheck();
-          });
+      //   this.$http({
+      //   // 联通资费内容
+      //   // url: "/market/expensesUnicom/save",
+      //   //联通问卷
+      //   //  url: "/market/questionnaireUnicom/save",
+      //   //电信费用
+      //   // url: "/market/expensesTelecom/save",
+      //   //电信问卷
+      //   //  url: "/market/questionnaireTelecom/save",
+      //   url: "/market/" + baseUrl + "/save",
+      //   method: "post",
+      //   headers: {
+      //     "Content-Type": "application/json",
+      //   },
+      //   data: value,
+      // }).then(() => {
+      //   this.$message({
+      //     type: "success",
+      //     message: "保存成功",
+      //   }); 
+      //   this.getCheck();
+      // });
+
+      //地市公司选择资费时候的 0资费,1问卷
+      let time = new Date();
+      let hover = time.getHours();
+      let day = time.getDay();
+      if (day === 4 || day === 5 || day === 6 || day == 7 || day === 1) {
+        if ((day === 4 && hover <= 15) || (day === 1 && hover >= 15)) {
+          this.$message.error("可编辑时间:上周四下午三点-本周一下午三点");
+          return false;
         } else {
-          this.$message({
-            type: "error",
-            message: "不能保存当前城市",
-          });
+          if (datas.subScript === 1) {
+            let status = this.cityStatus(value);
+            if (status) {
+              this.$http({
+                // 联通资费内容
+                // url: "/market/expensesUnicom/save",
+                //联通问卷
+                //  url: "/market/questionnaireUnicom/save",
+                //电信费用
+                // url: "/market/expensesTelecom/save",
+                //电信问卷
+                //  url: "/market/questionnaireTelecom/save",
+                url: "/market/" + baseUrl + "/save",
+                method: "post",
+                headers: {
+                  "Content-Type": "application/json",
+                },
+                data: value,
+              }).then(() => {
+                this.$message({
+                  type: "success",
+                  message: "保存成功",
+                });
+                this.getCheck();
+              });
+            } else {
+              this.$message({
+                type: "error",
+                message: "不能保存当前城市",
+              });
+            }
+          } else {
+            this.$http({
+              // 联通资费内容
+              // url: "/market/expensesUnicom/save",
+              //联通问卷
+              //  url: "/market/questionnaireUnicom/save",
+              //电信费用
+              // url: "/market/expensesTelecom/save",
+              //电信问卷
+              //  url: "/market/questionnaireTelecom/save",
+              url: "/market/" + baseUrl + "/save",
+              method: "post",
+              headers: {
+                "Content-Type": "application/json",
+              },
+              data: value,
+            }).then(() => {
+              this.$message({
+                type: "success",
+                message: "保存成功",
+              });
+              this.getCheck();
+            });
+          }
         }
       } else {
-        this.$http({
-          // 联通资费内容
-          // url: "/market/expensesUnicom/save",
-          //联通问卷
-          //  url: "/market/questionnaireUnicom/save",
-          //电信费用
-          // url: "/market/expensesTelecom/save",
-          //电信问卷
-          //  url: "/market/questionnaireTelecom/save",
-          url: "/market/" + baseUrl + "/save",
-          method: "post",
-          headers: {
-            "Content-Type": "application/json",
-          },
-          data: value,
-        }).then(() => {
-          this.$message({
-            type: "success",
-            message: "保存成功",
-          });
-          this.getCheck();
-        });
-      }
-
-      // let time = new Date();
-      // let hover = time.getHours();
-      // let day = time.getDay();
-      // if (day === 4 || day === 5 || day === 6 || day == 7 || day === 1) {
-      //   if ((day === 4 && hover <= 15) || (day === 1 && hover >= 15)) {
-      //     this.$message.error("不在可编辑时间");
-      //     return false;
-      //   } else {
-      //     this.$http({
-      //       // 联通资费内容
-      //       // url: "/market/expensesUnicom/save",
-      //       //联通问卷
-      //       //  url: "/market/questionnaireUnicom/save",
-      //       //电信费用
-      //       // url: "/market/expensesTelecom/save",
-      //       //电信问卷
-      //       //  url: "/market/questionnaireTelecom/save",
-      //       url: "/market/" + baseUrl + "/save",
-      //       method: "post",
-      //       headers: {
-      //         "Content-Type": "application/json",
-      //       },
-      //       data: value,
-      //     }).then(() => {
-      //       this.$message({
-      //         type: "success",
-      //         message: "保存成功",
-      //       });
-      //       this.getCheck();
-      //     });
-      //   }
-      // } else {
-      //   this.$message.error("不在可编辑日期");
-      //   return false;
-      // }
-    },
-    cityStatus(data) {
-      let cityname = JSON.parse(
-        window.sessionStorage.getItem("userInfo")
-      ).cityName;
-      let citynames = cityname.substring(0, cityname.length - 3);
-      let datas = [];
-      for (let i = 3; i <= data.data.data.length - 1; i++) {
-        datas.push(data.data.data[i][0]);
+        this.$message.error("不在可编辑日期");
+        return false;
       }
-      let status = datas.every((item) => {
-        return item.v === citynames;
-      });
-      return status;
-    },
-    handleChargeList() {
-      this.$http({
-        url: "/market/techcentergj/queryLeaderList",
-        method: "post",
-        headers: {
-          "Content-Type": "application/json",
-        },
-        data: {},
-      }).then((response) => {
-        this.charge_list = response.data.map((element) => ({
-          label: `${element.ou} ${element.secLeaderName}`,
-          value: `${element.ou}-${element.secLeaderLogin},${element.secLeaderName}`,
-        }));
-      });
     },
+
+    // let time = new Date();
+    // let hover = time.getHours();
+    // let day = time.getDay();
+    // if (day === 4 || day === 5 || day === 6 || day == 7 || day === 1) {
+    //   if ((day === 4 && hover <= 15) || (day === 1 && hover >= 15)) {
+    //     this.$message.error("不在可编辑时间");
+    //     return false;
+    //   } else {
+    //     this.$http({
+    //       // 联通资费内容
+    //       // url: "/market/expensesUnicom/save",
+    //       //联通问卷
+    //       //  url: "/market/questionnaireUnicom/save",
+    //       //电信费用
+    //       // url: "/market/expensesTelecom/save",
+    //       //电信问卷
+    //       //  url: "/market/questionnaireTelecom/save",
+    //       url: "/market/" + baseUrl + "/save",
+    //       method: "post",
+    //       headers: {
+    //         "Content-Type": "application/json",
+    //       },
+    //       data: value,
+    //     }).then(() => {
+    //       this.$message({
+    //         type: "success",
+    //         message: "保存成功",
+    //       });
+    //       this.getCheck();
+    //     });
+    //   }
+    // } else {
+    //   this.$message.error("不在可编辑日期");
+    //   return false;
+    // }
+  },
+  handleChargeList() {
+    this.$http({
+      url: "/market/techcentergj/queryLeaderList",
+      method: "post",
+      headers: {
+        "Content-Type": "application/json",
+      },
+      data: {},
+    }).then((response) => {
+      this.charge_list = response.data.map((element) => ({
+        label: `${element.ou} ${element.secLeaderName}`,
+        value: `${element.ou}-${element.secLeaderLogin},${element.secLeaderName}`,
+      }));
+    });
   },
   mounted() {
+      let cityname = JSON.parse(
+      window.sessionStorage.getItem("userInfo")
+    ).cityName;
+    if (cityname) {
+      //地市公司权限
+      this.citystatus = true;
+    } else {
+      //省公司权限
+      this.saveStatus = true;
+    }
     // this.getSheet()
+    this.getCheck()
     this.getJurisdiction();
     this.handleInit();
     // this.handleChargeList();
@@ -1814,6 +1875,18 @@ export default {
 </script>
 
 <style lang="scss" scope>
+.title-tips {
+  color: red;
+  font-size: 24px;
+  /* margin-left: 30px; */
+  position: absolute;
+  top: 110px;
+  z-index: 20;
+  display: flex;
+  width: 75%;
+  flex-direction: row-reverse;
+  // left: calc(100% - 50rem);
+}
 .el-dialog {
   width: 100%;
   height: 100%;

+ 4 - 4
src/pages/main/competitors/index.vue

@@ -31,7 +31,7 @@ export default {
       showList: [],
       routerList: [
         { label: "地市", path: "/competitors", name: "competitors" },
-        { label: "省公司", path: "/company", name: "company" }
+        // { label: "省公司", path: "/company", name: "company" }
       ],
     };
   },
@@ -57,9 +57,9 @@ export default {
     },
   },
   mounted() {
-    // if(!JSON.parse(window.sessionStorage.getItem('userInfo')).cityName){
-    //  this.routerList.push({ label: "省公司", path: "/company", name: "company" })
-    // }
+    if(!JSON.parse(window.sessionStorage.getItem('userInfo')).cityName){
+     this.routerList.push({ label: "省公司", path: "/company", name: "company" })
+    }
     this.activeName = this.$route.path;
   },
   created() {