From c19fc969705d8033d8e300f4badb975fd6e56057 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期二, 23 四月 2024 15:04:07 +0800 Subject: [PATCH] 根据车间和组别获取机台的接口联调+删除的接口联调+字段的日期的重组数据+转化添加时间 --- src/views/employeeSalary/machineManage/components/addDialog.vue | 333 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 240 insertions(+), 93 deletions(-) diff --git a/src/views/employeeSalary/machineManage/components/addDialog.vue b/src/views/employeeSalary/machineManage/components/addDialog.vue index be18a75..474d15b 100644 --- a/src/views/employeeSalary/machineManage/components/addDialog.vue +++ b/src/views/employeeSalary/machineManage/components/addDialog.vue @@ -1,156 +1,303 @@ <template> <div class="add_wordshop"> - <el-dialog :title="editConfig.dialogTitle + '杞﹂棿绠$悊'" :visible.sync="editConfig.visible" width="30%" - :before-close="handleClose"> - <el-form :inline="true" label-width="20%" style="width: 100%;" :model="editConfig.infomitton" :rules="rules" - ref="ruleForm"> - <el-form-item label="鏃ユ湡鍖洪棿" style="width: 100%;" prop="groupNumber"> - <el-date-picker - style="width: 100%;" - v-model="editConfig.infomitton.groupNumber" - type="daterange" - range-separator="鑷�" + <el-dialog :visible.sync="islook" width="38rem" @close="cancelMethod"> + <div slot="title" class="tac drawerHeader">{{ editRow.title }}鏈哄彴</div> + <el-form label-width="100px" :model="form" :rules="rules" ref="form"> + <el-form-item label="鏃ユ湡鍖洪棿" style="width: 100%" prop="date"> + <el-date-picker + style="width: 100%" + v-model="form.date" + type="daterange" + range-separator="鑷�" + value-format="yyyy-MM-dd" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" > </el-date-picker> </el-form-item> - <el-form-item prop="workshop" label="杞﹂棿" style="width: 100%;" > - <el-select - :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.workshop" value-key="name" placeholder="璇烽�夋嫨杞﹂棿"> + <el-form-item prop="workshopObj" label="杞﹂棿"> + <el-select + v-model="form.workshopObj" + placeholder="璇烽�夋嫨杞﹂棿" + @change="getGroupNumber(false, 'workshopObj')" + > <el-option - v-for="item in workshopList" - :key="item.ID" + v-for="item in shopList" + :key="item.number" :label="item.name" - :value="item"> + :value="{ value: item.number, label: item.name }" + > </el-option> </el-select> </el-form-item> - <el-form-item prop="workshop" label="缁勫埆" style="width: 100%;" > - <el-select - :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿"> + <el-form-item prop="workshopGroup" label="缁勫埆"> + <el-select + v-model="form.workshopGroup" + @change="getGroupNumber(false, 'workshopGroup')" + placeholder="璇峰厛閫夋嫨杞﹂棿" + no-data-text="璇峰厛閫夋嫨杞﹂棿" + > <el-option - v-for="item in workshopList" - :key="item.ID" - :label="item.name" - :value="item"> + v-for="item in groupNumberList" + :key="item" + :label="item" + :value="item" + > </el-option> </el-select> </el-form-item> - <el-form-item prop="workshop" label="鏈哄彴鍙�" style="width: 100%;" > - <el-select - :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿"> + <el-form-item prop="workerPosition" label="鏈哄彴鍙�"> + <el-select + v-model="form.workerPosition" + placeholder="璇峰厛閫夋嫨杞﹂棿鍜岀粍鍒�" + no-data-text="璇峰厛閫夋嫨杞﹂棿鍜岀粍鍒�" + > <el-option - v-for="item in workshopList" + v-for="item in workerPositionList" :key="item.ID" - :label="item.name" - :value="item"> + :label="item.carNumber" + :value="{ value: item.carNumber, label: item.carNumber }" + > </el-option> </el-select> </el-form-item> - <el-form-item prop="workshop" label="鍛樺伐濮撳悕" style="width: 100%;" > - <el-select - :disabled="this.editConfig.dialogTitle==='鏌ョ湅'" v-model="editConfig.infomitton.groupNumber" value-key="name" placeholder="璇烽�夋嫨杞﹂棿"> - <el-option - v-for="item in workshopList" - :key="item.ID" - :label="item.name" - :value="item"> - </el-option> - </el-select> + <el-form-item prop="name" label="鍛樺伐濮撳悕" style="width: 100%"> + <UserSimpleSearchInput + :echoValue="form.workerId" + :echoName="form.name" + checkedNum="1" + request="1" + :clearable="true" + @select-user="setFormItem($event, 'workerId', 'name')" + > + </UserSimpleSearchInput> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> - <el-button @click="editConfig.visible = false">鍙� 娑�</el-button> - <el-button type="primary" @click="commitForm('ruleForm')">纭� 瀹�</el-button> + <el-button @click="cancelMethod()">鍙� 娑�</el-button> + <el-button type="primary" @click="submitForm('form')">纭� 瀹�</el-button> </span> </el-dialog> </div> </template> <script> -// import {} from "@/api/systemSetting/workshopManage" +import { + createWorkerPositionInfo, + updateWorkerPositionInfo, +} from "@/api/employeeSalary/machineManage.js"; +import { getWorkshopManageGroup } from "@/api/productManage/productRegisterForm.js"; +import { getDictList } from "@/api/productManage/silkRegisterForm.js"; +import { getWorkshopManageList } from "@/api/systemSetting/workshopManage.js"; +import UserSimpleSearchInput from "@/components/common/UserSimpleSearchInput"; export default { + components: { + UserSimpleSearchInput, + }, props: { - editDiaConfig: { + editRow: { type: Object, - default: () => { - return { - visible: false, - dialogTitle: "娣诲姞", - isReadonly: true, - infomitton: { - }, - } - } - } + }, }, data() { return { - editConfig: this.editDiaConfig, - workshopList: [], - carFlagList: [ - ], + shopList: [], //杞﹂棿 + groupNumberList: [], //缁勫埆 + workerPositionList: [], //鏈哄彴鍙� + islook: false, + form: { + date: [], + workshopObj: {}, + workshop: "", + workshopGroup: "", + workerPosition: "", + name: "", + workerId: "", + }, rules: { - workshopNumber: [ - { required: true, message: '璇烽�夋嫨杞﹂棿', trigger: 'change' } + date: [ + { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] }, ], - groupNumber: [ - { required: true, message: '璇峰~鍐欑粍鍒�', trigger: 'change' } - ] + workshopObj: [ + { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] }, + ], + workshopGroup: [ + { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] }, + ], + workerPosition: [ + { required: true, message: "璇烽�夋嫨", trigger: ["change", "blur"] }, + ], }, }; }, - computed: { - }, + computed: {}, created() { + this.getSelectDataList(); }, - mounted() { - - }, + mounted() {}, watch: { - + islook(newVal) { + if (newVal) { + this.formInfo(); + } + }, + editRow() { + this.formInfo(); + }, }, methods: { - handleClose(done) { - done(); - }, - setParams() { - let params = { - workshopNumber: this.editConfig.infomitton.workshopNumber + '', - groupNumber: Number(this.editConfig.infomitton.groupNumber), - startCarNumber: Number(this.editConfig.infomitton.startCarNumber), - endCarNumber: Number(this.editConfig.infomitton.endCarNumber), - carFlag: Number(this.editConfig.infomitton.carFlag), - notes: this.editConfig.infomitton.notes, - // id:Number(this.editConfig.infomitton.workshopId), + formInfo() { + if (this.islook) { + this.form = { + date: [], + workshopObj: {}, + workshop: "", + workshopGroup: "", + workerPosition: "", + workerId: "", + }; + this.$nextTick(() => { + this.$refs["form"].resetFields(); + if (this.editRow.id) { + this.form = JSON.parse(JSON.stringify(this.editRow)); + this.getGroupNumber(true); + } + }); } - return params }, - async commitForm(formName) { + setFormItem(val, itemMark, itemName) { + this.$set(this.form, itemMark, val.id); + this.$set(this.form, itemName, val.name); + }, + getGroupNumber(val, name) { + if (name == "workshopObj") { + this.form.workshopGroup = ""; + this.form.workerPosition = ""; + } + if (name == "workshopGroup") { + this.form.workerPosition = ""; + } + if (Object.keys(this.form.workshopObj).length > 0) { + //缁勫埆 + getWorkshopManageGroup({ number: this.form.workshopObj.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]); + } + } + } else { + this.groupNumberList = []; + this.form.workshop = ""; + } + } + ); + if (this.form.workshopGroup) { + getWorkshopManageList({ + page: 0, + pageSize: 0, + keyWord: "", + workshopName: this.form.workshopObj.label, + groupNumber: this.form.workshopGroup, + }).then((res) => { + if (res.code == 200) { + this.workerPositionList = []; + let data = res.data ? JSON.parse(JSON.stringify(res.data)) : []; + if (Object.keys(data).length > 0) { + for (let i in data) { + this.workerPositionList.push({ + ID: data[i].ID, + carNumber: + data[i].startCarNumber + "-" + data[i].endCarNumber, + }); + } + } + } else { + this.workerPositionList = []; + } + }); + } + } else { + this.groupNumberList = []; + } + }, + getSelectDataList() { + //杞﹂棿 + getDictList({ + dictType: 1, + }).then((res) => { + if (res.code == 200) { + this.shopList = 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) { - console.log("鏍¢獙閫氳繃") + let form = JSON.parse(JSON.stringify(this.form)); + form.startDate = form.date.length > 0 ? form.date[0] : ""; + form.endDate = form.date.length > 0 ? form.date[1] : ""; + form.startWorkerPosition = form.workerPosition + ? Number(form.workerPosition.label.split("-")[0]) + : ""; + form.endWorkerPosition = form.workerPosition + ? Number(form.workerPosition.label.split("-")[1]) + : ""; + form.workshop = + Object.keys(form.workshopObj).length > 0 + ? form.workshopObj.value + : ""; + form.workshopName = + Object.keys(form.workshopObj).length > 0 + ? form.workshopObj.label + : ""; + if (this.editRow.type == "add") { + createWorkerPositionInfo(form).then((res) => { + if (res.code == 200) { + this.$message({ + message: "娣诲姞鎴愬姛锛�", + type: "success", + }); + this.cancelMethod(true); + } + }); + } else { + updateWorkerPositionInfo(form).then((res) => { + if (res.code == 200) { + this.$message({ + message: "缂栬緫鎴愬姛锛�", + type: "success", + }); + this.cancelMethod(true); + } + }); + } } else { - console.log('error submit!!'); + console.log("error submit!!"); return false; } }); - - - } - }, - components: { - + }, }, }; </script> <style scoped lang="scss"> -::v-deep .el-form-item__content { - width: 70% !important; +.el-form { + margin-bottom: 50px; + width: 94%; + margin: 0 auto; } - ::v-deep { .el-form { .el-input__inner { -- Gitblit v1.8.0