From 481d82ebd4504501b408c458f3d87d912692588e Mon Sep 17 00:00:00 2001 From: charles <981744753@qq.com> Date: 星期二, 16 七月 2024 11:32:06 +0800 Subject: [PATCH] fix:修复纤度登记表,检验表切换 --- src/views/employeeSalary/salaryPlan/index.vue | 243 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 236 insertions(+), 7 deletions(-) diff --git a/src/views/employeeSalary/salaryPlan/index.vue b/src/views/employeeSalary/salaryPlan/index.vue index 58f3bb2..733a436 100644 --- a/src/views/employeeSalary/salaryPlan/index.vue +++ b/src/views/employeeSalary/salaryPlan/index.vue @@ -1,21 +1,250 @@ <template> - <div class="container"></div> + <div class="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> + </template> + </CommonSearch> + </div> + <div class="body-card"> + <div class="list-view"> + <TableCommonView + :table-list="tableList" + @selTableCol="selTableCol" + > + <template slot="tableButton"> + <el-table-column label="鎿嶄綔" width="110"> + <template slot-scope="scope"> + <el-button @click.stop="handleClick(scope.row)" type="text" size="small">淇敼</el-button> + <el-button @click.stop="delClick(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> + <AddDialog + ref="add" :editRow="editRow" @refresh="refresh" + /> + </div> + </div> </template> <script> +import AddDialog from "@/views/employeeSalary/salaryPlan/components/addDialog.vue" +import pageMixin from "@/components/makepager/pager/mixin/pageMixin" +import { getSalaryPlanList, deleteSalaryPlanInfo } from "@/api/employeeSalary/salaryPlan.js" export default { name: "salaryPlan", props: {}, - components: {}, - mixins: [], + components: {AddDialog}, + mixins: [pageMixin], computed: {}, data() { - return {} + return { + tableList: {}, + showCol: ["鏂规鍚嶇О", "宸ョ", "钖祫绫诲瀷", "璁¤垂鍛ㄦ湡", "璁¤垂鍏紡瀹氫箟", "娣诲姞鏃堕棿", "娣诲姞浜�"], + tableColumn: [ + { label: "鏂规鍚嶇О", prop: "name",min:110}, + { label: "宸ョ", prop: "workTypeNames",min:100 }, + { label: "钖祫绫诲瀷", prop: "salaryTypeName",min:110 }, + { label: "璁¤垂鍛ㄦ湡", prop: "cycle",min:110 }, + { label: "璁¤垂鍏紡瀹氫箟", prop: "salaryFormulaValue",min:140 }, + { label: "娣诲姞鏃堕棿", prop: "createTime",min:130 }, + { label: "娣诲姞浜�", prop: "addPeople",min:110 }, + ], + keyword: '', + editRow:{}, + } }, - created() {}, - methods: {} + created() { + this.setTable() + this.getData(this.keyword) + }, + methods: { + 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) + }, + // 璇锋眰鏁版嵁 + async getData() { + this.loading = true + await getSalaryPlanList({ + keyword: this.keyword, + page: this.pagerOptions.currPage, + pageSize: this.pagerOptions.pageSize + }) + .then((res) => { + if (res.code === 200) { + if (res.data) { + const list = res.data.map(item=>{ + let workTypeNames='' + if(item.workTypes){ + for(let i in item.workTypes){ + workTypeNames=item.workTypes[i].workName+','+workTypeNames + } + } + let salaryFormulaValue='' + salaryFormulaValue=item.salaryFormula?item.salaryFormula.split(",").join(''):[] + return { + ...item, + workTypeNames:workTypeNames, + salaryFormulaValue:salaryFormulaValue, + salaryTypeName:item.salaryType?item.salaryType.name:'' + } + }) + this.tableList.tableInfomation = list || [] + this.pagerOptions.totalCount = res.total + } else { + this.tableList.tableInfomation = [] + } + } else { + this.tableList.tableInfomation = [] + } + this.loading = false + }) + .catch((err) => { + console.log(err) + this.tableList.tableInfomation = [] + this.loading = false + }) + }, + // 鏂板 + addBtnClick() { + this.editRow = { title:'鏂板缓',type: 'add' } + this.$refs.add.islook = true; + }, + // 鎼滅储 + onFilterSearch(searchText) { + this.keyword= searchText, + this.pagerOptions.currPage = 1 + this.getData() + }, + refresh(){ + this.getData() + }, + // 缂栬緫 + handleClick(row) { + let config=JSON.parse(JSON.stringify(row)); + let arr=config.workTypes?config.workTypes:[] + let workTypes=[] + if(arr&&arr.length>0){ + for(let i in arr){ + workTypes.push({ + value:arr[i].ID, + label: arr[i].workName + }) + } + } + this.editRow = { + ...config, + title:'缂栬緫', + type:'edit', + id:config.ID, + workTypes:workTypes + } + this.$refs.add.islook = true; + }, + // 鍒犻櫎 + delClick(row) { + this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }) + .then(() => { + deleteSalaryPlanInfo({ id: row.ID }).then((response) => { + if (response.code === 200) { + this.$message.success("鍒犻櫎鎴愬姛") + this.getData() + } + }) + }) + .catch(() => {}) + }, + + } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> -<style lang="scss" scoped></style> +<style lang="scss" scoped> + +.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 { + 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; + color: #000000d8; + } + } + } +} +.list-view { + height: calc(100% - 60px); + overflow: hidden; +} +.btn-pager { + display: flex; + margin-top: 10px; + .page { + margin-left: auto; + } +} +</style> -- Gitblit v1.8.0