From 3f24fbc89959ec4aa9f3308e1af453e43d504ac5 Mon Sep 17 00:00:00 2001 From: charles <981744753@qq.com> Date: 星期三, 10 七月 2024 20:04:16 +0800 Subject: [PATCH] feat:完成车间管理部分的重构 --- src/views/systemSetting/workshopManage/index.vue | 357 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 348 insertions(+), 9 deletions(-) diff --git a/src/views/systemSetting/workshopManage/index.vue b/src/views/systemSetting/workshopManage/index.vue index 2cde4d9..5869863 100644 --- a/src/views/systemSetting/workshopManage/index.vue +++ b/src/views/systemSetting/workshopManage/index.vue @@ -1,21 +1,360 @@ <template> - <div class="container"></div> + <div class="silkStandardSetting-container"> + <div class="filter-card"> + <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="refreshClick">鍒锋柊</el-button> + <el-button size="small" type="primary" @click="printClick">鎵撳嵃</el-button> + </template> + </CommonSearch> + </div> + <div class="body-card"> + <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 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: {}, - mixins: [], - computed: {}, - data() { - return {} + components: { TableCommonView, AddWorkshop, AddDataDictionaries,WorkshopDialog }, + mixins: [pageMixin], + computed: { + }, - created() {}, - methods: {} + data() { + return { + selectRow:{}, + TabsIndex:0, + bottomTableList:{}, + tableList: {}, + showCol: ["杞﹂棿", "缁勫埆", "寮�濮嬭溅鍙�", "缁撴潫杞﹀彿", "鏍囧織绫诲瀷", "澶囨敞"], + tableColumn: [ + // { 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", }, + ], + // 绫诲瀷 + workList: [], + getDataParams: { + keyWord: '', + }, + editConfig: { + visible: false, + infomitton: { + TabsIndex: 0, + workshopId: null, + } + }, + } + }, + created() { + this.setTable() + this.getData() + }, + methods: { + 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) { + this.getDataParams.keyWord = searchText, + this.pagerOptions.currPage = 1; + this.getData() + }, + // 鏂板 + addBtnClick() { + this.editConfig.infomitton = { + carFlag:1, + workshop:{} + }; + this.editConfig.OperationType=1; + this.editConfig.title = "鏂板"; + this.editConfig.visible = true + }, + // 淇濆瓨 + saveBtnClick() { + + }, + // 鍒锋柊 + refreshClick() { + this.getDataParams.keyWord = ""; + this.pagerOptions.currPage = 1; + this.pagerOptions.pageSize = 15; + this.$refs.searchRef.searchInput = ""; + this.getData() + }, + // 鎵撳嵃 + printClick() { }, + // 鍒犻櫎 + delBtnClick() { }, + // 缁勫埆 + /* handleShow() { + this.$refs.bomTypeDialog.editDialogVisible = true; + },*/ + handleGetBomKindDictList() { + // postGetBomKindDictList().then((res) => { + // this.workList = res.data; + // }); + }, + handleConfirmSave(data) { + console.log(data); + }, + // 杞﹂棿鍒楄〃 + 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||[]; + } + }); + }, + 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("鍙栨秷鍒犻櫎") + }); + } + } + } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> -<style lang="scss" scoped></style> +<style lang="scss" scoped> +.silkStandardSetting-container { + height: 100%; + + .filter-card { + margin: 20px 30px; + height: 80px; + display: flex; + align-items: center; + padding: 0 20px 0 20px; + border-radius: 4px; + background-color: #fff; + } + .body-card,.body-card1 { + margin: 0 30px; + background-color: #fff; + padding: 10px 15px; + 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; + color: #000000d8; + } + } + } + .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