From f13d1d01c3c3cbb075e63ae02be54bbb023c13d0 Mon Sep 17 00:00:00 2001 From: charles <981744753@qq.com> Date: 星期三, 24 七月 2024 16:50:22 +0800 Subject: [PATCH] feat:薪资薪酬核算模块 --- src/views/systemSetting/workshopManage/index.vue | 384 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 276 insertions(+), 108 deletions(-) diff --git a/src/views/systemSetting/workshopManage/index.vue b/src/views/systemSetting/workshopManage/index.vue index e029789..5869863 100644 --- a/src/views/systemSetting/workshopManage/index.vue +++ b/src/views/systemSetting/workshopManage/index.vue @@ -1,153 +1,278 @@ <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" + :selectClassRow="selectRow" + @selTableCol="selTableCol" + @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> + <div class="body-card1"> + <div class="bottom-tabs"> + <div + class="tab-pane" + @click="getTab(0)" + :style="{ + background: TabsIndex == 0 ? '#2a78fb' : '#F1F3F8', + color: TabsIndex == 0 ? '#fff' : '#666' + }" + > + 缁勫埆鍒楄〃 + </div> + <!--<div + class="tab-pane" + @click="getTab(1)" + :style="{background: TabsIndex == 1 ? '#2a78fb' : '#F1F3F8',color: TabsIndex == 1 ? '#fff' : '#666'}" + > + 鍗曟嵁杩芥函 + </div>--> + </div> + <div class="list-view"> + <TableCommonView :table-list="bottomTableList" + @selTableCol="selTableCol"> + <template slot="tableButton"> + </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" />--> + <WorkshopDialog ref="workshopDialogRef" :edit-config="editConfig" @refresh="refresh"></WorkshopDialog> </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" +import WorkshopDialog from '@/views/systemSetting/workshopManage/components/workshopDialog.vue' export default { name: "workshopManage", props: {}, - components: { SilkTableList }, - mixins: [], - computed: {}, + components: { TableCommonView, AddWorkshop, AddDataDictionaries,WorkshopDialog }, + mixins: [pageMixin], + computed: { + + }, data() { return { - isEdit: false, - silkTableList: {}, - tableData: [], + selectRow:{}, + TabsIndex:0, + bottomTableList:{}, + 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 + refresh(){ + this.getData(); + }, + setTable() { + const obj={ + selectIndex: true, + tableInfomation: [], + allcol: [], + showcol: this.showCol, + tableColumn: this.setColumnVisible(this.showCol, this.tableColumn) + }; + // top 鏄庣粏鍗曞垪琛� + this.tableList = {...obj}; + this.bottomTableList={...obj}; + this.setTableList(this.tableList); + this.setTableList(this.bottomTableList); + }, + 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) { + this.selectRow={...row}; + this.bottomTableList.tableInfomation=row.details||[]; }, // 鎼滅储 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 = { + carFlag:1, + workshop:{} + }; + this.editConfig.OperationType=1; + this.editConfig.title = "鏂板"; + 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) { - console.log(data) - this.tableData.splice(index, 1) + delBtnClick() { }, + // 缁勫埆 + /* handleShow() { + this.$refs.bomTypeDialog.editDialogVisible = true; + },*/ + handleGetBomKindDictList() { + // postGetBomKindDictList().then((res) => { + // this.workList = res.data; + // }); }, - // 淇濆瓨缂栬緫鎸夐挳鍒囨崲 - editSaveClick() { - this.isEdit = !this.isEdit + handleConfirmSave(data) { + console.log(data); }, - // 娣诲姞鍒� - 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, + type:1 + }).then((res) => { + this.tableList.tableInfomation = res.data + this.pagerOptions.totalCount = res.total + if(res.data.length>0){ + this.bottomTableList.tableInfomation=res.data[0].details||[]; } - }) - this.tableColumn.splice(currentIndex, 1) - this.silkTableList.tableColumn = this.tableColumn - this.$delete(this.dataObj, prop) + }); + }, + getStatusCarFlag(val) { + if(val===0){ + return '鍏ㄨ溅' + }else{ + return '鍗婅溅' + } + }, + handleClick(row, type) { + if (type !== "鍒犻櫎") { + this.editConfig.infomitton = { + ...row, + workshop:{ + workshopNumber:row.workshopNumber, + workshopName:row.workshopName + } + }; + this.editConfig.infomitton.workshopId = row.ID + this.editConfig.infomitton.workshopNumber = Number(this.editConfig.infomitton.workshopNumber) + this.editConfig.title = type; + if(type==='淇敼'){ + this.editConfig.OperationType=2 + }else{ + this.editConfig.OperationType=3 + } + this.editConfig.visible = true; + (row.details||[]).forEach((item,index)=>{ + if(index<row.details.length-1){ + item.noEdit=true; + }else{ + item.noEdit=false; + } + }); + this.$refs['workshopDialogRef'].initBottomTableList(row.details||[]); + } 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 +282,7 @@ <style lang="scss" scoped> .silkStandardSetting-container { height: 100%; + .filter-card { margin: 20px 30px; height: 80px; @@ -166,11 +292,10 @@ border-radius: 4px; background-color: #fff; } - .body-card { + .body-card,.body-card1 { margin: 0 30px; background-color: #fff; padding: 10px 15px; - height: calc(100% - 180px); border-radius: 4px; .edit-save { display: flex; @@ -181,6 +306,7 @@ color: #5582f3; cursor: pointer; } + .edit-sace-label { margin-left: 10px; font-size: 14px; @@ -188,5 +314,47 @@ } } } + .body-card{ + height: calc(100% - 440px); + } + .body-card1{ + margin-top: -50px; + height: calc(100% - 500px); + .bottom-tabs { + height: 40px; + line-height: 40px; + background: white; + display: flex; + .tab-pane { + width: 100px; + margin-right: 20px; + font-size: 14px !important; + text-align: center; + cursor: pointer; + background: #2a78fb; + border-top-left-radius: 20px; + border-top-right-radius: 20px; + } + } + padding-bottom: 100px; + .btn-pager{ + position: relative; + top: -5px; + } + } +} + +.list-view { + height: calc(100% - 60px); + overflow: hidden; +} + +.btn-pager { + display: flex; + margin-top: 10px; + .page { + margin-left: auto; + } } </style> + -- Gitblit v1.8.0