daiqisheng 3 lat temu
rodzic
commit
98005767ab
1 zmienionych plików z 147 dodań i 87 usunięć
  1. 147 87
      src/pages/main/performance/components/sheet.vue

+ 147 - 87
src/pages/main/performance/components/sheet.vue

@@ -2,7 +2,7 @@
  * @Author       : yuanrunwei
  * @Date         : 2021-12-04 14:23:58
  * @LastEditors: Please set LastEditors
- * @LastEditTime: 2022-02-10 15:05:23
+ * @LastEditTime: 2022-02-10 17:23:06
  * @FilePath     : \spfm-market-front\src\pages\main\performance\components\sheet.vue
 -->
 
@@ -63,7 +63,10 @@
       @cancel="handleVisible"
     >
       <el-form ref="form" :model="form" label-width="80px">
-        <el-radio-group v-model="form.permission_type" :disabled="type!=='edit'">
+        <el-radio-group
+          v-model="form.permission_type"
+          :disabled="type !== 'edit'"
+        >
           <el-form-item>
             <el-radio :label="0"><span>无特殊权限</span></el-radio>
             <div>
@@ -72,7 +75,7 @@
                 v-model="form.person"
                 multiple
                 placeholder="请选择负责人"
-                :disabled="type!=='edit'"
+                :disabled="type !== 'edit'"
               >
                 <el-option
                   v-for="({ label, value }, index) in charge_list"
@@ -102,7 +105,7 @@
                   placeholder="请选择负责人"
                   v-model="item.person"
                   filterable
-                  :disabled="type!=='edit'"
+                  :disabled="type !== 'edit'"
                 >
                   <el-option
                     v-for="({ label, value }, index) in charge_list"
@@ -113,24 +116,42 @@
                 </el-select>
                 <div class="form-select">
                   <span class="form-content">可编辑行:从</span>
-                  <el-input v-model="item.row_start" :disabled="type!=='edit'" />
+                  <el-input
+                    v-model="item.row_start"
+                    :disabled="type !== 'edit'"
+                  />
                   <span class="form-content">到</span>
-                  <el-input v-model="item.row_end" :disabled="type!=='edit'" />
+                  <el-input
+                    v-model="item.row_end"
+                    :disabled="type !== 'edit'"
+                  />
                 </div>
                 <div class="form-select">
                   <span class="form-content">可编辑列:从</span>
-                  <el-input :disabled="type!=='edit'" v-model="item.col_start" />
+                  <el-input
+                    :disabled="type !== 'edit'"
+                    v-model="item.col_start"
+                    @input="handleInput"
+                  />
                   <span class="form-content">到</span>
-                  <el-input :disabled="type!=='edit'" v-model="item.col_end" />
+                  <el-input
+                    :disabled="type !== 'edit'"
+                    v-model="item.col_end"
+                    @input="handleInput"
+                  />
                 </div>
               </div>
             </el-form-item>
-            <div >
-              <el-button @click.prevent="handleCharge('add')" :disabled="type!=='edit'">添加</el-button>
+            <div>
+              <el-button
+                @click.prevent="handleCharge('add')"
+                :disabled="type !== 'edit'"
+                >添加</el-button
+              >
               <el-button
                 v-if="form.charge.length - 1"
                 @click.prevent="handleCharge('delete')"
-                :disabled="type!=='edit'"
+                :disabled="type !== 'edit'"
                 >删除</el-button
               >
             </div>
@@ -230,7 +251,6 @@ export default {
         ],
         array: [],
         type: null,
-
         permission_type: null,
         col_start: "",
         col_end: "",
@@ -257,6 +277,7 @@ export default {
       },
       // 可提交标志
       addFlag: "0",
+      rowList: [],
       isDisable: true,
       issued_id: null,
       template_id: null,
@@ -290,11 +311,12 @@ export default {
     //     console.log(e,'e');
     // },
     handleAllow({ row, column }) {
-      let public_permisson = (!this.form.permission_type && this.type === "edit")
-      let editable =  this.row_list.includes(row) && this.column_list.includes(column)
-      let isId = !this.id 
-      let totalBoolean = (public_permisson || editable) && !isId
-      return  totalBoolean
+      let public_permisson = !this.form.permission_type && this.type === "edit";
+      let editable =
+        this.row_list.includes(row) && this.column_list.includes(column);
+      let isId = !this.id;
+      let totalBoolean = (public_permisson || editable) && !isId;
+      return totalBoolean;
     },
     async handleQuery() {
       let url = "";
@@ -444,6 +466,9 @@ export default {
               that.$message.error("您没有编辑权限");
             }
           },
+          cellUpdated: function (row, column) {
+            that.rowList.push(row);
+          },
           cellUpdateBefore: function (row, column) {
             if (!that.handleAllow({ row, column })) {
               return false;
@@ -451,6 +476,7 @@ export default {
           },
           cellRenderAfter: function (cell, position) {
             const { r: row, c: column } = position;
+            console.log();
             if (cell) {
               if (!that.handleAllow({ row, column })) {
                 cell.bg = "#d5d5d5";
@@ -590,41 +616,55 @@ export default {
       } else {
         // 职位
         let duty = JSON.parse(sessionStorage.userInfo).duty;
-        let { permission_type, charge } = this.form;
-        let 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,
-          };
-        }
+        // let { permission_type, charge } = this.form;
+        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 {
@@ -733,6 +773,12 @@ export default {
       console.log(this.form, "aada");
       this.visible = !this.visible;
     },
+    handleInput(value) {
+      let reg = /^[0-9]*$/;
+      if (!reg.test(value)) {
+        this.$message.error("请输入纯数字");
+      }
+    },
     async handleApprove(type) {
       if (type) {
         if (this.approveForm.type) {
@@ -747,41 +793,55 @@ 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;
-        let 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,
-          };
-        }
+        // let { permission_type, charge } = this.form;
+        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, "ada");
+        // 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",