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/productManage/silkRegisterForm/addPage.vue | 264 +++++++++++++++++++++++++++++++++++----------------- 1 files changed, 175 insertions(+), 89 deletions(-) diff --git a/src/views/productManage/silkRegisterForm/addPage.vue b/src/views/productManage/silkRegisterForm/addPage.vue index b923be7..df2b635 100644 --- a/src/views/productManage/silkRegisterForm/addPage.vue +++ b/src/views/productManage/silkRegisterForm/addPage.vue @@ -30,13 +30,13 @@ type="primary" :loading="isAddloading" @click="saveClickOne('form')" + :disabled="title==='鏌ョ湅'" >淇濆瓨</el-button > </template> </CommonSearch> </div> </div> - <div class="body"> <div class="body-l"> <el-form @@ -48,7 +48,7 @@ label-width="80px" > <el-form-item label="缂栧彿" prop="number" class="form-item"> - <el-input v-model="form.number" :disabled="title=='淇敼'?true:false" placeholder="璇疯緭鍏�"> </el-input> + <el-input v-model="form.number" :disabled="title=='淇敼'||title=='鏌ョ湅'?true:false" placeholder="璇疯緭鍏�"> </el-input> </el-form-item> <el-form-item label="钀戒笣鏃堕棿" prop="finishDate" class="form-item"> <el-date-picker @@ -58,6 +58,7 @@ type="date" placeholder="閫夋嫨鏃ユ湡" class="select-width" + :disabled='title==="鏌ョ湅"' > </el-date-picker> </el-form-item> @@ -67,6 +68,7 @@ placeholder="璇烽�夋嫨" class="select-width" @change="getGroupNumber" + :disabled='title==="鏌ョ湅"' > <el-option v-for="item in marketList" @@ -77,19 +79,18 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="杞﹂棿" prop="name" class="form-item"> + <el-form-item label="杞﹂棿" prop="workshopObj" class="form-item"> <el-select - v-model="form.name" + v-model="form.workshopObj" placeholder="璇烽�夋嫨" class="select-width" - @change="getGroupNumber('name')" - > + :disabled='title==="鏌ョ湅"' + @change="getGroupNumber('workshopObj')"> <el-option v-for="item in nameList" :key="item.ID" :label="item.name" - :value="item.name" - > + :value="{ value: item.number, label: item.name }"> </el-option> </el-select> </el-form-item> @@ -98,6 +99,7 @@ v-model="form.spec" placeholder="璇烽�夋嫨" class="select-width" + :disabled='title==="鏌ョ湅"' > <el-option v-for="item in specList" @@ -116,14 +118,14 @@ placeholder="璇峰厛閫夋嫨杞﹂棿" no-data-text="璇峰厛閫夋嫨杞﹂棿" class="select-width" + :disabled='title==="鏌ョ湅"' @change="getGroupNumber()" > <el-option v-for="item in workshopGroupList" :key="item" :label="item" - :value="item" - > + :value="item"> </el-option> </el-select> </el-form-item> @@ -142,12 +144,11 @@ placeholder="璇疯緭鍏�" show-word-limit class="select-width" + :disabled='title==="鏌ョ湅"' ></el-input> </el-form-item> </el-col> - <el-col :span="2" style="margin: 0 auto; text-align: center" - >-</el-col - > + <el-col :span="2" style="margin: 0 auto; text-align: center">-</el-col> <el-col :span="11"> <el-form-item label="" @@ -160,6 +161,7 @@ @input="inputStart" placeholder="璇疯緭鍏�" show-word-limit + :disabled='title==="鏌ョ湅"' class="select-width" ></el-input> </el-form-item> @@ -167,7 +169,7 @@ </el-row> </el-form-item> <el-form-item label="杞﹀彿" prop="position" class="form-item"> - <el-input v-model.number="form.position" placeholder="璇疯緭鍏�"> + <el-input disabled v-model.number="form.position" placeholder="璇疯緭鍏ヨ溅鍙�"> </el-input> </el-form-item> </el-form> @@ -176,8 +178,8 @@ @selTableCol="selTableCol"> </TableCommonView> --> <!-- 淇敼涓鸿緭鍏� --> - <CommonFormTableView - ref="commonFormTableView" + <FormTableView + ref="formTableView" :detail-enter="isView ? true : false" :selectBox="false" :detailEnter="true" @@ -186,7 +188,7 @@ :product-table-list="tableList" @inputContent="inputContent" @addProductClick="addProductClick" - ></CommonFormTableView> + ></FormTableView> </div> </div> <div class="body-r"> @@ -209,8 +211,8 @@ type="primary" :loading="isAddloading" @click="saveClickOne('form')" - >淇濆瓨</el-button - > + :disabled="title==='鏌ョ湅'" + >淇濆瓨</el-button> <!-- </template> </CommonSearch> --> </div> @@ -223,25 +225,25 @@ :model="form" :rules="rules" label-position="right" - label-width="60px" + label-width="70px" > <div class="form-box-t"> - <el-form-item label="缂栧彿" prop="number" class="form-item"> + <el-form-item label="缂栧彿锛�" prop="number" class="form-item"> {{ form.number }} </el-form-item> - <el-form-item label="杞﹂棿" prop="name" class="form-item"> - {{ form.name }} + <el-form-item label="杞﹂棿锛�" prop="workshopName" class="form-item"> + {{ form.workshopName }} </el-form-item> - <el-form-item label="缁勫埆" prop="workshopGroup" class="form-item"> + <el-form-item label="缁勫埆锛�" prop="workshopGroup" class="form-item"> {{ form.workshopGroup }} </el-form-item> - <el-form-item label="鍥炴暟" prop="circle" class="form-item"> + <el-form-item label="鍥炴暟锛�" prop="circle" class="form-item"> {{ form.circle }} </el-form-item> - <el-form-item label="瑙勬牸" prop="spec" class="form-item"> + <el-form-item label="瑙勬牸锛�" prop="spec" class="form-item"> {{ form.spec }} </el-form-item> - <el-form-item label="鏃ユ湡" prop="finishDate" class="form-item"> + <el-form-item label="鏃ユ湡锛�" prop="finishDate" class="form-item"> {{ form.finishDate }} </el-form-item> </div> @@ -255,7 +257,7 @@ :header-cell-style="{ background: '#f1f3f8',color: '#000009', 'font-size': '12px', 'font-family': 'PingFangSC' }" border > - <el-table-column label="杞﹀彿" prop="ID" width="100"> + <el-table-column label="杞﹀彿" prop="position" width="90"> </el-table-column> <el-table-column label="涓嬪樊绾ゅ害" @@ -274,6 +276,9 @@ show-overflow-tooltip :sortable="item.sortable" > + <template slot-scope="scope"> + {{scope.row[item.prop]}} + </template> </el-table-column> </template> </el-table-column> @@ -294,6 +299,9 @@ show-overflow-tooltip :sortable="item.sortable" > + <template slot-scope="scope"> + {{scope.row[item.prop]}} + </template> </el-table-column> </template> </el-table-column> @@ -303,6 +311,9 @@ width="100" align="center" > + <template slot-scope="scope"> + {{scope.row[item.prop]}} + </template> <template v-for="(item, i) in tableTwoList.upper"> <el-table-column align="center" @@ -314,6 +325,9 @@ show-overflow-tooltip :sortable="item.sortable" > + <template slot-scope="scope"> + {{scope.row[item.prop]}} + </template> </el-table-column> </template> </el-table-column> @@ -435,23 +449,25 @@ saveRegister, getDictList, getRegisterDetails, - getCarNumber + getCarNumber, + getAutoCode } from "@/api/productManage/silkRegisterForm.js"; import { getCheckDetails, saveCheck, + getNewCheckDetails } from "@/api/productManage/silkInspectForm.js"; import pageMixin from "@/components/makepager/pager/mixin/pageMixin"; -import CommonFormTableView from "@/components/makepager/CommonFormTableView"; +//import CommonFormTableView from "@/components/makepager/CommonFormTableView"; import { getWorkshopManageGroup } from "@/api/productManage/productRegisterForm.js"; +import FormTableView from '@/views/productManage/silkRegisterForm/components/FormTableView.vue'; export default { name: "silkRegisterAddPage", props: {}, mixins: [pageMixin], components: { - CommonFormTableView, + FormTableView, }, - computed: {}, data() { return { title:'', @@ -464,7 +480,9 @@ workshopGroupList: [], //缁勫埆 deliveryTypeList: [], specList: [], //瑙勬牸 - form: {}, + form: { + number:'' + }, rules: { number: [ { required: true, message: "璇峰~鍐�", trigger: ["change", "blur"] }, @@ -477,7 +495,7 @@ { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] }, ], // 杞﹂棿 搴旇true - name: [ + workshopObj: [ { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] }, ], spec: [ @@ -502,7 +520,8 @@ }, pickerOptions: { disabledDate(time) { - return time.getTime() < new Date().getTime() - 86400000; + //return time.getTime() < new Date().getTime() - 86400000; + return false; }, }, tableTwoList: { @@ -531,7 +550,7 @@ productId: 1, position: null, fineness: null, - quantity: null, + quantity: 0, sum: null, }, ], @@ -541,18 +560,21 @@ prop: "position", inputNumber: true, isRequird: true, + noOperate:true }, // 瀹㈡埛鍚嶇О { label: "绾ゅ害鍊�", prop: "fineness", inputNumber: true, isRequird: true, + noOperate:this.$route.query.title==='鏌ョ湅' }, // 閿�鍞礋璐d汉 { label: "鏁伴噺", prop: "quantity", inputNumber: true, isRequird: true, + noOperate:true }, // 閲嶈绾у埆 { label: "绾ゅ害鍚堣", @@ -587,20 +609,28 @@ this.getDetailsData(); }, methods: { + async getAutoCode(){ + const {code,data}=await getAutoCode({type:2}); + if(code===200){ + return data.id; + } + return ''; + }, async getDetailsData(id) { + const code= await this.getAutoCode() if (this.activeName == "first") { this.form = { - number: "", - finishDate: "", + number: code, + finishDate:this.$moment(new Date()).format('YYYY-MM-DD'), market: "", - name: "", + workshopObj: "", spec: "", workshopGroup: "", circleTwo: "", circle: "", totalCircle: "", position: "", - }; + } if (this.registerId) { await getRegisterDetails({ id: id ? id : this.registerId }).then( (response) => { @@ -609,6 +639,10 @@ JSON.stringify(response.data ? response.data : {}) ); this.form = config; + this.form.workshopObj={ + value:config.workshopNumber, + label:config.workshopName, + } this.getGroupNumber('','edit') let finenessList=config.finenessList ? config.finenessList @@ -626,12 +660,12 @@ } } else { this.form = { - number: "", - name: "", + number: code, + workshopObj: "", workshopGroup: "", circle: "", spec: "", - finishDate: "", + finishDate: this.$moment(new Date()).format('YYYY-MM-DD'), averageFineness: "", measureFineness: "", deviation: "", @@ -643,15 +677,15 @@ marketProcessOrderNumber: "", inspector: "", }; - if (this.inspectID) { - getCheckDetails({ id: id ? id : this.inspectID }).then((response) => { + if (this.registerId) { + getNewCheckDetails({ id: id ? id : this.registerId }).then((response) => { if (response.code === 200) { let config = JSON.parse( JSON.stringify(response.data.info ? response.data.info : {}) ); this.form = config; this.form.number = config.finenessRegister.number; - this.form.name = config.finenessRegister.name; + this.form.workshopName = config.finenessRegister.workshopName; this.form.workshopGroup = config.finenessRegister.workshopGroup; this.form.spec = config.finenessRegister.spec; this.form.finishDate = config.finenessRegister.finishDate; @@ -671,11 +705,11 @@ } if (round) { for (let j in round) { - arr[i][round[j].fineness] = round[j].quantity; + arr[i][round[j].fineness.toString()] = round[j].quantity; } } } - this.tableTwoList.tableInfomation = arr; + this.tableTwoList.tableInfomation = arr; } }); } @@ -696,7 +730,7 @@ let item = { label: lowNumber + i * 0.5 + "", prop: lowNumber + i * 0.5 + "", - min: 100, + min: 50, default: true, }; this.tableTwoList.objective.push(item); @@ -709,7 +743,7 @@ let item = { label: lowStart + i * 0.5 + "", prop: lowStart + i * 0.5 + "", - min: 100, + min: 50, default: true, }; this.tableTwoList.lower.push(item); @@ -722,7 +756,7 @@ let item = { label: topNumber + i * 0.5 + "", prop: topNumber + i * 0.5 + "", - min: 100, + min: 50, default: true, }; this.tableTwoList.upper.push(item); @@ -736,7 +770,7 @@ getSelectDataList() { //杞﹂棿 getDictList({ - dictType: 1, + dictType: 2, }).then((res) => { if (res.code == 200) { this.nameList = res.data || []; @@ -758,7 +792,7 @@ // }); //搴勫彛 getDictList({ - dictType: 0, + dictType: 1, }).then((res) => { if (res.code == 200) { this.marketList = res.data || []; @@ -766,22 +800,14 @@ }); }, async getGroupNumber(val,type) { - if (this.form.name) { - //缁勫埆 - let number = ""; - for (let i in this.nameList) { - if (this.nameList[i].name == this.form.name) { - number = this.nameList[i].number; - break; - } - } - if(number){ - await getWorkshopManageGroup({ number: number }).then((res) => { + if (Object.keys(this.form.workshopObj).length>0) { + if(this.form.workshopObj.value){ + await getWorkshopManageGroup({ number: this.form.workshopObj.value }).then((res) => { if (res.code == 200) { this.workshopGroupList = []; let workshopGroupList = res.data || {}; this.workshopGroupList=[] - if(val=='name'){ + if(val=='workshopObj'){ this.form.workshopGroup='' } if (Object.keys(workshopGroupList).length > 0) { @@ -794,19 +820,48 @@ } if(this.form.workshopGroup&&this.form.market&&type!='edit'){ await getCarNumber({ - workshopName:this.form.name, + workshopName:this.form.workshopObj.label, marketName:this.form.market, groupNumber:this.form.workshopGroup, }).then((res) => { if (res.code == 200) { this.tableData=[] - let data = res.data?JSON.parse(JSON.stringify(res.data)) : []; + const {startCarNumber,endCarNumber,startCarHalf,endCarHalf}=res.data; + for(let i=startCarNumber;i<=endCarNumber;i++){ + if((i===startCarNumber&&startCarHalf===2)||(i===endCarNumber&&endCarHalf===1)){ + this.tableData.push({position:i,productId:Number(i)*2-1,quantity:1}); + }else{ + this.tableData.push({position:i,productId:Number(i)*2-1,quantity:1}); + this.tableData.push({position:i,productId:Number(i)*2,quantity:1}); + } + /*if(i===startCarNumber){ + if(startCarHalf===1){//宸﹀崐杞� + this.tableData.push({position:i,productId:Number(i)*2-1}); + this.tableData.push({position:i,productId:Number(i)*2}); + }else{//鍙冲崐杞� + this.tableData.push({position:i,productId:Number(i)*2-1}); + } + }else if(i===endCarNumber){ + if(endCarHalf===1){//宸﹀崐杞� + this.tableData.push({position:i,productId:Number(i)*2-1}); + this.tableData.push({position:i,productId:Number(i)*2}); + }else{//鍙冲崐杞� + this.tableData.push({position:i,productId:Number(i)*2-1}); + } + }else{ + this.tableData.push({position:i,productId:Number(i)*2-1}); + this.tableData.push({position:i,productId:Number(i)*2}); + }*/ + } + /*let data = res.data?JSON.parse(JSON.stringify(res.data)) : []; if(Object.keys(data).length>0){ for(let i in data){ - this.tableData.push({position:data[i],productId:Number(i)+1}) - } - } - this.tableList.tableData = this.tableData + this.tableData.push({position:data[i],productId:Number(i)*2+1}) + this.tableData.push({position:data[i],productId:Number(i)*2+2}) + } + }*/ + console.log(this.tableData); + this.tableList.tableData = this.tableData }else{ this.tableData=[] } @@ -835,6 +890,7 @@ // 浜у搧鍒楄〃杈撳叆 inputContent(val, prop, row) { this.productId = row.productId; + this.form.position=row.position; this.tableData.map((item) => { if (item.productId === row.productId) { item[prop] = val; @@ -851,14 +907,15 @@ // } else { // this.is_public = false // } - this.$router.push({ + /*this.$router.push({ path: "/productManage/silkRegisterForm/addPage", query: { activeName: this.activeName, inspectID: this.inspectID, id: this.registerId, + title:this.title }, - }); + });*/ this.getDetailsData(); this.keyword = ""; }, @@ -870,13 +927,14 @@ }, // 绾ゅ害鐧昏琛� // 鏀惧純 - cancelClickOne() { + async cancelClickOne() { + const code=await this.getAutoCode() if (this.activeName == "first") { this.form = { - number: "", - finishDate: "", + number: code, + finishDate:this.$moment(new Date()).format('YYYY-MM-DD'), market: "", - name: "", + workshopObj: "", spec: "", workshopGroup: "", circleTwo: "", @@ -891,7 +949,7 @@ productId: 1, position: "", fineness: 0, - quantity: 0, + quantity: 1, sum: "", }, ]; @@ -929,17 +987,36 @@ } for (let i in finenessList) { delete finenessList[i].productId; + finenessList[i].sum=finenessList[i].sum*1; } this.isAddloading = true; + const mapFineness=new Map(); + finenessList.forEach(item=>{ + if(mapFineness.has(item.position)){ + const value=mapFineness.get(item.position); + if(value[0].fineness===item.fineness){ + value[0].sum+=item.sum; + value[0].quantity+=item.quantity; + }else{ + value.push(item); + } + mapFineness.set(item.position,value); + } else{ + mapFineness.set(item.position,[item]); + } + }); + console.log("淇敼",mapFineness) + finenessList=[...mapFineness.values()].flat(Infinity); let params = { - finenessList: finenessList, ...form, + finenessList: finenessList, }; // 缂栬緫 if (this.inspectID) { params.ID = this.form.ID ? this.form.ID : Number(this.inspectID); } - + params.workshopName=this.form.workshopObj.label; + params.workshopNumber=this.form.workshopObj.value; saveRegister(params) .then((res) => { if (res.code == 200) { @@ -948,9 +1025,14 @@ message: "淇濆瓨鎴愬姛锛�", type: "success", }); - this.$router.push({ - path: "/productManage/silkRegisterForm", - }); + if(res.data.ID){ + this.registerId=res.data.ID; + } + this.activeName = "second"; + this.getDetailsData(); + // this.$router.push({ + // path: "/productManage/silkRegisterForm", + // }); } this.isAddloading = false; }) @@ -961,7 +1043,8 @@ }); } else { let paramsTwo = { - ...form, + info:form, + items:this.tableTwoList.tableInfomation, }; // 缂栬緫 if (this.registerId) { @@ -980,8 +1063,7 @@ this.getDetailsData(); } this.isAddloading = false; - }) - .catch(() => { + }).catch(() => { setTimeout(() => { this.isAddloading = false; }, 3000); @@ -989,7 +1071,6 @@ } } else { console.log("error submit!!"); - return false; } }); @@ -1084,6 +1165,7 @@ } .list-view { + margin-top: 20px; height: calc(100% - 180px); min-height: 200px; overflow-y: auto; @@ -1134,16 +1216,20 @@ .form-box-t { width: 100%; height: 60px; - overflow: hidden; + overflow-x: auto; .form-item { - width: calc(16% - 5px); + max-width: calc(16% - 5px); + min-width:210px; margin-right: 10px; float: left; &:nth-of-type(6n) { margin-right: 0; } + &:last-child{ + float:right; + } } } -- Gitblit v1.8.0