From 544f30e28a3d8ea41e5ea8c0add2ce77c1b6fb1a Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 07 五月 2024 17:48:31 +0800
Subject: [PATCH] 工种管理模块 编辑工种接口400的问题修改+增加如果启用不达标保底,则必须输入保底工资的逻辑

---
 src/views/systemSetting/workshopManage/index.vue |  298 ++++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 193 insertions(+), 105 deletions(-)

diff --git a/src/views/systemSetting/workshopManage/index.vue b/src/views/systemSetting/workshopManage/index.vue
index e029789..5d500cf 100644
--- a/src/views/systemSetting/workshopManage/index.vue
+++ b/src/views/systemSetting/workshopManage/index.vue
@@ -1,153 +1,221 @@
 <template>
   <div class="silkStandardSetting-container">
     <div class="filter-card">
-      <CommonSearch :show-add="false" :amount-view="false" placeholder="璇疯緭鍏ュ叧閿瘝" @searchClick="onFilterSearch">
+      <CommonSearch ref="searchRef" :show-add="false" :amount-view="false" placeholder="璇疯緭鍏ュ叧閿瘝"
+        @searchClick="onFilterSearch">
         <template slot="leftButton">
-          <el-button size="small" type="primary" @click="addBtnClick" >鏂板</el-button>
-          <!-- <el-button size="small" type="primary" @click="delBtnClick" >鍒犻櫎</el-button> -->
-          <el-button size="small" type="primary" @click="saveBtnClick" >淇濆瓨</el-button>
-          |
-          <!-- <el-button size="small" type="primary" @click="addBtnClick" >淇敼</el-button> -->
+          <el-button size="small" type="primary" @click="addBtnClick">鏂板</el-button>
           <el-button size="small" type="primary" @click="refreshClick">鍒锋柊</el-button>
           <el-button size="small" type="primary" @click="printClick">鎵撳嵃</el-button>
         </template>
       </CommonSearch>
     </div>
     <div class="body-card">
-      <!-- <div class="edit-save">
-        <div class="edit-save-icon" @click="editSaveClick">
-          <i :class="isEdit ? 'el-icon-unlock' : 'el-icon-lock'"></i>
-        </div>
-        <div class="edit-sace-label">{{ isEdit ? "閿佸畾淇濆瓨" : "鐣岄潰璁捐" }}</div>
-      </div> -->
-      <div>
-        <SilkTableList
-          :detail-enter="isEdit"
-          :silk-table-list="silkTableList"
-          @inputContent="inputContent"
-          @addProjectClick="addBtnClick"
-          @clearupProject="clearupProject"
-          @deleteClick="clearupProject"
-          @addColumnClick="addColumnClick"
-          @clearupColumn="clearupColumn"
-        >
-        </SilkTableList>
+      <div class="list-view">
+        <TableCommonView :table-list="tableList" @selTableCol="selTableCol" @handleShow="handleShow"
+          @tableRowClick="tableRowClick">
+          <template slot="tableButton">
+            <el-table-column label="鎿嶄綔" width="180">
+              <template slot-scope="scope">
+                <el-button @click.stop="handleClick(scope.row, '鏌ョ湅')" type="text" size="small">鏌ョ湅</el-button>
+                <el-button @click.stop="handleClick(scope.row, '淇敼')" type="text" size="small">淇敼</el-button>
+                <el-button @click.stop="handleClick(scope.row, '鍒犻櫎')" type="text" size="small">鍒犻櫎</el-button>
+
+              </template>
+            </el-table-column>
+          </template>
+        </TableCommonView>
+      </div>
+      <div class="btn-pager">
+        <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
       </div>
     </div>
+    <AddWorkshop ref="bomTypeDialog" @handleConfirmSave="handleConfirmSave" :workList="workList" title="娣诲姞鑺傜偣绫诲瀷" />
+    <AddDataDictionaries :editDiaConfig="editConfig" />
   </div>
 </template>
 
 <script>
-import SilkTableList from "@/views/systemSetting/workshopManage/components/silkTableList"
+import AddDataDictionaries from "@/views/systemSetting/workshopManage/components/addDialog.vue"
+import { getWorkshopManageList, deleteWorkshopManage } from "@/api/systemSetting/workshopManage"
+import TableCommonView from '@/components/makepager/TableCommonView.vue'
+import AddWorkshop from '@/views/systemSetting/workshopManage/components/addWorkshop.vue'
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
 export default {
   name: "workshopManage",
   props: {},
-  components: { SilkTableList },
-  mixins: [],
+  components: { TableCommonView, AddWorkshop, AddDataDictionaries },
+  mixins: [pageMixin],
   computed: {},
   data() {
     return {
-      isEdit: false,
-      silkTableList: {},
-      tableData: [],
+      tableList: {},
+      showCol: ["杞﹂棿", "缁勫埆", "寮�濮嬭溅鍙�", "缁撴潫杞﹀彿", "鍗婅溅鏍囧織", "澶囨敞"],
       tableColumn: [
-        { label: "杞﹂棿", prop: "projectName", projectName: true },
-        { label: "缁勫埆", prop: "start", inputFloat: true },
-        { label: "寮�濮嬭溅鍙�", prop: "end", inputFloat: true },
-        { label: "缁撴潫杞﹀彿", prop: "price1", inputFloat: true },
-        { label: "鍗婅溅鏍囧織", prop: "projectName", projectName: true },
-        { label: "澶囨敞", prop: "price2", inputFloat: true },
+        // { label: "杞﹂棿", prop: "workshopNumber",iconRight:"el-icon-setting"},
+        { label: "杞﹂棿", prop: "workshopName", },
+        { label: "缁勫埆", prop: "groupNumber", },
+        { label: "寮�濮嬭溅鍙�", prop: "startCarNumber" },
+        { label: "缁撴潫杞﹀彿", prop: "endCarNumber" },
+        { label: "鍗婅溅鏍囧織", prop: "carFlag", isCallMethod: true, getCallMethod: this.getStatusCarFlag },
+        { label: "澶囨敞", prop: "notes", },
       ],
-      columnNum: 0,
-      dataObj: {
-        projectName: "",
-        start: 0,
-        end: 0,
-        price1: 0,
-        price2: 0,
-        price3: 0
-      }
+      // 绫诲瀷
+      workList: [],
+      getDataParams: {
+        keyWord: '',
+      },
+      editConfig: {
+        visible: false,
+        infomitton: {
+          TabsIndex: 0,
+          workshopId: null,
+        }
+      },
     }
   },
   created() {
-    this.setTableForm()
+    this.setTable()
+    this.getData()
   },
   methods: {
-    setTableForm() {
-      this.silkTableList = {
-        tableData: this.tableData,
-        isReturn: false,
-        tableColumn: this.tableColumn
+    setTable() {
+      // top 鏄庣粏鍗曞垪琛�
+      this.tableList = {
+        selectIndex: true,
+        tableInfomation: [],
+        allcol: [],
+        showcol: this.showCol,
+        tableColumn: this.setColumnVisible(this.showCol, this.tableColumn)
       }
+      this.setTableList(this.tableList)
+    },
+    setColumnVisible(showCol, tableColumn) {
+      return tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
+    setTableList(tableList) {
+      tableList.allcol = tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
+      this.searchOptions = []
+      for (let i = 0; i < tableList.tableColumn.length; i++) {
+        const label = tableList.tableColumn[i].label
+        const value = tableList.tableColumn[i].prop
+        this.searchOptions.push({ value: value, label: label })
+      }
+    },
+    selTableCol(val) {
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val, this.tableColumn)
+    },
+    // 琛ㄦ牸琛岀偣鍑�
+    tableRowClick(row) {
+      console.log(row, "row")
     },
     // 鎼滅储
     onFilterSearch(searchText) {
-      console.log(searchText)
+      this.getDataParams.keyWord = searchText,
+      this.pagerOptions.currPage = 1;
+        this.getData()
     },
     // 鏂板
     addBtnClick() {
-      if(this.isEdit){
-        this.$message.warning("璇峰厛淇濆瓨褰撳墠缂栬緫")
-      }else{
-        this.isEdit = true
-        // array.splice(index, 0, item)
-        this.tableData.splice(0,0,{
-          projectName: "",
-          start: 0,
-          end: 0,
-          price1: 0,
-          price2: 0,
-          price3: 0,
-          isAdd:true,
-        })
-      }
-      
-      
+      this.editConfig.infomitton = {}
+      this.editConfig.dialogTitle = "鏂板"
+      this.editConfig.visible = true
     },
     // 淇濆瓨
-    saveBtnClick(){
-      this.tableData.forEach((item)=>{
-        item.isAdd=false
-      })
-      this.isEdit = false
+    saveBtnClick() {
+
     },
     // 鍒锋柊
-    refreshClick() {},
+    refreshClick() {
+      this.getDataParams.keyWord = ""
+      this.pagerOptions.currPage = 1
+      this.pagerOptions.pageSize = 15
+      this.$refs.searchRef.searchInput = ""
+      this.getData()
+    },
     // 鎵撳嵃
-    printClick() {},
-    // 鍒楄〃杈撳叆鍥炶皟
-    inputContent(val, prop, row) {
-      console.log(val, prop, row,"鍒楄〃鎵撳嵃鍥炶皟")
-    },
+    printClick() { },
     // 鍒犻櫎
-    clearupProject(data, index) {
+    delBtnClick() { },
+    // 缁勫埆
+    handleShow() {
+      this.$refs.bomTypeDialog.editDialogVisible = true;
+    },
+    handleGetBomKindDictList() {
+      // postGetBomKindDictList().then((res) => {
+      //   this.workList = res.data;
+      // });
+    },
+    handleConfirmSave(data) {
       console.log(data)
-      this.tableData.splice(index, 1)
+      // postSaveBomKindDict({ data: data }).then((res) => {
+      //   if (res.code == 200) {
+      //     this.$message({
+      //       message: "鎿嶄綔鎴愬姛锛�",
+      //       type: "success",
+      //     });
+      //     this.$refs.bomTypeDialog.editDialogVisible = false;
+      //     this.handleGetBomKindDictList();
+      //   }
+      // });
     },
-    // 淇濆瓨缂栬緫鎸夐挳鍒囨崲
-    editSaveClick() {
-      this.isEdit = !this.isEdit
-    },
-    // 娣诲姞鍒�
-    addColumnClick() {
-      let propStr = "trends" + this.columnNum
-      this.tableColumn.splice(2, 0, { label: "", prop: propStr, inputFloat: true, addColumn: true })
-      this.$set(this.dataObj, propStr, 0)
-      console.log(this.tableColumn)
-      this.silkTableList.tableColumn = this.tableColumn
-      this.columnNum += 1
-    },
-    // 鍒犻櫎鍒�
-    clearupColumn(prop) {
-      let currentIndex = 0
-      this.tableColumn.map((item, index) => {
-        if (item.prop == prop) {
-          currentIndex = index
-        }
+    // 杞﹂棿鍒楄〃
+    async getData() {
+      await getWorkshopManageList({
+        keyWord: this.getDataParams.keyWord,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      }).then((res) => {
+        this.tableList.tableInfomation = res.data
+        this.pagerOptions.totalCount = res.total
       })
-      this.tableColumn.splice(currentIndex, 1)
-      this.silkTableList.tableColumn = this.tableColumn
-      this.$delete(this.dataObj, prop)
+    },
+    getStatusCarFlag(val) {
+      if (val) {
+        return val == 1 ? '宸﹀崐杞�' : val == 2 ? '鍙冲崐杞�' : val == 3 ? '鍏ㄨ溅缁撴潫' : '--'
+      } else {
+        return "--";
+      }
+    },
+    handleClick(row, type) {
+      if (type !== "鍒犻櫎") {
+        this.editConfig.infomitton = {
+          ...row,
+          workshop:{
+            number:row.workshopNumber,
+            name:row.workshopName
+          }
+        }
+        this.editConfig.infomitton.workshopId = row.ID
+        this.editConfig.infomitton.workshopNumber = Number(this.editConfig.infomitton.workshopNumber)
+        this.editConfig.dialogTitle = type
+        this.editConfig.visible = true
+      } else if (type === "鍒犻櫎") {
+        this.$confirm(`纭鍒犻櫎鍚�?`, '鎻愮ず', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          deleteWorkshopManage({ id: row.ID }).then((res) => {
+            if (res && res.code === 200) {
+              this.$message({
+                type: 'success',
+                message: '鍒犻櫎鎴愬姛!'
+              });
+              this.pagerOptions.currPage = 1;
+              this.getData()
+            }
+          })
+        }).catch(() => {
+          console.log("鍙栨秷鍒犻櫎")
+        });
+      }
     }
   }
 }
@@ -157,6 +225,7 @@
 <style lang="scss" scoped>
 .silkStandardSetting-container {
   height: 100%;
+
   .filter-card {
     margin: 20px 30px;
     height: 80px;
@@ -166,21 +235,25 @@
     border-radius: 4px;
     background-color: #fff;
   }
+
   .body-card {
     margin: 0 30px;
     background-color: #fff;
     padding: 10px 15px;
     height: calc(100% - 180px);
     border-radius: 4px;
+
     .edit-save {
       display: flex;
       align-items: center;
       margin-bottom: 10px;
+
       .edit-save-icon {
         font-size: 24px;
         color: #5582f3;
         cursor: pointer;
       }
+
       .edit-sace-label {
         margin-left: 10px;
         font-size: 14px;
@@ -189,4 +262,19 @@
     }
   }
 }
+
+.list-view {
+  height: calc(100% - 60px);
+  overflow: hidden;
+}
+
+.btn-pager {
+  display: flex;
+  margin-top: 10px;
+
+  .page {
+    margin-left: auto;
+  }
+}
 </style>
+

--
Gitblit v1.8.0