From bed893abbebac6a1e43478b693e1f862a6b6c8fe Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 09 七月 2022 17:25:20 +0800
Subject: [PATCH] 1.生产开报工实现部分2.修改bug

---
 src/views/jcsz/yhqd.vue |  273 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 249 insertions(+), 24 deletions(-)

diff --git a/src/views/jcsz/yhqd.vue b/src/views/jcsz/yhqd.vue
index 4af174c..3f5badf 100644
--- a/src/views/jcsz/yhqd.vue
+++ b/src/views/jcsz/yhqd.vue
@@ -57,6 +57,7 @@
       <el-divider />
       <div style="margin-left: 10px;display: flex">
         <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+        <el-button type="primary" icon="el-icon-menu" @click="workingTramClick">鐢熶骇鐝粍</el-button>
         <el-button type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>
       </div>
       <el-divider />
@@ -102,8 +103,13 @@
             sortable="custom"
           />
           <el-table-column
+            prop="group_name"
+            label="鐢熶骇鐝粍"
+            sortable="custom"
+          />
+          <el-table-column
             prop="wagetype"
-            label="鎵�灞炵粍缁�"
+            label="宸ヨ祫绫诲瀷"
             sortable="custom"
           >
             <template slot-scope="{row}">
@@ -140,7 +146,6 @@
             prop="lm_date"
             label="鍒涘缓鏃堕棿"
             width="200"
-            show-overflow-tooltip
             sortable="custom"
           />
           <el-table-column
@@ -156,7 +161,7 @@
           >
             <template slot-scope="{row}">
               <div class="operationClass">
-                <el-button type="text" @click="edit('edit',row)">淇敼</el-button>
+                <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>
                 <el-button type="text" @click="del(row.id)">鍒犻櫎</el-button>
               </div>
             </template>
@@ -176,31 +181,32 @@
       />
     </div>
 
-    <!--    鐢ㄦ埛娓呭崟鏂板銆佷慨鏀�-->
+    <!--    鐢ㄦ埛娓呭崟鏂板銆佺紪杈�-->
     <el-dialog
-      :title="operation==='add'?'鏂板':'淇敼'"
+      :title="operation==='add'?'鏂板':'缂栬緫'"
       :visible.sync="dialogVisible"
-      width="50%"
+      width="800px"
+      :close-on-click-modal="false"
       top="15vh"
       @closed="handleClose"
       @close="handleClose"
     >
       <el-form ref="dialogForm" :rules="dialogFormRules" inline :model="dialogForm" label-width="80px">
         <el-form-item label="鐢ㄦ埛缂栫爜" prop="UserCode">
-          <el-input v-model="dialogForm.UserCode" :disabled="operation!=='add'" style="width: 220px" />
+          <el-input v-model="dialogForm.UserCode" :disabled="operation!=='add'" style="width: 200px" />
         </el-form-item>
         <el-form-item label="鐢ㄦ埛鍚嶇О" prop="UserName">
-          <el-input v-model="dialogForm.UserName" style="width: 220px" />
+          <el-input v-model="dialogForm.UserName" style="width: 200px" />
         </el-form-item>
         <el-form-item label="鐢ㄦ埛瀵嗙爜" prop="Password">
-          <el-input v-model="dialogForm.Password" style="width: 220px" />
+          <el-input v-model="dialogForm.Password" style="width: 200px" />
         </el-form-item>
         <el-form-item label="鍦ㄨ亴鐘舵��" prop="Enable">
           <el-select
             v-model="dialogForm.Enable"
             :popper-append-to-body="false"
             filterable
-            style="width: 220px"
+            style="width: 200px"
             placeholder="璇烽�夋嫨"
           >
             <el-option
@@ -219,7 +225,7 @@
             popper-class="elCascader"
             :options="StuOrgArr"
             :props="defaultProps"
-            style="width: 220px;"
+            style="width: 200px;"
             @change="dialogCascaderChange"
           />
         </el-form-item>
@@ -228,7 +234,7 @@
             v-model="dialogForm.wagetype"
             :popper-append-to-body="false"
             filterable
-            style="width: 220px"
+            style="width: 200px"
             placeholder="璇烽�夋嫨"
           >
             <el-option
@@ -241,10 +247,10 @@
         </el-form-item>
 
         <el-form-item label="鑱旂郴鏂瑰紡">
-          <el-input v-model="dialogForm.Mobile" style="width: 220px" />
+          <el-input v-model="dialogForm.Mobile" style="width: 200px" />
         </el-form-item>
         <el-form-item label="鐢靛瓙閭">
-          <el-input v-model="dialogForm.Email" style="width: 220px" />
+          <el-input v-model="dialogForm.Email" style="width: 200px" />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -259,8 +265,10 @@
     <el-dialog
       title="鍏宠仈瑙掕壊"
       :visible.sync="dialogVisibleRoles"
-      width="50%"
+      width="800px"
       top="15vh"
+      :fullscreen="isFullscreen"
+      :close-on-click-modal="false"
       class="dialogVisibleRoles"
       @closed="handleCloseRoles"
       @close="handleCloseRoles"
@@ -307,6 +315,7 @@
           show-checkbox
           node-key="code"
           default-expand-all
+          style="height: 300px"
           :props="defaultPropsOfRoleTree"
           @check="checkBoxClick"
         />
@@ -320,6 +329,99 @@
         </div>
       </span>
     </el-dialog>
+
+    <!--    浜х粍鎸夐挳瀵硅瘽妗�-->
+    <el-dialog
+      title="鐢熶骇鐝粍"
+      :visible.sync="workingDialogVisible"
+      width="800px"
+      top="15vh"
+      :close-on-click-modal="false"
+      class="workingDialogVisible"
+      @close="handleCloseWorking"
+    >
+      <div style="margin-bottom: 20px;display: flex">
+        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="addWorking">鏂板</el-button>
+        <!--        <el-button type="primary" icon="el-icon-delete" @click="delSetting">鍒犻櫎</el-button>-->
+      </div>
+      <el-table
+        :data="workingTableData"
+        border
+        height="300"
+        highlight-current-row
+        :header-cell-style="this.$headerCellStyle"
+        :cell-style="this.$cellStyle"
+        @sort-change="sortChangeOfWorking"
+      >
+        <!--        :style="{width: 100+'%',height:tableHeight-300+'px'}"-->
+
+        <!--        <el-table-column-->
+        <!--          type="selection"-->
+        <!--          width="50"-->
+        <!--        />-->
+        <el-table-column
+          width="50"
+          label="搴忓彿"
+          prop="RowNum"
+        />
+        <el-table-column
+          prop="group_code"
+          label="鐝粍缂栫爜"
+          sortable="custom"
+        >
+          <template slot-scope="{row}">
+            <el-input v-if="row.isVisible===1" v-model="row.group_code" placeholder="璇疯緭鍏�" />
+            <div v-else> {{ row.group_code }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="group_name"
+          label="鐝粍鍚嶇О"
+          sortable="custom"
+        >
+          <template slot-scope="{row}">
+            <el-input v-if="row.isVisible===1" v-model="row.group_name" placeholder="璇疯緭鍏�" />
+            <div v-else> {{ row.group_name }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="鐝粍鎻忚堪"
+          sortable="custom"
+        >
+          <template slot-scope="{row}">
+            <el-input v-if="row.isVisible===1" v-model="row.description" placeholder="璇疯緭鍏�" />
+            <div v-else> {{ row.description }}</div>
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔">
+          <template slot-scope="{row}">
+            <div class="operationClass">
+              <el-button v-if="row.isVisible===0" type="text" @click="delWorking(row)">鍒犻櫎</el-button>
+              <el-button v-if="row.isVisible===1" type="text" @click="saveWorking(row)">淇濆瓨</el-button>
+              <el-button v-if="row.isVisible===1" type="text" @click="cancelWorking(row)">鍙栨秷</el-button>
+            </div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <!--鍒嗛〉-->
+      <pagination
+        v-show="workingTableDataLength>0"
+        :total="workingTableDataLength"
+        :page.sync="formWorking.page"
+        :limit.sync="formWorking.rows"
+        align="right"
+        layout="prev, pager, next,sizes"
+        popper-class="select_bottom"
+        @pagination="getUserGroupSearch"
+      />
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button @click="WorkingDialogVisibleCancel">杩斿洖</el-button>
+          <!--          <el-button type="primary" @click="settingDialogVisibleConfirm">纭� 瀹�</el-button>-->
+        </div>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -327,7 +429,14 @@
 import Pagination from '@/components/Pagination'
 import {
   AddUpdateUser,
-  DeleteUser, SaveUserAssoctRole, UserAssociationRole,
+  DeleteUser,
+  RoleTypeAdd,
+  RoleTypeDelete,
+  SaveUserAssoctRole,
+  UserAssociationRole,
+  UserGroupAdd,
+  UserGroupDelete,
+  UserGroupSearch,
   UserOrganization,
   UserSearch
 } from '@/api/jcsz'
@@ -336,7 +445,7 @@
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
 export default {
-  name: 'Zzjg',
+  name: 'YYQD',
   components: {
     Pagination
   },
@@ -353,6 +462,7 @@
       }
     }
     return {
+      isFullscreen: false,
       mainHeight: 0,
       tableHeight: 0,
       form: {
@@ -432,8 +542,16 @@
         value: 'code',
         label: 'name',
         children: 'children'
+      },
+      workingDialogVisible: false,
+      workingTableData: [],
+      workingTableDataLength: 0,
+      formWorking: {
+        rows: 10,
+        page: 1,
+        prop: 'group_code',
+        order: 'desc'
       }
-
     }
   },
   created() {
@@ -585,9 +703,15 @@
     },
     // 鑾峰彇椤甸潰楂樺害
     getHeight() {
+      console.log(window.innerHeight)
+      console.log(window.innerWidth)
       this.$nextTick(() => {
         this.mainHeight = window.innerHeight - 250
         this.tableHeight = this.mainHeight - 100
+        // this.isFullscreen = window.innerHeight < 800
+        if (window.innerHeight < 800) {
+          this.tableHeight = this.tableHeight - 50
+        }
       })
     },
     // 鍏宠仈瑙掕壊鐐瑰嚮浜嬩欢
@@ -744,12 +868,12 @@
             this.dialogFormRoles.roleTreeSelectedArr.forEach((it, ind) => {
               if (it.Code === checkedFatherCode) {
                 console.log(it.Code, 9)
-                console.log(this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1), 7)
+                this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1)
               }
             })
             this.dialogFormRoles.rolesArrSelectedArr.forEach((i, i1) => {
               if (i === checkedFatherCode) {
-                console.log(this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1), 8)
+                this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1)
               }
             })
           }
@@ -784,7 +908,7 @@
         } else { // 褰撶埗绫荤敱鍗婂彾鍙樹负鍏ㄥ彾鏃�
           this.dialogFormRoles.roleTreeSelectedArr.forEach((i1, ind) => {
             if (i1.Code === checkedFatherCode) { // i1娌℃壘瀵�
-              console.log(i1, this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1), 8)
+              this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1)
               temp.forEach(it => {
                 this.dialogFormRoles.roleTreeSelectedArr.push({
                   Code: it.code,
@@ -847,12 +971,12 @@
             console.log(this.dialogFormRoles.rolesArrSelectedArr, 78)
             this.dialogFormRoles.rolesArrSelectedArr.forEach((i, i1) => {
               if (i === it.code) {
-                console.log(this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1), 6664)
+                this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1)
               }
             })
             this.dialogFormRoles.roleTreeSelectedArr.forEach((i, i1) => {
               if (i.Code === it.code) {
-                console.log(i1, this.dialogFormRoles.roleTreeSelectedArr.splice(i1, 1), 6665)
+                this.dialogFormRoles.roleTreeSelectedArr.splice(i1, 1)
               }
             })
           }
@@ -869,8 +993,105 @@
       // })
       console.log(this.dialogFormRoles.rolesArrSelectedArr, 6666)
       console.log(this.dialogFormRoles.roleTreeSelectedArr, 6777)
-    }
+    },
 
+    /*
+      鐢熶骇鐝粍妯″潡
+   */
+    // 鐢熶骇鐝粍鎸夐挳鐐瑰嚮
+    workingTramClick() {
+      this.workingDialogVisible = true
+      this.getUserGroupSearch()
+    },
+    // 鐢熶骇鐝粍瀵硅瘽妗嗗叧闂簨浠�
+    handleCloseWorking() {
+      this.workingTableData.forEach((item, index) => {
+        if (item.isVisible === 1) {
+          this.workingTableData.splice(index, 1)
+        }
+      })
+      // this.getUserGroupSearch()
+    },
+    // 鐢熶骇鐝粍鎺掑簭
+    sortChangeOfWorking({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.form.order = order
+      this.form.prop = prop
+      this.getUserGroupSearch()
+    },
+    // 鑾峰彇鐢熶骇鐝粍鍒楄〃
+    async  getUserGroupSearch() {
+      const res = await UserGroupSearch(this.formWorking)
+      this.workingTableData = res.data
+      this.workingTableDataLength = res.count
+      this.workingTableData.forEach(item => {
+        item.isVisible = 0
+      })
+    },
+    // 鏂板
+    addWorking() {
+      let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+      number = number === 0 ? (10 + Math.random()) : number
+      const data = { group_code: '', group_name: '', description: '', isVisible: 1, number: number }
+      this.workingTableData.unshift(data)
+    },
+    // 鍒犻櫎
+    delWorking(row) {
+      this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        UserGroupDelete({ UserGrupCode: row.group_code }).then(res => {
+          if (res.code === '200') {
+            this.$message.success('鍒犻櫎鎴愬姛!')
+            this.getUserGroupSearch()
+          }
+        })
+      }).catch(() => {
+        this.$message.info('宸插彇娑堝垹闄�')
+      })
+    },
+    // 淇濆瓨
+    async  saveWorking(row) {
+      if (row.group_code.trim().length < 1) {
+        return this.$message.info('鐝粍缂栫爜涓嶈兘涓虹┖锛�')
+      }
+      if (row.group_name.trim().length < 1) {
+        return this.$message.info('鐝粍鍚嶇О涓嶈兘涓虹┖锛�')
+      }
+      if (row.description.trim().length < 1) {
+        return this.$message.info('鐝粍鎻忚堪涓嶈兘涓虹┖锛�')
+      }
+      const data = {
+        code: row.group_code,
+        name: row.group_name,
+        flag: row.description
+      }
+      const res = await UserGroupAdd([data])
+      if (res.code === '200') {
+        this.$message.success('淇濆瓨鎴愬姛锛�')
+        await this.getUserGroupSearch()
+      }
+    },
+    // 鍙栨秷
+    cancelWorking(row) {
+      this.workingTableData.forEach((item, index) => {
+        if (item.isVisible === 1 && item.number === row.number) {
+          this.workingTableData.splice(index, 1)
+        }
+      })
+    },
+    // 鐢熶骇鐝粍杩斿洖鎸夐挳
+    WorkingDialogVisibleCancel() {
+      this.workingDialogVisible = false
+    }
   }
 }
 </script>
@@ -928,6 +1149,10 @@
   padding: 20px 100px !important;
 }
 
+.workingDialogVisible ::v-deep .el-dialog__body{
+  padding: 20px 20px !important;
+}
+
 ::v-deep .el-radio__input.is-checked .el-radio__inner {
   background-color: $main_color;
   border-color: $main_color;

--
Gitblit v1.9.3