|
@@ -1,11 +1,385 @@
|
|
|
|
|
+<!-- @desc:报工记录 @auth:寇珊珊 @time:2023年4月10日14:33:01 -->
|
|
|
<template>
|
|
<template>
|
|
|
|
|
+ <div class="main-div">
|
|
|
|
|
+ <!--按钮区-->
|
|
|
|
|
+ <BaseIndexButtonGroup id="BaseIndexButtonGroup">
|
|
|
|
|
+ <template #left>
|
|
|
|
|
+ <!-- 查询 -->
|
|
|
|
|
+ <BaseIndexButton right-button="carrier-flow-pdt-select" ref="search" name="search"></BaseIndexButton>
|
|
|
|
|
+ <!-- 清空条件 -->
|
|
|
|
|
+ <BaseIndexButton right-button="carrier-flow-pdt-clear" ref="clear" name="clear"></BaseIndexButton>
|
|
|
|
|
+ <!-- 编辑 -->
|
|
|
|
|
+ <BaseIndexButton right-button="productDefect-edit" ref="edit" name="edit"></BaseIndexButton>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template #right>
|
|
|
|
|
+ <!-- 新建 -->
|
|
|
|
|
+ <BaseIndexButton right-button="productDefect-add" ref="add" name="add"></BaseIndexButton>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </BaseIndexButtonGroup>
|
|
|
|
|
|
|
|
|
|
+ <!-- 查询条件区域 -->
|
|
|
|
|
+ <div id="search-cond-div" ref="search-cond-div" style="margin-top: 1px;padding: 0">
|
|
|
|
|
+ <SearchCond ref="searchCond" v-model="searchCond"
|
|
|
|
|
+ @collapse-change="collapseChange" :set-flag="false"
|
|
|
|
|
+ :search-content="searchContent"></SearchCond>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 列表区 -->
|
|
|
|
|
+ <div :style="'height: ' + tableHeight + 'px'" class="split-div-class">
|
|
|
|
|
+ <!-- 产品报损 -->
|
|
|
|
|
+ <DkTable slot="content" :id="'table-'+$options.name" ref="table-select" :data="tableData"
|
|
|
|
|
+ :pageFlag="true"
|
|
|
|
|
+ @pageChange="pageSizeChange"
|
|
|
|
|
+ :page-total="pageInfo.total"
|
|
|
|
|
+ :current-page="pageInfo.currentPage"
|
|
|
|
|
+ :height="this.tableHeight" primaryKey="prodId"
|
|
|
|
|
+ :choose-flag="false">
|
|
|
|
|
+ <!--报工名称-->
|
|
|
|
|
+ <DkTableColumn field="jobName" :title="$t('workJobName')" type="link"
|
|
|
|
|
+ @on-link="handleLink(Object.assign($event,{button:'edit'}))"></DkTableColumn>
|
|
|
|
|
+ <!--报工类型-->
|
|
|
|
|
+ <DkTableColumn field="workKindName" :title="$t('workKind')"></DkTableColumn>
|
|
|
|
|
+ <!--报工数量-->
|
|
|
|
|
+ <DkTableColumn field="workQuantity" :dataType="$config.dataType.number"></DkTableColumn>
|
|
|
|
|
+ <!--报工时间-->
|
|
|
|
|
+ <DkTableColumn field="workTimes" :dataType="$config.dataType.number"></DkTableColumn>
|
|
|
|
|
+ <!--报工金额-->
|
|
|
|
|
+ <DkTableColumn field="wordAmount" :dataType="$config.dataType.number"></DkTableColumn>
|
|
|
|
|
+ <!--报工单位-->
|
|
|
|
|
+ <DkTableColumn field="workUnit"></DkTableColumn>
|
|
|
|
|
+ <!--产品编码-->
|
|
|
|
|
+ <DkTableColumn field="productCode"></DkTableColumn>
|
|
|
|
|
+ <!--产品名称-->
|
|
|
|
|
+ <DkTableColumn field="productName"></DkTableColumn>
|
|
|
|
|
+ <!--加班标识-->
|
|
|
|
|
+ <DkTableColumn field="flgOvertime" type="switch" :switch-disabled="true"></DkTableColumn>
|
|
|
|
|
+ <!--有效标识-->
|
|
|
|
|
+ <DkTableColumn field="flgValid" type="switch" @on-switch-change="onSwitchChange"
|
|
|
|
|
+ :switch-disabled="false"></DkTableColumn>
|
|
|
|
|
+ <!--备注-->
|
|
|
|
|
+ <DkTableColumn field="remarks" width="auto"></DkTableColumn>
|
|
|
|
|
+ </DkTable>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!--新建、编码-->
|
|
|
|
|
+ <DkModal
|
|
|
|
|
+ :loading="loading"
|
|
|
|
|
+ v-model="editAddModal"
|
|
|
|
|
+ ref="modal_editAdd"
|
|
|
|
|
+ @modalOk="save"
|
|
|
|
|
+ :title="modalTitle"
|
|
|
|
|
+ >
|
|
|
|
|
+ <DkForm ref="formInline" v-model="formData" :col-count="1">
|
|
|
|
|
+ <!--生产工号-->
|
|
|
|
|
+ <DkFormItem :required="true" prop="userCode" :label="$t('prodUserCode')">
|
|
|
|
|
+ <InputPop ref="userCode" v-model="formData.userCode"
|
|
|
|
|
+ :readonly="modalParams.button == $config.formMode.edit"
|
|
|
|
|
+ @on-enter="onProdUserCode"
|
|
|
|
|
+ @on-blur="onProdUserCode"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--选择工种-->
|
|
|
|
|
+ <DkFormItem prop="jobId" :required="true" :data-type="this.$config.dataType.number">
|
|
|
|
|
+ <SelectMagnifier v-model="formData.jobId" :display-text="formData.jobName"
|
|
|
|
|
+ :type="$config.MagnifierType.workJob"
|
|
|
|
|
+ :multiple="false"
|
|
|
|
|
+ :other-condition="{workFlag:true}"
|
|
|
|
|
+ :disabled="modalParams.button==$config.formMode.edit"
|
|
|
|
|
+ @ok="chooseJob"></SelectMagnifier>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--选择产品-->
|
|
|
|
|
+ <DkFormItem prop="pdtModelId" :label="$t('pdtModelName')">
|
|
|
|
|
+ <SelectMagnifier v-model="formData.pdtModelId"
|
|
|
|
|
+ :multiple="false"
|
|
|
|
|
+ :display-text="formData.productCode"
|
|
|
|
|
+ :type="$config.MagnifierType.product"
|
|
|
|
|
+ @ok="chooseMould"></SelectMagnifier>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--报工类型-->
|
|
|
|
|
+ <DkFormItem prop="workKind">
|
|
|
|
|
+ <SelectPop v-model="formData.workKind" ref="workKind" :multiple="false"
|
|
|
|
|
+ :options="workKindList"
|
|
|
|
|
+ labelKey="kindName"
|
|
|
|
|
+ valueKey="kindCode">
|
|
|
|
|
+ </SelectPop>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--报工单位-->
|
|
|
|
|
+ <DkFormItem prop="workUnit">
|
|
|
|
|
+ <InputPop v-model="formData.workUnit" ref="workUnit"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--报工数量-->
|
|
|
|
|
+ <DkFormItem prop="workQuantity" v-if="formData.workKind ==$config.workKind.jiJian">
|
|
|
|
|
+ <InputNumberPop v-model="formData.workQuantity" :clearable="false"
|
|
|
|
|
+ :min="1" :max="9+1"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--报工时间-->
|
|
|
|
|
+ <DkFormItem prop="workTimes" v-if="formData.workKind ==$config.workKind.jiShi">
|
|
|
|
|
+ <InputNumberPop v-model="formData.workTimes"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--加班标识-->
|
|
|
|
|
+ <DkFormItem prop="flgOvertime">
|
|
|
|
|
+ <DkSwitch v-model="formData.flgOvertime" :clearable="false" @on-change="flgOvertimeHandleChange"></DkSwitch>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!--报工金额-->
|
|
|
|
|
+ <DkFormItem prop="wordAmount" :data-type="$config.dataType.number"
|
|
|
|
|
+ v-if="formData.flgOvertime">
|
|
|
|
|
+ <InputNumberPop v-model="formData.wordAmount"/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ <!-- 备注 -->
|
|
|
|
|
+ <DkFormItem prop="remarks">
|
|
|
|
|
+ <InputPop v-model="formData.remarks" textareaFlag/>
|
|
|
|
|
+ </DkFormItem>
|
|
|
|
|
+ </DkForm>
|
|
|
|
|
+ </DkModal>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-export default {
|
|
|
|
|
-name: "work-record"
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ import { indexMixin } from '@/mixins'
|
|
|
|
|
+
|
|
|
|
|
+ export default {
|
|
|
|
|
+ name: 'work-record',
|
|
|
|
|
+ mixins: [indexMixin],
|
|
|
|
|
+ data() {
|
|
|
|
|
+ let self = this
|
|
|
|
|
+ return {
|
|
|
|
|
+ searchContent: [
|
|
|
|
|
+ {
|
|
|
|
|
+ //报工名称
|
|
|
|
|
+ itemCode: 'jobName',
|
|
|
|
|
+ itemName: 'workJobName',
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ //计件类型
|
|
|
|
|
+ itemCode: 'workKindList',
|
|
|
|
|
+ itemName: 'workKind',
|
|
|
|
|
+ valueFormat: {
|
|
|
|
|
+ data: [
|
|
|
|
|
+ {valueKey: '报工类型-计时', workKind: self.$config.workKindSearchEnum.jiShi},
|
|
|
|
|
+ {valueKey: '报工类型-计件', workKind: self.$config.workKindSearchEnum.jiJian}],
|
|
|
|
|
+ valueKey: 'valueKey',
|
|
|
|
|
+ labelKey: 'workKind',
|
|
|
|
|
+ default: ['报工类型-计时', '报工类型-计件']
|
|
|
|
|
+ },
|
|
|
|
|
+ valueKind: self.$config.docUserInput.mChoice
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ //产品编码
|
|
|
|
|
+ itemCode: 'productCode',
|
|
|
|
|
+ },
|
|
|
|
|
+ self.$config.flgValidSearch // 有效标识
|
|
|
|
|
+ ],
|
|
|
|
|
+ ftyId: self.$store.state.user.ftyId,
|
|
|
|
|
+ editAddModal: false,
|
|
|
|
|
+ modalTitle: '',//新建编辑弹窗名称
|
|
|
|
|
+ submitType: '',//新建编辑提交类型
|
|
|
|
|
+ defectKind: null,// 类型
|
|
|
|
|
+ formData: {
|
|
|
|
|
+ userId: null,//生产工号Id
|
|
|
|
|
+ userCode: null,//生产工号
|
|
|
|
|
+ jobId: null,//工种Id
|
|
|
|
|
+ jobName: null,//工种
|
|
|
|
|
+ pdtModelId: null,//产品型号id
|
|
|
|
|
+ productCode: null,//产品型号
|
|
|
|
|
+ workKind: null,//报工类型
|
|
|
|
|
+ workUnit: null,//报工单位
|
|
|
|
|
+ workQuantity: null,//报工数量
|
|
|
|
|
+ workTimes: null,//报工时间
|
|
|
|
|
+ flgOvertime: false,//加班标识
|
|
|
|
|
+ wordAmount: null,//报工金额
|
|
|
|
|
+ remarks: null,
|
|
|
|
|
+ },
|
|
|
|
|
+ workKindList: [],//报工类型集合
|
|
|
|
|
+ productList: [],//产品集合
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : switch停用启用
|
|
|
|
|
+ * @date : 2023/4/10 14:39
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ onSwitchChange(param) {
|
|
|
|
|
+ if (param.flgValid) {
|
|
|
|
|
+ this.excuteNoParam(this.$service.workRecordService, this.$service.workRecordService.enable, [param.recordId])
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.excuteNoParam(this.$service.workRecordService, this.$service.workRecordService.disable, [param.recordId])
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 获取报工类型
|
|
|
|
|
+ * @date : 2023/4/10 11:37
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ getWorkKind() {
|
|
|
|
|
+ let params = {
|
|
|
|
|
+ kindType: this.$config.workKind.code,
|
|
|
|
|
+ }
|
|
|
|
|
+ this.excute(this.$service.commonService, this.$service.commonService.getDataKind, params, false).then(res => {//调用api查询方法
|
|
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
|
|
+ this.workKindList = res.data
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 生产工号失焦事件
|
|
|
|
|
+ * @date : 2023/4/10 15:03
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ onProdUserCode() {
|
|
|
|
|
+ if (this.formData.userCode) {
|
|
|
|
|
+ let params = {
|
|
|
|
|
+ ftyId: this.ftyId,
|
|
|
|
|
+ userCodeSame: this.formData.userCode
|
|
|
|
|
+ }
|
|
|
|
|
+ this.excute(this.$service.commonService, this.$service.commonService.getUser, params).then(res => {
|
|
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
|
|
+ if (res.data && res.data.length == 0) {
|
|
|
|
|
+ this.$Message.error(this.$t('W_136'))
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.formData.userId = res.data[0].userId
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$Message.error(res.message)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 选择工种
|
|
|
|
|
+ * @date : 2023/4/10 16:45
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ chooseJob(rows) {
|
|
|
|
|
+ if (rows && rows.length > 0) {
|
|
|
|
|
+ this.formData.jobName = rows[0].jobName
|
|
|
|
|
+ this.formData.workKind = rows[0].workKind
|
|
|
|
|
+ this.formData.workUnit = rows[0].workUnit
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 选择型号
|
|
|
|
|
+ * @date : 2023/3/23 13:36
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ chooseMould(rows) {
|
|
|
|
|
+ if (rows && rows.length > 0) {
|
|
|
|
|
+ this.formData.productCode = rows[0].modelCode
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 加班标识改变事件
|
|
|
|
|
+ * @date : 2023/4/11 13:20
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ flgOvertimeHandleChange(value) {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ this.formData.wordAmount = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 清空参数
|
|
|
|
|
+ * @date : 2022/12/21
|
|
|
|
|
+ * @author : 洪旭东
|
|
|
|
|
+ */
|
|
|
|
|
+ clear() {
|
|
|
|
|
+ this.formData = {
|
|
|
|
|
+ userId: null,//生产工号Id
|
|
|
|
|
+ userCode: null,//生产工号
|
|
|
|
|
+ jobId: null,//工种Id
|
|
|
|
|
+ pdtModelId: null,//产品型号id
|
|
|
|
|
+ productCode: null,//产品型号
|
|
|
|
|
+ workKind: null,//报工类型
|
|
|
|
|
+ workUnit: null,//报工单位
|
|
|
|
|
+ workQuantity: null,//报工数量
|
|
|
|
|
+ workTimes: null,//报工时间
|
|
|
|
|
+ flgOvertime: false,//加班标识
|
|
|
|
|
+ wordAmount: null,//报工金额
|
|
|
|
|
+ remarks: null,
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 给参数赋值
|
|
|
|
|
+ * @date : 2023/4/10 14:40
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ setParams() {
|
|
|
|
|
+ this.params = { ...this.formData }
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 保存数据
|
|
|
|
|
+ * @date : 2023/4/10 14:40
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ saveData() {
|
|
|
|
|
+ return this.modalParams.button === this.$config.formMode.add
|
|
|
|
|
+ ? this.excute(this.$service.workRecordService, this.$service.workRecordService.insert, this.params)
|
|
|
|
|
+ : this.excute(this.$service.workRecordService, this.$service.workRecordService.update, this.params)
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 新建
|
|
|
|
|
+ * @date : 2023/4/10 14:40
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ add() {
|
|
|
|
|
+ this.modalTitle = this.setTitle(this.$config.formMode.add, 'workRecord')
|
|
|
|
|
+ this.modalParams = {
|
|
|
|
|
+ button: this.$config.formMode.add,
|
|
|
|
|
+ }
|
|
|
|
|
+ //获取报工类型
|
|
|
|
|
+ this.getWorkKind()
|
|
|
|
|
+ this.editAddModal = true
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 编辑
|
|
|
|
|
+ * @date : 2023/4/10 14:40
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ edit(rows) {
|
|
|
|
|
+ this.modalParams = {
|
|
|
|
|
+ button: this.$config.formMode.edit,
|
|
|
|
|
+ closeFlag: true
|
|
|
|
|
+ }
|
|
|
|
|
+ this.modalTitle = this.setTitle(this.$config.formMode.edit, 'workRecord')
|
|
|
|
|
+ //获取报工类型
|
|
|
|
|
+ this.getWorkKind()
|
|
|
|
|
+ //根据id获取
|
|
|
|
|
+ this.detail(rows[0].recordId)
|
|
|
|
|
+ this.editAddModal = true
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 通过id查询
|
|
|
|
|
+ * @date : 2023/4/10 14:40
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ detail(id) {
|
|
|
|
|
+ this.excuteNoParam(this.$service.workRecordService, this.$service.workRecordService.selectById,
|
|
|
|
|
+ [id], false).then(res => {//调用api查询方法
|
|
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
|
|
+ this.formData = res.data
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 调用同一路由,需要使用这个方法去设置created的方法
|
|
|
|
|
+ * @author : 周兴
|
|
|
|
|
+ * @date : 2023/2/27 13:03
|
|
|
|
|
+ */
|
|
|
|
|
+ createdInit() {
|
|
|
|
|
+ // this.primaryKey = 'dataId' // 设置主键
|
|
|
|
|
+ // console.log('formType',this.formType)
|
|
|
|
|
+ },
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @desc : 获取数据
|
|
|
|
|
+ * @date : 2023/2/27 14:11
|
|
|
|
|
+ * @author : 寇珊珊
|
|
|
|
|
+ */
|
|
|
|
|
+ getData(params) {
|
|
|
|
|
+ return this.excute(this.$service.workRecordService, this.$service.workRecordService.search.url, params)
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ created() {
|
|
|
|
|
+ this.routeObjName = 'workRecord' // 设置路由名称
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|