From c8435fd9afcf1e211c38fa9848a8d27c2d989f04 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 22 四月 2024 15:54:36 +0800 Subject: [PATCH] 工种管理 列表的接口联调+删除工种的接口联调+添加工种,编辑工种 2个接口联调 --- src/api/employeeManage/employeeInfo.js | 51 +++++-- src/common/untils/request.js | 2 src/views/employeeManage/employeeInfo/index.vue | 18 ++ src/views/employeeManage/employeeInfo/components/AddEmployee.vue | 126 ++++++++++++++++---- src/views/employeeManage/workKindManage/components/AddWorkKind.vue | 70 ++++------ src/views/employeeManage/workKindManage/index.vue | 52 ++++---- 6 files changed, 205 insertions(+), 114 deletions(-) diff --git a/src/api/employeeManage/employeeInfo.js b/src/api/employeeManage/employeeInfo.js index 090b173..6aa6388 100644 --- a/src/api/employeeManage/employeeInfo.js +++ b/src/api/employeeManage/employeeInfo.js @@ -8,14 +8,7 @@ data }) } -// 娣诲姞璺熻繘璁板綍 -export function getAddFollowRecord(data) { - return request({ - url: "/api/followRecord/add", - method: "post", - data - }) -} + // 鍒犻櫎鍛樺伐淇℃伅 export function getDeleteWorkerInfo(data) { return request({ @@ -24,19 +17,43 @@ data }) } -// 鏇存柊璺熻繘璁板綍 -export function getUpdateFollowRecord(data) { +// 娣诲姞鍛樺伐 +export function createWorkerInfo(data) { return request({ - url: "/api/followRecord/update", - method: "put", + url: "/api-jl/v1/worker/createWorkerInfo", + method: "post", data }) } - -// 鑱旂郴鏂瑰紡鍒楄〃 -export function getContactInfoList() { +// 鏇存柊鍛樺伐 +export function updateWorkerInfo(data) { return request({ - url: "/api/contactInformation/list", - method: "get" + url: "/api-jl/v1/worker/updateWorkerInfo", + method: "post", + data }) } +// 宸ョ鍒楄〃 +export function getWorkTypeList(data) { + return request({ + url: "/api-jl/v1/worker/getWorkTypeList", + method: "post", + data + }) +} +// 鍒犻櫎宸ョ +export function deleteWorkTypeInfo(data) { + return request({ + url: "/api-jl/v1/worker/deleteWorkTypeInfo/"+data.id, + method: "delete", + data + }) +} +// 娣诲姞宸ョ +export function saveWorkTypeInfo(data) { + return request({ + url: "/api-jl/v1/worker/saveWorkTypeInfo", + method: "post", + data + }) +} \ No newline at end of file diff --git a/src/common/untils/request.js b/src/common/untils/request.js index 3c3e22c..d7bddfd 100644 --- a/src/common/untils/request.js +++ b/src/common/untils/request.js @@ -21,7 +21,7 @@ "$1", ); // 鏆傛棤鐧诲綍锛屽啓姝籺oken - token='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiI3NjFlM2NmNi05ZjRmLTQyMGQtYjc0ZC01NzNlZDc2NzA5MjAiLCJVc2VybmFtZSI6ImFkbWluIiwiTmlja05hbWUiOiIiLCJQYXJlbnRJZCI6ImFkbWluIiwiVXNlclR5cGUiOjIsIlJvbGVJZHMiOlsxXSwiT3JnSUQiOjEsIk1vZGlmaWVkUHdkIjp0cnVlLCJCdWZmZXJUaW1lIjo4NjQwMCwiZXhwIjoxNzEyNzI4MzI5LCJpc3MiOiJxbVBsdXMiLCJuYmYiOjE3MTIxMjI1Mjl9.KBJRT2PkRPG4UJD2hsO-fU_bylHMJ78xrWidq8xYMnw' + // token='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiI3NjFlM2NmNi05ZjRmLTQyMGQtYjc0ZC01NzNlZDc2NzA5MjAiLCJVc2VybmFtZSI6ImFkbWluIiwiTmlja05hbWUiOiIiLCJQYXJlbnRJZCI6ImFkbWluIiwiVXNlclR5cGUiOjIsIlJvbGVJZHMiOlsxXSwiT3JnSUQiOjEsIk1vZGlmaWVkUHdkIjp0cnVlLCJCdWZmZXJUaW1lIjo4NjQwMCwiZXhwIjoxNzEyNzI4MzI5LCJpc3MiOiJxbVBsdXMiLCJuYmYiOjE3MTIxMjI1Mjl9.KBJRT2PkRPG4UJD2hsO-fU_bylHMJ78xrWidq8xYMnw' if (token) { config.headers.Authorization = "Bearer " + token; } diff --git a/src/views/employeeManage/employeeInfo/components/AddEmployee.vue b/src/views/employeeManage/employeeInfo/components/AddEmployee.vue index d5d9149..cc662c9 100644 --- a/src/views/employeeManage/employeeInfo/components/AddEmployee.vue +++ b/src/views/employeeManage/employeeInfo/components/AddEmployee.vue @@ -13,26 +13,29 @@ <el-form-item label="鎵嬫満鍙凤細" prop="phoneNum"> <el-input v-model="form.phoneNum" placeholder="璇疯緭鍏�" maxlength="11" show-word-limit></el-input> </el-form-item> - <el-form-item label="鍏ヨ亴鏃堕棿锛�" prop="date"> - <el-date-picker v-model="form.date" style="width:100%;" type="date" placeholder="閫夋嫨鏃ユ湡" + <el-form-item label="鍏ヨ亴鏃堕棿锛�" prop="employmentTime"> + <el-date-picker v-model="form.employmentTime" style="width:100%;" type="date" placeholder="閫夋嫨鏃ユ湡" value-format="yyyy-MM-dd"> </el-date-picker> </el-form-item> - <el-form-item label="杞﹂棿锛�" prop="phoneNum"> - <el-select v-model="form.phoneNum" filterable placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id"> + <el-form-item label="杞﹂棿锛�" prop="shopNameObj"> + <el-select v-model="form.shopNameObj" filterable placeholder="璇烽�夋嫨" style="width: 100%" @change='getGroupNumber'> + <el-option v-for="item in shopList" :key="item.number" + :label="item.name" + :value="{ value: item.number, label: item.name }"> </el-option> </el-select> </el-form-item> - <el-form-item label="缁勫埆锛�" prop="phoneNum"> - <el-select v-model="form.phoneNum" filterable placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id"> + <el-form-item label="缁勫埆锛�" prop="groupNumber"> + <el-select v-model="form.groupNumber" filterable placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in groupNumberList" :key="item" :label="item" :value="item"> </el-option> </el-select> </el-form-item> - <el-form-item label="宸ョ锛�" prop="phoneNum"> - <el-select v-model="form.phoneNum" filterable placeholder="璇烽�夋嫨" style="width: 100%"> - <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id"> + <el-form-item label="宸ョ锛�" prop="workTypeObj"> + <el-select v-model="form.workTypeObj" filterable placeholder="璇烽�夋嫨" style="width: 100%"> + <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" + :value="{ value: item.id, label: item.name }"> </el-option> </el-select> </el-form-item> @@ -46,7 +49,14 @@ </template> <script> -import { getDeleteFollowRecord } from "@/api/employeeManage/employeeInfo.js" + +import { createWorkerInfo,updateWorkerInfo,getWorkTypeList } from "@/api/employeeManage/employeeInfo.js" +import { + getDictList, +} from "@/api/productManage/silkRegisterForm.js"; +import { + getWorkshopManageGroup, +} from "@/api/productManage/productRegisterForm.js"; export default { props: { editRow: { @@ -60,7 +70,14 @@ id: '', name: '', phoneNum: '', + employmentTime:'', + shopNameObj:{}, + groupNumber:'', + workTypeObj:{}, }, + shopList:[],//杞﹂棿 + groupNumberList:[],//缁勫埆 + workTypeList:[], //宸ョ rules: { id: [ { @@ -91,10 +108,10 @@ }, ], }, - DeviceList: [], }; }, created() { + this.getSelectDataList() }, watch: { islook(newVal) { @@ -110,50 +127,105 @@ formInfo() { if (this.islook) { this.form = { - explain: "", - prefixId: "", - id: "", - number: 0, - remark: "", - status: "", - frockLife: "", - frockName: "", - vendor: "", + id: '', + name: '', + phoneNum: '', + employmentTime:'', + shopNameObj:{}, + groupNumber:'', + workTypeObj:{}, }; this.$nextTick(()=>{ this.$refs["form"].resetFields(); if (this.editRow.id) { this.form = JSON.parse(JSON.stringify(this.editRow)); + this.getGroupNumber(true) } }) } }, - cancelMethod() { + getGroupNumber(val){ + // shopName + if(this.form.shopNameObj.value){ + //缁勫埆 + getWorkshopManageGroup({number:this.form.shopNameObj.value}).then((res) => { + if (res.code == 200) { + let groupNumberList = res.data || {}; + this.groupNumberList=[] + if(Object.keys(groupNumberList).length>0){ + for(let i in groupNumberList){ + this.groupNumberList.push(groupNumberList[i]) + } + this.form.shopName='' + // 缂栬緫 + if(val){ + setTimeout(()=>{ + this.$set(this.form,'shopName',this.form.shopName) + },200) + } + } + }else{ + this.groupNumberList=[] + this.form.shopName='' + } + }); + }else{ + this.workshopGroupList =[] + } + }, + getSelectDataList() { + //杞﹂棿 + getDictList({ + dictType: 1, + }).then((res) => { + if (res.code == 200) { + this.shopList = res.data || []; + } + }); + getWorkTypeList({ + page:0, + pageSize:0, + keyWord:'' + }).then((res) => { + if (res.code == 200) { + this.workTypeList = res.data || []; + } + }); + }, + cancelMethod(val) { this.$refs["form"].resetFields(); this.islook = false; + if(val){ + this.$emit('refresh') + } + }, submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { let form = JSON.parse(JSON.stringify(this.form)); + form.shopId=form.shopNameObj.value + form.shopName=form.shopNameObj.label + form.workTypeId=form.workTypeObj.value + form.workType=form.workTypeObj.label if (this.editRow.type == "add") { - getDeleteFollowRecord(form).then((res) => { + createWorkerInfo(form).then((res) => { if (res.code == 200) { this.$message({ message: "娣诲姞鎴愬姛锛�", type: "success", }); - this.cancelMethod(); + this.cancelMethod(true); } }); } else { - getDeleteFollowRecord(form).then((res) => { + updateWorkerInfo(form).then((res) => { if (res.code == 200) { this.$message({ message: "缂栬緫鎴愬姛锛�", type: "success", }); - this.cancelMethod(); + this.cancelMethod(true); } }); } diff --git a/src/views/employeeManage/employeeInfo/index.vue b/src/views/employeeManage/employeeInfo/index.vue index 706a4ef..ef3ae38 100644 --- a/src/views/employeeManage/employeeInfo/index.vue +++ b/src/views/employeeManage/employeeInfo/index.vue @@ -41,7 +41,7 @@ </div> </div> </div> - <AddEmployee ref="addEmployee" :editRow="editRow" @shutdown="shutdown" /> + <AddEmployee ref="addEmployee" :editRow="editRow" @refresh="shutdown" /> </div> </template> @@ -136,7 +136,7 @@ if (res.data) { const list = res.data this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.count + this.pagerOptions.totalCount = res.total } else { this.tableList.tableInfomation = [] } @@ -158,6 +158,7 @@ this.getData() }, shutdown() { + this.pagerOptions.currPage = 1 this.getData(); }, // 鏂板缓 @@ -168,7 +169,18 @@ // 缂栬緫 handleClick(row) { let config=JSON.parse(JSON.stringify(row)); - this.editRow = { ...config, title:'缂栬緫',type:'add' } + this.editRow = { ...config, + title:'缂栬緫', + type:'edit', + shopNameObj:{ + value:config.shopId, + label:config.shopName, + }, + workTypeObj:{ + value:config.workTypeId, + label:config.workType, + } + } this.$refs.addEmployee.islook = true; }, // 鍒犻櫎 diff --git a/src/views/employeeManage/workKindManage/components/AddWorkKind.vue b/src/views/employeeManage/workKindManage/components/AddWorkKind.vue index 8646b88..ef0760f 100644 --- a/src/views/employeeManage/workKindManage/components/AddWorkKind.vue +++ b/src/views/employeeManage/workKindManage/components/AddWorkKind.vue @@ -4,20 +4,20 @@ <div slot="title" class="tac drawerHeader">{{ editRow.title }}</div> <div class="dialog-content-box"> <el-form class="form-box" ref="form" :rules="rules" :model="form" label-width="120px" label-position="right"> - <el-form-item label="宸ョ鍚嶇О锛�" prop="id"> - <el-input v-model="form.id" placeholder="璇疯緭鍏�"></el-input> + <el-form-item label="宸ョ鍚嶇О锛�" prop="workName"> + <el-input v-model="form.workName" placeholder="璇疯緭鍏�"></el-input> </el-form-item> - <el-form-item label="涓嶈揪鏍囦繚搴曪細" prop="isCore"> + <el-form-item label="涓嶈揪鏍囦繚搴曪細" prop="isGuaranteed"> <el-switch - v-model="form.isCore" + v-model="form.isGuaranteed" active-color="#409EFF" inactive-color="#C0CCDA" > </el-switch> </el-form-item> - <el-form-item label="淇濆簳宸ヨ祫锛�" prop="produceAheadDay"> + <el-form-item label="淇濆簳宸ヨ祫锛�" prop="guaranteedWages"> <el-input - v-model.number="form.produceAheadDay" + v-model.number="form.guaranteedWages" maxlength="20" style="width: calc(100% - 40px)" clearable @@ -25,8 +25,8 @@ ></el-input> <span class="float_right">鍏�/澶�</span> </el-form-item> - <el-form-item label="钖祫鏂规锛�" prop="name"> - 鎸¤溅宸ョ敓浜у伐璧勬柟妗�+婊″嫟鏂规+宸ラ緞琛ヨ创鏂规 + <el-form-item label="钖祫鏂规锛�" prop="salaryPlansName"> + {{ form.salaryPlansName }} </el-form-item> </el-form> </div> @@ -38,7 +38,7 @@ </template> <script> -import { getDeleteFollowRecord } from "@/api/employeeManage/employeeInfo.js" +import { saveWorkTypeInfo } from "@/api/employeeManage/employeeInfo.js" export default { props: { editRow: { @@ -49,26 +49,20 @@ return { islook: false, form: { - id: '', - isCore: '', - phoneNum: '', + workName: '', + isGuaranteed: true, + guaranteedWages: null, + salaryPlansName:'', }, rules: { - id: [ + workName: [ { required: true, - message: "璇疯緭鍏ヤ汉鍛樺鍚�", + message: "璇疯緭鍏�", trigger: ["blur", "change"], }, ], - name: [ - { - required: true, - message: "璇疯緭鍏ュ憳宸ョ紪鐮�", - trigger: ["blur", "change"], - }, - ], - produceAheadDay: [ + guaranteedWages: [ { required: false, message: "璇疯緭鍏�", @@ -99,12 +93,14 @@ formInfo() { if (this.islook) { this.form = { - isCore: "", - id: "", + workName: '', + isGuaranteed: true, + guaranteedWages: null, + salaryPlansName:'', }; this.$nextTick(()=>{ this.$refs["form"].resetFields(); - if (this.editRow.id) { + if (this.editRow.type=='edit') { this.form = JSON.parse(JSON.stringify(this.editRow)); } }) @@ -126,35 +122,27 @@ callback(); } }, - cancelMethod() { + cancelMethod(val) { this.$refs["form"].resetFields(); this.islook = false; + if(val){ + this.$emit('refresh') + } }, submitForm(formName) { this.$refs[formName].validate((valid) => { if (valid) { let form = JSON.parse(JSON.stringify(this.form)); - if (this.editRow.type == "add") { - getDeleteFollowRecord(form).then((res) => { + saveWorkTypeInfo(form).then((res) => { if (res.code == 200) { this.$message({ - message: "娣诲姞鎴愬姛锛�", + message: this.editRow.type == "add"?"娣诲姞鎴愬姛锛�":"缂栬緫鎴愬姛锛�", type: "success", }); - this.cancelMethod(); + this.cancelMethod(true); } }); - } else { - getDeleteFollowRecord(form).then((res) => { - if (res.code == 200) { - this.$message({ - message: "缂栬緫鎴愬姛锛�", - type: "success", - }); - this.cancelMethod(); - } - }); - } + } else { console.log('error submit!!'); return false; diff --git a/src/views/employeeManage/workKindManage/index.vue b/src/views/employeeManage/workKindManage/index.vue index e3c2390..614c384 100644 --- a/src/views/employeeManage/workKindManage/index.vue +++ b/src/views/employeeManage/workKindManage/index.vue @@ -30,7 +30,7 @@ <el-table-column label="鎿嶄綔" width="90" fixed="right"> <template slot-scope="scope"> <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button> - <el-button @click="delClick(scope.row.id)" type="text" size="small">鍒犻櫎</el-button> + <el-button @click="delClick(scope.row)" type="text" size="small">鍒犻櫎</el-button> </template> </el-table-column> </template> @@ -41,12 +41,12 @@ </div> </div> </div> - <AddWorkKind ref="addWorkKind" :editRow="editRow" @shutdown="shutdown" /> + <AddWorkKind ref="addWorkKind" :editRow="editRow" @refresh="shutdown" /> </div> </template> <script> -import { getFollowRecordList, getDeleteFollowRecord } from "@/api/employeeManage/employeeInfo.js" +import { getWorkTypeList, deleteWorkTypeInfo } from "@/api/employeeManage/employeeInfo.js" import pageMixin from "@/components/makepager/pager/mixin/pageMixin" import AddWorkKind from "@/views/employeeManage/workKindManage/components/AddWorkKind" export default { @@ -65,13 +65,13 @@ editRow: { title: "鏂板缓", }, - search_map: {}, + keyWord: '', tableColumn: [ - { label: "宸ョ鍚嶇О", prop: "topic", min: 120, default: true }, // 涓婚 - { label: "淇濆簳宸ヨ祫(鍏�/澶�)", prop: "client_name", min: 180, }, // 瀹㈡埛鍚嶇О - { label: "钖祫鏂规", prop: "contact_name", min: 130, }, // 鑱旂郴浜哄鍚� - { label: "娣诲姞鏃堕棿", prop: "client_status", width: 130 }, // 瀹㈡埛鐘舵�� - { label: "娣诲姞浜�", prop: "contact_information_name", min: 100 }, // 鑱旂郴鏂瑰紡 + { label: "宸ョ鍚嶇О", prop: "workName", min: 120, default: true }, // 涓婚 + { label: "淇濆簳宸ヨ祫(鍏�/澶�)", prop: "guaranteedWages", min: 180, }, // 瀹㈡埛鍚嶇О + { label: "钖祫鏂规", prop: "salaryPlansName", min: 130, }, // 鑱旂郴浜哄鍚� + { label: "娣诲姞鏃堕棿", prop: "createTime", width: 130 }, // 瀹㈡埛鐘舵�� + { label: "娣诲姞浜�", prop: "addPeople", min: 100 }, // 鑱旂郴鏂瑰紡 ], showCol: [ "宸ョ鍚嶇О", @@ -84,7 +84,7 @@ }, created() { this.setTable() - this.getData(this.search_map) + this.getData(this.keyWord) }, computed: { }, @@ -120,28 +120,29 @@ // 璇锋眰鏁版嵁 async getData() { this.loading = true - await getFollowRecordList({ - search_map: this.search_map, + await getWorkTypeList({ + keyWord: this.keyWord, page: this.pagerOptions.currPage, pageSize: this.pagerOptions.pageSize }) .then((res) => { console.log(res) if (res.code === 200) { - if (res.data.list && res.data.list.length > 0) { - const list = res.data.list.map((item) => { + if (res.data && res.data.length > 0) { + const list = res.data.map((item) => { + let salaryPlansName='' + if(item.salaryPlans){ + for(let i in item.$confirmsalaryPlans){ + salaryPlansName=salaryPlansName+'+'+item.salaryPlans[i].name + } + } return { ...item, - client_name: item.client.name, - contact_name: item.contact.name, - client_status: item.client_status.name, - phone: item.contact.phone, - member_name: item.member.username, - contact_information_name: item.contact_information.name + salaryPlansName:salaryPlansName, } }) this.tableList.tableInfomation = list || [] - this.pagerOptions.totalCount = res.data.count + this.pagerOptions.totalCount = res.total } else { this.tableList.tableInfomation = [] } @@ -158,11 +159,12 @@ }, // 鎼滅储 onFilterSearch(searchText) { - this.search_map.client_name = searchText ?? "" + this.keyWord = searchText ?? "" this.pagerOptions.currPage = 1 this.getData() }, shutdown() { + this.pagerOptions.currPage = 1 this.getData(); }, // 鏂板缓 @@ -173,18 +175,18 @@ // 缂栬緫 handleClick(row) { let config=JSON.parse(JSON.stringify(row)); - this.editRow = { ...config, title:'缂栬緫',type:'add' } + this.editRow = { ...config, title:'缂栬緫',type:'edit',id:row.ID, } this.$refs.addWorkKind.islook = true; }, // 鍒犻櫎 - delClick(id) { + delClick(row) { this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", { confirmButtonText: "纭畾", cancelButtonText: "鍙栨秷", type: "warning" }) .then(() => { - getDeleteFollowRecord({ ids: [id] }).then((response) => { + deleteWorkTypeInfo({ id: row.ID }).then((response) => { if (response.code === 200) { this.$message.success("鍒犻櫎鎴愬姛") this.getData() -- Gitblit v1.8.0