|
@@ -1,11 +1,256 @@
|
|
|
|
|
+<!-- @desc:产品报损撤销 @auth:寇珊珊 @time:2023年3月21日15:21:08 -->
|
|
|
<template>
|
|
<template>
|
|
|
-
|
|
|
|
|
|
|
+ <div class="main-div">
|
|
|
|
|
+ <DkPaxeButton :total="editKeys?editKeys.length:0"
|
|
|
|
|
+ :current="editIndex"
|
|
|
|
|
+ v-if="editKeys && editKeys.length > 1"
|
|
|
|
|
+ @pageChange="editPageChange"></DkPaxeButton>
|
|
|
|
|
+ <DkCollapse>
|
|
|
|
|
+ <DkPanel prop="essentialInformation">
|
|
|
|
|
+ <!--添加行按钮-->
|
|
|
|
|
+ <DkButton slot="content" type="success" @click="addRow" size="small"
|
|
|
|
|
+ style="float: left;position: absolute; top: 9px;left: 120px;">{{ $v('add') }}
|
|
|
|
|
+ </DkButton>
|
|
|
|
|
+ <div style="clear:both"></div>
|
|
|
|
|
+ <!-- 下拉区域 -->
|
|
|
|
|
+ <DkForm slot="content" ref="formInline" v-model="formData" style="width: 95%">
|
|
|
|
|
+ <!--产品条码-->
|
|
|
|
|
+ <DkFormItem :required="true" prop="barCode">
|
|
|
|
|
+ <InputPop ref="barCode" v-model="formData.barCode" @on-enter="onBarCode"
|
|
|
|
|
+ @on-blur="onBarCode"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--产品型号-->
|
|
|
|
|
+ <DkFormItem prop="modelCode">
|
|
|
|
|
+ <InputPop ref="modelCode" v-model="formData.modelCode" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--编码-->
|
|
|
|
|
+ <DkFormItem prop="productCode">
|
|
|
|
|
+ <InputPop ref="productCode" v-model="formData.productCode" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--名称-->
|
|
|
|
|
+ <DkFormItem prop="productName">
|
|
|
|
|
+ <InputPop ref="productName" v-model="formData.productName" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--产品分级-->
|
|
|
|
|
+ <DkFormItem prop="opnGradeKindName" :label="$t('gradeClassification')">
|
|
|
|
|
+ <InputPop ref="opnGradeKindName" v-model="formData.opnGradeKindName" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--报损工序-->
|
|
|
|
|
+ <DkFormItem prop="scrapAgoNodeName">
|
|
|
|
|
+ <InputPop ref="scrapAgoNodeName" v-model="formData.scrapAgoNodeName" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--损柸原因-->
|
|
|
|
|
+ <DkFormItem prop="pdtDefectName">
|
|
|
|
|
+ <InputPop ref="pdtDefectName" v-model="formData.pdtDefectName" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--责任工号-->
|
|
|
|
|
+ <DkFormItem prop="blameUserCode" :label="$t('blameUserId')">
|
|
|
|
|
+ <InputPop ref="blameUserCode" v-model="formData.blameUserCode" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--备注-->
|
|
|
|
|
+ <DkFormItem prop="remarks">
|
|
|
|
|
+ <InputPop ref="remarks" v-model="formData.remarks" :readonly="true"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--撤销原因-->
|
|
|
|
|
+ <DkFormItem :required="true" prop="undoReason">
|
|
|
|
|
+ <InputPop ref="undoReason" v-model="formData.undoReason"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ </DkForm>
|
|
|
|
|
+ </DkPanel>
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <!--明细-->
|
|
|
|
|
+ <DkPanel prop="details">
|
|
|
|
|
+ <div slot="content" :style="'height: ' + tableHeight + 'px'">
|
|
|
|
|
+ <!--撤销信息-->
|
|
|
|
|
+ <EditTable slot="left" ref="submitTable" :data="detailList"
|
|
|
|
|
+ :columns="detailColumns"
|
|
|
|
|
+ :height="tableHeight-120"
|
|
|
|
|
+ :freeze="false"
|
|
|
|
|
+ :add-flag="false"
|
|
|
|
|
+ @delRow="delSubmitTable"
|
|
|
|
|
+ ></EditTable>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </DkPanel>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </DkCollapse>
|
|
|
|
|
+ <!-- 下部分按钮区域-->
|
|
|
|
|
+ <DkSaveButton ref="saveButton" :loading="loading" @save="save" @close="close"></DkSaveButton>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-export default {
|
|
|
|
|
- name: "prod-defect-reverse"
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ import { formMixin } from '@/mixins/form'
|
|
|
|
|
+
|
|
|
|
|
+ export default {
|
|
|
|
|
+ name: 'prod-defect-reverse',
|
|
|
|
|
+ mixins: [formMixin],
|
|
|
|
|
+ data() {
|
|
|
|
|
+ let self = this
|
|
|
|
|
+ return {
|
|
|
|
|
+ tableData: [],
|
|
|
|
|
+ loading: false,
|
|
|
|
|
+ tableHeight: 620,
|
|
|
|
|
+ barCodeList: [],//产品条码集合
|
|
|
|
|
+ // 画面表单数据
|
|
|
|
|
+ formData: {
|
|
|
|
|
+ barCode: '',
|
|
|
|
|
+ ftyId: this.$store.state.user.ftyId,
|
|
|
|
|
+ undoReason: null,//撤销原因
|
|
|
|
|
+ productId: null,
|
|
|
|
|
+ productCode: null,
|
|
|
|
|
+ productName: null,
|
|
|
|
|
+ modelCode: null,//产品型号
|
|
|
|
|
+ opnGradeKindName: null,//产品分级
|
|
|
|
|
+ scrapAgoNodeName: null,//报损工序
|
|
|
|
|
+ pdtDefectName: null,//损柸原因
|
|
|
|
|
+ blameUserCode: null,//责任工号
|
|
|
|
|
+ remarks: null,//备注
|
|
|
|
|
+ },
|
|
|
|
|
+ // 明细列表
|
|
|
|
|
+ detailColumns: [
|
|
|
|
|
+ // 产品条码
|
|
|
|
|
+ { field: 'barCode', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //产品型号
|
|
|
|
|
+ { field: 'modelCode', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //产品编码
|
|
|
|
|
+ { field: 'productCode', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //产品名称
|
|
|
|
|
+ { field: 'productName', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ // 产品分级
|
|
|
|
|
+ { field: 'opnGradeKindName', title: self.$t('gradeClassification'), type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //报损工序
|
|
|
|
|
+ { field: 'scrapAgoNodeName', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //损柸原因
|
|
|
|
|
+ { field: 'pdtDefectName', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //责任工号
|
|
|
|
|
+ { field: 'blameUserCode', title: self.$t('blameUserId'), type: 'disabled', width: 'auto' },
|
|
|
|
|
+ //备注
|
|
|
|
|
+ { field: 'remarks', type: 'disabled', width: 'auto' },
|
|
|
|
|
+ ],
|
|
|
|
|
+ detailList: [],
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 产品条码失焦事件
|
|
|
|
|
+ * @date : 2023/2/28 9:28
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ onBarCode() {
|
|
|
|
|
+ if (this.formData.barCode) {
|
|
|
|
|
+ this.excuteNoParam(this.$service.collectService, this.$service.collectService.checkBarCodeScrapUndo, [this.formData.barCode]).then(res => {
|
|
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
|
|
+ this.formData.productId = res.data.uniqueId
|
|
|
|
|
+ this.formData.productCode = res.data.modelCode
|
|
|
|
|
+ this.formData.productName = res.data.modelName
|
|
|
|
|
+ this.formData.modelCode = res.data.modelMouldCode
|
|
|
|
|
+ this.formData.opnGradeKindName = res.data.opnGradeKindName//产品分级
|
|
|
|
|
+ this.formData.scrapAgoNodeName = res.data.scrapAgoNodeName//报损工序
|
|
|
|
|
+ this.formData.pdtDefectName = res.data.productionDefectList[0].pdtDefectName//损柸原因
|
|
|
|
|
+ this.formData.blameUserCode = res.data.productionDefectList[0].blameUserCode//责任工号
|
|
|
|
|
+ this.formData.remarks = res.data.productionDefectList[0].remarks//备注
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$Message.error(res.message)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 删除提交行数据
|
|
|
|
|
+ * @date : 2023/3/10 11:26
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ delSubmitTable(row, rowIndex) {
|
|
|
|
|
+ this.detailList.splice(rowIndex, 1)
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 添加行
|
|
|
|
|
+ * @date : 2023/3/10 8:54
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ addRow() {
|
|
|
|
|
+ if(this.formData.barCode) {
|
|
|
|
|
+ //校验名称是否重复
|
|
|
|
|
+ if (!this.validData()) {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ this.barCodeList.push(this.formData.barCode)
|
|
|
|
|
+ let list = []
|
|
|
|
|
+ list.splice(0, 0, {})
|
|
|
|
|
+ list[0].barCode = this.formData.barCode
|
|
|
|
|
+ list[0].productId = this.formData.productId
|
|
|
|
|
+ list[0].productCode = this.formData.productCode
|
|
|
|
|
+ list[0].productName = this.formData.productName
|
|
|
|
|
+ list[0].modelCode = this.formData.modelCode
|
|
|
|
|
+ list[0].opnGradeKindName = this.formData.opnGradeKindName//产品分级
|
|
|
|
|
+ list[0].scrapAgoNodeName = this.formData.scrapAgoNodeName//报损工序
|
|
|
|
|
+ list[0].pdtDefectName = this.formData.pdtDefectName//损柸原因
|
|
|
|
|
+ list[0].blameUserCode = this.formData.blameUserCode//责任工号
|
|
|
|
|
+ list[0].remarks = this.formData.remarks//备注
|
|
|
|
|
+ this.detailList.push(list[0])
|
|
|
|
|
+ //清空表单
|
|
|
|
|
+ this.clear(true)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 设置传参
|
|
|
|
|
+ * @date : 2023/2/28 11:29
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ setParams() {
|
|
|
|
|
+ this.params = {
|
|
|
|
|
+ barCodeList: this.barCodeList,
|
|
|
|
|
+ undoReason: this.formData.undoReason,
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 校验重复数据
|
|
|
|
|
+ * @date : 2023/3/8 8:45
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ validData() {
|
|
|
|
|
+ if (this.detailList.length > 0) {
|
|
|
|
|
+ if (this.detailList.filter(it => it.barCode == this.formData.barCode).length > 0) {
|
|
|
|
|
+ this.$Message.error(this.$t('W_120'))
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return true
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 保存数据
|
|
|
|
|
+ * @date : 2023/3/16 13:28
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ saveData() {
|
|
|
|
|
+ return this.excute(this.$service.collectService, this.$service.collectService.scrapUndo, this.params)
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 清空
|
|
|
|
|
+ * @date : 2023/3/8 10:48
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ clear(value) {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ this.detailList = []
|
|
|
|
|
+ this.barCodeList =[]
|
|
|
|
|
+ this.formData.undoReason = null
|
|
|
|
|
+ }
|
|
|
|
|
+ this.formData.barCode = null
|
|
|
|
|
+ this.formData.productId = null
|
|
|
|
|
+ this.formData.productCode = null
|
|
|
|
|
+ this.formData.productName = null
|
|
|
|
|
+ this.formData.modelCode = null
|
|
|
|
|
+ this.formData.opnGradeKindName = null //产品分级
|
|
|
|
|
+ this.formData.scrapAgoNodeName = null //报损工序
|
|
|
|
|
+ this.formData.pdtDefectName = null //损柸原因
|
|
|
|
|
+ this.formData.blameUserCode = null //责任工号
|
|
|
|
|
+ this.formData.remarks = null //备注
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ created() {
|
|
|
|
|
+ },
|
|
|
|
|
+ }
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|