From 74ead6f7bb66fe8d3f8db11b1cbadd92b57e28d1 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 04 十一月 2025 10:23:19 +0800
Subject: [PATCH] 解决铜杆报工的数据覆盖问题
---
pages/product/report/index.vue | 1363 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 886 insertions(+), 477 deletions(-)
diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue
index e12c3ec..34b249c 100644
--- a/pages/product/report/index.vue
+++ b/pages/product/report/index.vue
@@ -1,489 +1,898 @@
<template>
- <view class="body">
- <view class="top_code">
- <u-icon class="product-number-icon"></u-icon>缂栧彿锛�
- <text selectable>{{ dutyNo }}</text>
- <view class="top_code_edit">
- <u-icon class="product-edit-icon" @click="edit" v-show="true"></u-icon>
- </view>
- </view>
- <view class="main_view">
- <h3 class="main_top_title">宸ヤ綔鍙�</h3>
- <view class="main_item" @click="goPage(0)">
- <span style="color:#4F4F4F">宸ヤ綔绔�</span>
- <view>
- <span style="color:#333333;margin-right: 20rpx;">{{ query.workstationName }}</span>
- <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
- </view>
- </view>
- <view class="main_item" @click="goPage(1)">
- <span style="color:#4F4F4F">宸ュ簭</span>
- <view>
- <span style="color:#333333;margin-right: 20rpx;">{{ query.operationName }}</span>
- <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
- </view>
- </view>
- <view class="main_item" @click="goPage(2)">
- <span style="color:#4F4F4F">鏃ユ湡</span>
- <view>
- <span style="color:#333333;margin-right: 20rpx;">{{ query.updateTime }}</span>
- <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
- </view>
- </view>
- <view class="main_item" @click="goPage(3)">
- <span style="color:#4F4F4F">鐝</span>
- <view>
- <span style="color:#333333;margin-right: 20rpx;">{{ query.clazzType }}</span>
- <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
- </view>
- </view>
- <view class="main_item" @click="goPage(4)">
- <span style="color:#4F4F4F;width: 118rpx;">鐢熶骇浜哄憳</span>
- <view class="value2">
- <span style="color:#333333;margin-right: 20rpx;">{{ staffNameJoin }}</span>
- </view>
- <u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
- </view>
- <view class="main_item">
- <span style="color:#4F4F4F">鍒涘缓浜�</span>
- <view>
- <span style="color:#333333;">{{ query.createUser }}</span>
- </view>
- </view>
- <view class="btns">
- <u-button :custom-style="customStyle" @click="goPage(9)">鏉傚伐</u-button>
- <u-button :custom-style="customStyle" style="width: 150rpx;" @click="goPage(6)">
- <u-icon class="icon_history" size="26rpx" />
- <span style="line-height: 40rpx;">鍘嗗彶</span>
- </u-button>
- <u-button v-if="isShowButton" @click="submit" :custom-style="customStyle"
- style="background: #30AFFF;color: #fff;border: 0;width: 150rpx;">
- <u-icon class="icon_save" size="26rpx" />
- <span style="line-height: 40rpx;">淇濆瓨</span>
- </u-button>
- <u-button :custom-style="customStyle" style="background: #214DED;color: #fff;border: 0;width: 150rpx;"
- @click="goPage(8)">
- <u-icon class="icon_right" size="26rpx" />
- <span style="line-height: 40rpx;">鎶ュ伐</span></u-button>
- </view>
- </view>
- <u-calendar v-model="calendarShow" :mode="mode" @change="changeCalendar"></u-calendar>
- <!--宸ュ簭涓嬫媺妗�-->
- <u-select :default-value="[operationIndex]" v-model="selectShowOperation" :list="operationList"
- @confirm="confirmOperation"></u-select>
- <u-select v-model="selectShowClazzType" :list="clazzTypeList" @confirm="confirmClazzType"></u-select>
- <u-toast ref="uToast" />
- </view>
+ <!-- 鎶ュ伐 -->
+ <div class="page">
+ <u-form
+ :model="form"
+ ref="uForm"
+ :label-width="200"
+ :rules="rules"
+ :error-type="['toast']"
+ >
+ <u-form-item
+ label="杞﹂棿"
+ :border-bottom="false"
+ prop="work"
+ style="font-size: small"
+ >
+ <u-radio-group v-model="form.work" :disabled="subdisabled">
+ <u-radio name="dt"
+ ><span style="font-size: small">瀵间綋</span></u-radio
+ >
+ <u-radio name="tg"
+ ><span style="fongt-size: small">閾滄潌</span></u-radio
+ >
+ </u-radio-group>
+ </u-form-item>
+ <u-form-item
+ label="鎶ュ伐鍗曞彿"
+ :border-bottom="false"
+ prop="taskNo"
+ style="font-size: small"
+ >
+ <u-input
+ v-model="form.taskNo"
+ type="select"
+ placeholder="璇锋壂鎻忔姤宸ュ崟鍙�"
+ @click="open"
+ />
+ </u-form-item>
+ <u-form-item
+ label="宸ュ簭"
+ :border-bottom="false"
+ prop="name"
+ style="font-size: small"
+ >
+ <u-input
+ v-model="form.name"
+ type="select"
+ placeholder="璇锋壂鎻忔姤宸ュ崟鍙�"
+ />
+ </u-form-item>
+ <u-form-item
+ label="璁㈠崟鍙�"
+ :border-bottom="false"
+ prop="moOn"
+ style="font-size: small"
+ >
+ <u-input
+ v-model="form.moOn"
+ type="select"
+ placeholder="鐐瑰嚮閫夋嫨"
+ @click="openList"
+ />
+ </u-form-item>
+ <u-form-item
+ label="闆朵欢鍙�"
+ :border-bottom="false"
+ prop="partNo"
+ style="font-size: small"
+ >
+ <u-input v-model="form.partNo" placeholder="" disabled />
+ </u-form-item>
+ <u-form-item
+ label="闆朵欢鎻忚堪"
+ :border-bottom="false"
+ prop="partName"
+ style="font-size: small"
+ >
+ <u-input v-model="form.partName" placeholder="" disabled />
+ </u-form-item>
+ <!-- <u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="qtyRequired" style="font-size:small">
+ <u-input v-model="form.qtyRequired" placeholder="" disabled />
+ </u-form-item>
+ <u-form-item label="鍓╀綑鏁伴噺" :border-bottom="false" prop="Jianqtyfinished" style="font-size:small">
+ <u-input v-model="form.Jianqtyfinished" placeholder="" disabled />
+ </u-form-item> -->
+ <u-form-item
+ label="鎶曟枡浜ч噺"
+ :border-bottom="false"
+ prop="FeedInputProductionVolume"
+ style="font-size: small"
+ >
+ <u-input
+ v-model="form.FeedInputProductionVolume"
+ type="select"
+ placeholder="璇峰~鍐欐姇鏂欎骇閲�"
+ @click="FeedInputProductionVolumeCLick"
+ />
+ </u-form-item>
+ <u-form-item
+ label="姹囨姤浜ч噺"
+ :border-bottom="false"
+ prop="reportProductionVolume"
+ style="font-size: small"
+ >
+ <u-input
+ v-model="form.reportProductionVolume"
+ type="select"
+ placeholder="璇峰~鍐欐眹鎶ヤ骇閲�"
+ @click="reportProductionVolumeCLick"
+ />
+ </u-form-item>
+ <u-form-item
+ label="搴撲綅"
+ :border-bottom="false"
+ prop="proposedLocation"
+ style="font-size: small"
+ >
+ <u-input v-model="form.proposedLocation" placeholder="" disabled />
+ </u-form-item>
+ <!-- <u-form-item label="鎶ュ伐绫诲瀷" label-width="90px" prop="productType" style="font-size:small">
+ <u-radio-group v-model="form.productType" :disabled="subdisabled">
+ <u-radio name="dep"><span style="font-size:small">涓嬫満鎶ュ伐</span></u-radio>
+ <u-radio name="ndep"><span style="font-size:small">鏈笅鏈烘姤宸�</span></u-radio>
+ </u-radio-group>
+ </u-form-item> -->
+ <!-- <u-form-item label="鎺ユ敹闆朵欢" label-width="90px" prop="receive" style="font-size:small">
+ <u-radio-group v-model="form.receive" :disabled="subdisabled">
+ <u-radio name="mo"><span style="font-size:small">杞﹂棿璁㈠崟</span></u-radio>
+ <u-radio name="part"><span style="font-size:small">鏇夸唬闆朵欢</span></u-radio>
+ </u-radio-group>
+ </u-form-item> -->
+ <u-form-item
+ label="鐗╂枡"
+ label-width="90px"
+ prop="materialCost"
+ style="font-size: small"
+ >
+ <u-radio-group v-model="form.materialCost" :disabled="true">
+ <u-radio name="鍊掑啿"
+ ><span style="font-size: small">鍊掑啿</span></u-radio
+ >
+ <u-radio name="鎶曟枡"
+ ><span style="font-size: small">鎶曟枡</span></u-radio
+ >
+ </u-radio-group>
+ </u-form-item>
+ <!-- <u-form-item label="绠�鍖栫墿鏂欐鏌�" label-width="90px" prop="simplifyMaterials" style="font-size:small">
+ <u-radio-group v-model="form.simplifyMaterials" :disabled="subdisabled || simplifyDisabled"
+ @change="radioChange">
+ <u-radio name="true"><span style="font-size:small">鏄�</span></u-radio>
+ <u-radio name="false"><span style="font-size:small">鍚�</span></u-radio>
+ </u-radio-group>
+ </u-form-item> -->
+ <u-form-item
+ label="鎶ュ伐鏂瑰紡"
+ label-width="90px"
+ prop="status"
+ style="font-size: small"
+ >
+ <u-radio-group
+ v-model="form.status"
+ :disabled="subdisabled"
+ @change="handleReportTypeChange"
+ >
+ <u-radio name="false"
+ ><span style="font-size: small">鎸夌彮缁勬姤宸�</span></u-radio
+ >
+ <u-radio name="true"
+ ><span style="font-size: small">鎸変汉鍛樻姤宸�</span></u-radio
+ >
+ </u-radio-group>
+ </u-form-item>
+ <u-form-item
+ label="浜哄憳鍚嶇О"
+ label-width="90px"
+ :border-bottom="false"
+ prop="Persons"
+ style="font-size: small"
+ >
+ <u-input
+ v-model="form.Persons"
+ type="select"
+ placeholder="璇烽�夋嫨"
+ @click="openselectedPersons"
+ :disabled="!canSelectPerson || subdisabled"
+ />
+ </u-form-item>
+ <u-form-item
+ label="浜у嚭鍒楄〃"
+ :border-bottom="false"
+ style="font-size: small"
+ ></u-form-item>
+ </u-form>
+ <view class="wrap">
+ <scroll-view class="packing-registration-scroll-list" scroll-y="true">
+ <u-cell-group
+ class="packing-registration-scroll-list-group"
+ :border="false"
+ >
+ <view
+ class="content"
+ v-for="(item, index) in InventoryReceiptList"
+ :key="index"
+ :index="index"
+ @click="cancelReport(item, index)"
+ >
+ <view class="content-header">
+ <view class="content-header-title" style="font-size: small">{{
+ index + 1
+ }}</view>
+ </view>
+ <view class="content-body">
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">鎵瑰彿锛�</view>
+ </view>
+ <view class="_content">
+ {{ item.outBatchNo }}
+ </view>
+ </view>
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">鏁伴噺锛�</view>
+ </view>
+ <view class="_content">
+ {{ item.netWeight }}
+ </view>
+ </view>
+ <view class="row-list">
+ <view class="_label">
+ <view class="_label-name">搴撲綅锛�</view>
+ </view>
+ <view class="_content">
+ {{ item.proposedLocation }}
+ </view>
+ </view>
+ </view>
+ </view>
+ </u-cell-group>
+ </scroll-view>
+ </view>
+ <!-- 濉啓鎶ュ伐鍗� -->
+ <modalBg ref="modalBg" :confirm="confirm">
+ <u-field
+ v-model="form.taskNo"
+ label="鎶ュ伐鍗曞彿"
+ placeholder="璇疯緭鍏�"
+ :border-bottom="false"
+ style="font-size: small"
+ >
+ </u-field>
+ </modalBg>
+ <saveForm
+ ref="saveForm"
+ :operationTaskList="this.form"
+ :dutyId="dutyId"
+ @update="handleUpdate"
+ />
+ <u-modal
+ width="720rpx"
+ v-model="showModal"
+ title=""
+ :show-cancel-button="true"
+ :show-confirm-button="true"
+ @confirm="confirmModle"
+ @cancel="cancelModle"
+ >
+ <view class="popup-content">
+ <view class="packing-registration-param">
+ <view class="packing-registration-param-view">
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">鎵瑰彿</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <text class="item-one">{{ detailedList.outBatchNo }}</text>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">闆朵欢鍙�</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <text class="item-one">{{ detailedList.partNo }}</text>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">闆朵欢鎻忚堪</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <span class="item-one">{{ detailedList.partName }}</span>
+ </view>
+ </view>
+ <view class="packing-registration-param-item param-extra">
+ <view class="packing-registration-param-item-left">
+ <text class="item-one">鍙栨秷鎺ユ敹鏁伴噺</text>
+ </view>
+ <view class="packing-registration-param-item-right">
+ <span class="item-one">{{ detailedList.netWeight }}</span>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </u-modal>
+ <u-modal
+ v-model="personShowModal"
+ title=""
+ :show-cancel-button="true"
+ :show-confirm-button="true"
+ @confirm="confirmSelection"
+ @cancel="cancelSelection"
+ >
+ <view class="popup-content">
+ <scroll-view
+ scroll-y="true"
+ style="
+ height: 100%;
+ transform: translateZ(0);
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ "
+ >
+ <view class="popup-header">
+ <checkbox-group @change="checkboxChange">
+ <label
+ class="checkbox-item"
+ v-for="(item, index) in selectedPersons"
+ :key="index"
+ >
+ <checkbox :value="item.staffId" :checked="item.checked" />
+ <text class="label">{{ item.staffName }}</text>
+ </label>
+ </checkbox-group>
+ </view>
+ </scroll-view>
+ </view>
+ </u-modal>
+ <scan></scan>
+ </div>
</template>
<script>
-import {
- dateFormat
-} from "@/utils/date.js";
-import UIcon from "../../../uview-ui/components/u-icon/u-icon.vue";
+import modalBg from "@/components/modal/modal-bg.vue";
+import saveForm from "./components/saveForm.vue";
+import scan from "@/components/scan/scan.vue";
export default {
- components: {
- UIcon
- },
- data() {
- return {
- customStyle: {
- 'background': '#FFFFFF',
- 'border-radius': '8rpx',
- 'border': '1px solid #D2D2D2',
- 'width': '121rpx',
- 'height': '65rpx',
- 'font-weight': 500,
- 'font-size': '28rpx',
- 'color': '#333333',
- 'pading': '0 30rpx'
- },
- calendarShow: false,
- selectShowOperation: false,
- selectShowClazzType: false,
- mode: 'date',
- id: '',
- dutyNo: '', // 缂栧彿
- query: {
- updateTime: dateFormat(
- new Date(), 'yyyy-MM-dd'),
- workstationName: '', // 宸ヤ綔绔欏悕绉�
- workstationId: '', // 宸ヤ綔绔檌d
- clazzType: '', // 鐝
- productionUser: '',
- operationId: '', // 宸ュ簭id
- operationName: '', // 宸ュ簭鍚嶇О
- userList: [],
- createUser: ''
- },
- toId: '',
- operationList: [],
- clazzTypeList: [{
- label: '鐧界彮'
- },
- {
- label: '鏅氱彮'
- },
- ],
- workstation: '',
- staffNameJoin: '',
- operationIndex: '',
- isEdit: false, // 鏄惁淇敼
- isShowButton: false,
- workCenter: '',
- addOrEdit: '',
- info: {},
- firstOperationId: null,
- lastOperationId: null,
- }
- },
- onShow() {
- // this.getLastDutyRecordFun()
- },
- onLoad() {
- uni.$on('dailyListInfo', (info) => {
- this.dutyNo = info.dutyNo
- this.id = info.id
- this.query.createUser = this.vuex_username
- this.query.clazzType = info.clazzType
- this.query.workstationId = info.workstationId
- this.query.workstationName = info.workstationName
- this.query.productionUser = info.productionUser.split(',').reverse()
- this.query.userList = info.productionUserList.split(',')
- this.query.operationId = info.operationId
- this.getOperation()
- })
-
- uni.$on('returnData', (data) => {
- // 涓存椂瀛樺偍宸ヤ綔绔欑殑鏁版嵁
- this.workstation = data
- // 缁欓〉闈㈠伐浣滅珯璧嬪��
- this.query.workstationName = '(' + data.workCenter + ')' + data.name
- this.query.workstationId = data.id
- // 娓呯┖宸ュ簭閫夐」
- this.query.operationName = ''
- this.query.operationId = ''
- this.operationIndex = 0
- this.getOperationTaskFun(data.workCenter)
- })
- uni.$on('checkedList', (data) => {
- let staffNameList = []
- let staffNoList = []
- data.forEach(i => {
- staffNameList.push(i.staffName)
- staffNoList.push(i.staffNo)
- })
- this.query.productionUser = staffNameList
- this.query.userList = staffNoList
+ components: {
+ modalBg,
+ saveForm,
+ scan,
+ },
+ data() {
+ return {
+ simplifyDisabled: false,
+ // checkboxList: [
+ // {
+ // name: "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�",
+ // value: false,
+ // disabled: false,
+ // },
+ // {
+ // name: "绠�鍖栫墿鏂欐鏌�",
+ // value: false,
+ // disabled: false,
+ // },
+ // ],
+ InventoryReceiptList: [],
+ selectedPersons: [],
+ form: {
+ workstationId: "",
+ work: "",
+ taskNo: "",
+ name: "",
+ moOn: "",
+ partNo: "",
+ partName: "",
+ // qtyRequired: "",
+ // Jianqtyfinished: "",
+ FeedInputProductionVolume: null, //鎶曟枡浜ч噺
+ reportProductionVolume: null, //姹囨姤浜ч噺
+ proposedLocation: "",
+ productType: "dep",
+ receive: "mo",
+ materialCost: "",
+ // autoReport: false,
+ simplifyMaterials: "false",
+ status: "false",
+ Persons: "",
+ productStaffIds: [],
+ productStaffs: [],
+ },
+ reportProductionVolumelist: {},
+ FeedInputProductionVolumeList: [], //鎶曟枡浜ч噺
+ personList: [],
+ canSelectPerson: false,
+ rules: {
+ work: [
+ {
+ required: true,
+ message: "璇烽�夋嫨杞﹂棿",
+ trigger: ["change"],
+ },
+ ],
+ taskNo: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鎶ュ伐鍗曞彿",
+ trigger: ["change", "blur"],
+ },
+ ],
+ name: [
+ {
+ required: true,
+ message: "璇烽�夋嫨宸ュ簭",
+ trigger: ["change", "blur"],
+ },
+ ],
+ moOn: [
+ {
+ required: true,
+ message: "璇烽�夋嫨璁㈠崟鍙�",
+ trigger: ["change", "blur"],
+ },
+ ],
+ productType: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鎶ュ伐绫诲瀷",
+ trigger: ["change"],
+ },
+ ],
+ receive: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷",
+ trigger: ["change"],
+ },
+ ],
+ status: [
+ {
+ required: true,
+ message: "璇烽�夋嫨鎶ュ伐鏂瑰紡",
+ trigger: ["change"],
+ },
+ ],
+ Persons: [
+ {
+ required: true,
+ message: "璇烽�夋嫨浜哄憳",
+ trigger: ["change"],
+ },
+ ],
+ reportProductionVolume: [
+ {
+ required: true,
+ message: "璇疯緭鍏ユ眹鎶ヤ骇閲�",
+ trigger: ["change"],
+ },
+ ],
+ // FeedInputProductionVolume: [{
+ // required: true,
+ // message: "璇疯緭鍏ユ姇鏂欎骇閲�",
+ // trigger: ["change"],
+ // }, ],
+ },
+ showSave: false,
+ operationTaskId: "",
+ subdisabled: false,
+ codeInfoId: "",
+ detailedList: {},
+ showModal: false,
+ personShowModal: false,
+ checkboxList: [],
+ index: 0,
+ };
+ },
+ // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
+ onNavigationBarButtonTap() {
+ this.$refs.uForm.validate((valid) => {
+ if (valid) {
+ uni.showLoading({
+ mask: true,
+ title: "鍔犺浇涓�",
+ });
+ this.form.operationTaskId = this.form.id;
+ this.reportProductionVolumelist.operationTaskId = this.form.id;
+ this.reportProductionVolumelist.status = this.form.status;
+ this.reportProductionVolumelist.Persons = this.form.Persons;
+ this.reportProductionVolumelist.productStaffIds =
+ this.form.productStaffIds;
+ this.reportProductionVolumelist.productStaffs = this.form.productStaffs;
+ this.reportProductionVolumelist.productInputList =
+ Object.keys(this.FeedInputProductionVolumeList).length === 0
+ ? null
+ : this.FeedInputProductionVolumeList;
+ this.reportProductionVolumelist.dutyRecordId = this.dutyId;
+ this.form.productOutputList = []; // 鍒涘缓涓�涓┖鏁扮粍
+ this.form.productOutputList.push(this.reportProductionVolumelist); // 鍚戞暟缁勪腑娣诲姞鍏冪礌
+ console.log("this.form", this.form);
+ this.$u.api.workReporting
+ .submitPDA(this.form)
+ .then((res) => {
+ this.subdisabled = true;
+ this.$u.toast("鎻愪氦鎴愬姛");
+ this.InventoryReceiptList.unshift(this.form.productOutputList[0]);
+ (this.reportProductionVolumelist = {}),
+ (this.FeedInputProductionVolumeList = []), //鎶曟枡浜ч噺
+ (this.form.FeedInputProductionVolume = null), //鎶曟枡浜ч噺
+ (this.form.reportProductionVolume = null), //姹囨姤浜ч噺
+ console.log(
+ "this.InventoryReceiptList",
+ this.InventoryReceiptList
+ );
+ })
+ .finally(() => {});
+ } else {
+ // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
+ const errors = this.$refs.uForm.getError();
+ }
+ });
+ },
+ onReady() {
+ this.$refs.uForm.setRules(this.rules);
+ },
+ onShow() {
+ let that = this;
+ uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+ uni.$on("scan", function (data) {
+ //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+ if (data.code) {
+ let codeInfo = JSON.parse(data.code);
+ if (codeInfo.moOn) {
+ that.codeInfoId = codeInfo.id;
+ // 鎵弿鎶ュ伐鍗曚簩缁寸爜
+ that.saveForm(codeInfo);
+ // that.getHandelList();
+ }
+ if (codeInfo.WC) {
+ // 鎵弿鎶ュ伐鍗曚簩缁寸爜
+ that.CopperReportingWork(codeInfo);
+ }
+ // if (codeInfo.BN) {
+ // // 鎵弿鎶ュ伐鍗曚簩缁寸爜
+ // that.$refs.saveForm.saveForm(codeInfo);
+ // }
+ }
+ });
+ },
+ watch: {
+ "form.taskNo": function (newVal, oldVal) {
+ this.subdisabled = false;
+ },
+ "form.status"(newVal) {
+ this.selectedPersons = this.selectedPersons.map((item) => ({
+ ...item,
+ checked: newVal === "false",
+ }));
+ },
+ },
+ methods: {
+ // 鎶曟枡浜ч噺
+ FeedInputProductionVolumeCLick() {
+ if (this.form.taskNo === "") {
+ uni.showToast({
+ title: "璇峰厛鎵爜",
+ icon: "none",
+ });
+ return;
+ }
+ if (this.simplifyDisabled) {
+ uni.showToast({
+ title: "鍊掑啿鏃犻渶鎶曟枡",
+ icon: "none",
+ });
+ return;
+ }
+ uni.navigateTo({
+ url:
+ "/pages/product/report/seachPersonnelNo?moOn=" +
+ this.form.moOn +
+ "&workstationId=" +
+ this.form.workstationId,
+ });
+ },
+ // 姹囨姤浜ч噺
+ reportProductionVolumeCLick() {
+ if (this.form.taskNo === "") {
+ uni.showToast({
+ title: "璇峰厛鎵爜",
+ icon: "none",
+ });
+ return;
+ }
+ if (this.form.work === "tg") {
+ uni.showToast({
+ title: "閾滄潌鎶ュ伐鏃犻渶濉啓姹囨姤浜ч噺锛岃鎵爜",
+ icon: "none",
+ duration: 2000,
});
- },
- onReady() {
- // 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤
- this.getLastDutyRecordFun()
- },
- methods: {
- isNotOperationName(workCenter, operationName, workCenterTwo) {
- // 鍒ゆ柇鏄惁涓鸿宸ヤ綔绔�
- if (workCenter.includes(workCenterTwo)) {
- // 鍒ゆ柇鏄惁鍖呭惈宸ュ簭鍚嶇О
- if (!operationName.includes(this.query.operationName)) {
- return true
- } else {
- return false
- }
- } else {
- return false
- }
- },
- // 鍒ゆ柇宸ュ崟鏄惁绛変簬,鍚屾椂鍒ゆ柇鏄惁涓虹涓�閬撳伐搴�
- isFirstOperationId(workCenter, workCenterTwo) {
- if (workCenter.includes(workCenterTwo)) {
- // 鍒ゆ柇鏄惁涓嶄负绗竴閬撳伐搴�
- if (this.query.operationId !== this.firstOperationId) {
- return true
- } else {
- return false
- }
- } else {
- return false
- }
- },
- // 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤
- getLastDutyRecordFun() {
- this.$u.api.dailyPaper.getLastDutyRecord().then(res => {
- if (res.code === 0) {
- this.dutyNo = res.data.dutyNo
- this.id = res.data.id
- this.query.createUser = this.vuex_username
- this.query.clazzType = res.data.clazzType
- this.query.workstationId = res.data.workstationId
- this.query.workstationName = res.data.workstationName
- this.query.productionUser = res.data.productionUser.split(',').reverse()
- this.query.userList = res.data.productionUserList.split(',')
- this.query.operationId = res.data.operationId
- this.getOperation()
- } else {
- this.$u.toast(res.msg)
- }
- })
- },
- // 娓呯┖閫昏緫
- onNavigationBarButtonTap(e) {
- this.isEdit = true
- this.isShowButton = true
- this.addOrEdit = 'add'
- this.query.productionUser = ''
- this.query.productionUserList = []
- this.staffNameJoin = ''
- this.query.updateTime = ''
- },
- edit() {
- this.isEdit = !this.isEdit
- this.isShowButton = this.isEdit
- this.addOrEdit = 'edit'
- },
- goPage(index) {
- switch (index) {
- // 璺宠浆鍒板巻鍙查〉闈�
- case 6:
- uni.navigateTo({
- url: '/pages/daily/daily/daily-list'
- })
- break;
- // 璺宠浆鍒版姤宸ラ〉闈�
- case 8:
- if (this.isEdit) {
- this.$refs.uToast.show({
- title: '璇峰厛淇濆瓨淇敼',
- type: 'warning '
- })
- return
- }
+ return
+ }
+ // 澶勭悊鎻愪氦閫昏緫
+ this.$u.api.workReporting
+ .operationTask({
+ id: this.form.id,
+ })
+ .then((res) => {
+ res.data.name = this.form.name;
+ this.$refs.saveForm.open(res);
+ uni.hideLoading();
+ });
+ },
+ // 澶勭悊鎶ュ伐鏂瑰紡鍙樻洿
+ handleReportTypeChange() {
+ // 鍒囨崲鎶ュ伐鏂瑰紡鏃舵竻绌轰汉鍛樺悕绉�
+ this.form.Persons = "";
+ this.form.productStaffs = [];
+ this.form.productStaffIds = [];
+ },
+ // 浜哄憳鍚嶇О
+ openselectedPersons() {
+ this.personShowModal = true;
+ },
+ // 澶嶉�夋鍙樺寲浜嬩欢
+ checkboxChange(e) {
+ console.log("e", e);
+ const values = e.target.value || [];
+ if (this.form.status === "true") {
+ // 鍗曢�夋ā寮忥紝鍙厑璁搁�夋嫨涓�涓汉
+ const previouslySelected = this.selectedPersons.find(
+ (item) => item.checked
+ );
+ const newlySelected =
+ values.length > 0 ? values[values.length - 1] : null;
+ if (
+ previouslySelected &&
+ newlySelected &&
+ previouslySelected.staffId !== newlySelected
+ ) {
+ // 宸叉湁閫変腑椤逛笖閫夋嫨浜嗘柊鐨勯」锛屾彁绀哄彧鑳介�夋嫨涓�涓汉
+ this.$u.toast("鎸変汉鍛樻姤宸ユ椂鍙兘閫夋嫨涓�浣嶄汉鍛�");
+ // 淇濇寔鍘熼�夋嫨
+ this.selectedPersons = this.selectedPersons.map((item) => ({
+ ...item,
+ checked: item.staffId === previouslySelected.staffId,
+ }));
+ } else {
+ // 棣栨閫夋嫨鎴栧彇娑堥�夋嫨
+ this.selectedPersons = this.selectedPersons.map((item) => ({
+ ...item,
+ checked: newlySelected ? item.staffId === newlySelected : false,
+ }));
+ }
+ } else {
+ // 澶氶�夋ā寮�
+ this.selectedPersons = this.selectedPersons.map((item) => ({
+ ...item,
+ checked: values.includes(item.staffId),
+ }));
+ }
+ },
+ // 纭閫夋嫨
+ confirmSelection() {
+ const selected = this.selectedPersons.filter((item) => item.checked);
+ // 鏍规嵁鎶ュ伐鏂瑰紡璁剧疆浜哄憳鍚嶇О
+ if (this.form.status === "true" && selected.length > 0) {
+ this.form.Persons = selected[0].staffName;
+ } else {
+ this.form.Persons = selected.map((item) => item.staffName).join(",");
+ }
+ this.form.productStaffs = selected.map((item) => item.staffNo);
+ this.form.productStaffIds = selected.map((item) => item.staffId);
+ },
+ cancelSelection() {},
+ // 閾滄潌鎶ュ伐
+ CopperReportingWork(val) {
+ if (this.form.work === "dt") {
+ uni.showToast({
+ title: "閾滄潌浜岀淮鐮佹姤宸ヨ溅闂撮渶閫夋嫨閾滄潌",
+ icon: "none",
+ });
+ return;
+ }
+ // 淇濆瓨鍘熷鐨剅eportProductionVolume楠岃瘉瑙勫垯
+ const originalReportProductionVolumeRule =
+ this.rules.reportProductionVolume;
- let workCenter = this.query.workstationName.split(')')[0].substring(1)
- let operation = this.query.workstationName.split(')')[1]
- console.log(workCenter, operation, this.firstOperationId, this.query.operationId, this.query)
- if (workCenter == "TM-01" || workCenter == "JG-01" || workCenter == "YB-04" || this.isFirstOperationId('DY-01,GY-01,YB-01,YB-02', workCenter) || this.isNotOperationName('ZZ-02', '浜岃,娉ㄦ补', workCenter)) {
- let item = {
- workstationId: this.query.workstationId,
- clazzType: this.query.clazzType,
- dutyNo: this.dutyNo,
- userStaffNo: this.query.userList,
- workstationName: this.query.workstationName,
- staffNameJoin: this.staffNameJoin,
- workCenter: workCenter,
- operationId: this.query.operationId,
- firstOperationId: this.firstOperationId,
- lastOperationId: this.lastOperationId
- }
- uni.navigateTo({
- url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON
- .stringify(item))
- })
- } else if (this.query.workstationName.includes("TX-02") && !this.query.operationName.includes("鍙犺")) {
- let item = {
- workstationId: this.query.workstationId,
- clazzType: this.query.clazzType,
- dutyNo: this.dutyNo,
- userStaffNo: this.query.userList,
- workstationName: this.query.workstationName,
- staffNameJoin: this.staffNameJoin,
- workCenter: "TX-02",
- operationId: this.query.operationId,
- firstOperationId: this.firstOperationId,
- lastOperationId: this.lastOperationId
- }
- uni.navigateTo({
- url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON
- .stringify(item))
- })
- } else {
- uni.navigateTo({
- url: `/pages/daily/common/work-order-list?workstationId=${this.query.workstationId}&toId=${this.toId}&clazzType=${this.query.clazzType}&dutyNo=${this.dutyNo}&userStaffNo=${this.query.userList}&workstationName=${this.query.workstationName}&staffNameJoin=${this.staffNameJoin}`
- })
- }
- break;
- // 璺宠浆鍒版潅宸ラ〉闈�
- case 9:
- if (this.isEdit) {
- this.$refs.uToast.show({
- title: '璇峰厛淇濆瓨淇敼',
- type: 'warning '
- })
- return
- }
- uni.navigateTo({
- url: `/pages/daily/handyman/handyman?dutyNo=${this.query.dutyNo}&updateTime=${this.query.updateTime}&userList=${this.query.productionUser}&staffList=${this.query.userList}`
- })
- break;
- }
- if (!this.isEdit) {
- return
- } else {
- switch (index) {
- case 0:
- uni.navigateTo({
- url: '/pages/daily/workstation/index'
- })
- break;
- case 1:
- if (!this.query.workstationName) {
- this.$refs.uToast.show({
- title: '璇峰厛閫夋嫨宸ヤ綔绔�',
- type: 'warning '
- })
- } else {
- this.selectShowOperation = true;
- }
- break;
- case 2:
- this.calendarShow = true;
- break;
- case 3:
- this.selectShowClazzType = true;
- break;
- case 4:
- let staffList = this.query.productionUser
- let staffNoList = this.query.userList
- const list = []
- for (const i in staffList) {
- const obj = {
- staffName: staffList[i],
- staffNo: staffNoList[i]
- }
- list.push(obj)
- }
- uni.navigateTo({
- url: '/pages/daily/production-person/production-person?list=' + encodeURIComponent(
- JSON.stringify(list))
- })
- break;
- }
- }
- },
- // 鎻愪氦鏃ユ姤淇敼
- submit() {
- if (!this.query.workstationId) {
- this.$u.toast('璇烽�夋嫨宸ヤ綔绔�')
- return
- } else if (!this.query.operationId) {
- this.$u.toast('璇烽�夋嫨宸ュ簭')
- return
- } else if (!this.query.clazzType) {
- this.$u.toast('璇烽�夋嫨鐝')
- return
- } else if (!this.query.productionUser) {
- this.$u.toast('璇烽�夋嫨鐢熶骇浜哄憳')
- return
- } else if (!this.query.updateTime) {
- this.$u.toast('璇烽�夋嫨鏃堕棿')
- return
- }
+ // 涓存椂绉婚櫎reportProductionVolume鐨勯獙璇佽鍒�
+ delete this.rules.reportProductionVolume;
- let params = JSON.parse(JSON.stringify(this.query))
- this.$delete(params, 'productionUser')
- this.$delete(params, 'productionUserList')
- params.updateTime = params.updateTime + ' 00:00:00'
- params.id = null
- if (this.addOrEdit === 'add') {
- this.$u.api.dailyPaper.addDailyPaper(params).then(res => {
- if (res.code === 0) {
- // this.getLastDutyRecordFun()
- this.query.createUser = this.vuex_username
- this.$u.toast('淇濆瓨鎴愬姛')
- this.isShowButton = false
- this.getLastDutyRecordFun()
- }
- })
- } else {
- params.id = this.id
- this.$u.api.dailyPaper.editDailyPaper(params).then(res => {
- if (res.code === 0) {
- // this.getLastDutyRecordFun()
- this.$u.toast('淇敼鎴愬姛')
- this.isShowButton = false
- }
- })
- }
- this.isEdit = false
- },
- changeCalendar(e) {
- this.query.updateTime = e.result;
- },
- confirmOperation(e) {
- this.query.operationName = e[0].label
- this.query.operationId = e[0].value
- const index = this.operationList.findIndex(item => item.value === this.query.operationId)
- if (index > -1) {
- this.operationIndex = index
- this.toId = this.operationList[index].value
- }
- },
- confirmClazzType(e) {
- this.query.clazzType = e[0].label
- },
- // 鏌ヨ宸ヤ綔绔�
- getOperation() {
- this.$u.api.dailyPaper.getWorkstation().then(res => {
- if (res.code === 0) {
- const index = res.data.findIndex(item => item.name === this.query.workstationName)
- if (index > -1) {
- this.workCenter = res.data[index].workCenter
- }
- this.query.workstationName = '(' + this.workCenter + ')' + this.query.workstationName
- this.getOperationTaskFun(this.workCenter, this.query.operationId)
- }
- })
- },
- getOperationTaskFun(id, operationId) {
- this.operationList = []
- const params = {
- workCenter: id,
- current: 1,
- size: -1
- }
- // 鏌ヨ宸ュ簭鍒楄〃
- this.$u.api.dailyPaper.getOperation(params).then(res => {
- if (res.code === 0) {
- if (res.data.records.length > 0) {
- res.data.records.forEach(i => {
- const obj = Object.assign({
- label: i.name,
- value: i.id,
- })
- this.operationList.push(obj)
- })
- if (operationId) {
- const index = this.operationList.findIndex(item => item.value === operationId)
- if (index > -1) {
- this.operationIndex = index
- this.query.operationName = this.operationList[index].label
- this.toId = this.operationList[index].value
- }
- }
- this.firstOperationId = this.operationList[0].value
- this.lastOperationId = this.operationList[this.operationList.length - 1].value
- }
- }
- })
- }
- },
- watch: {
- 'query.productionUser': {
- handler(newName, oldName) {
- if (this.query.productionUser.length > 0) {
- this.staffNameJoin = this.query.productionUser.join()
- } else {
- this.staffNameJoin = ''
- }
- },
- immediate: true,
- deep: true
- }
- }
-}
+ // 杩涜琛ㄥ崟楠岃瘉
+ this.$refs.uForm.validate((valid) => {
+ // 鏃犺楠岃瘉鎴愬姛涓庡惁锛岄兘鎭㈠鍘熷瑙勫垯
+ this.rules.reportProductionVolume = originalReportProductionVolumeRule;
+
+ if (valid) {
+ const copperList = {};
+ copperList.outBatchNo = val.BN;
+ copperList.partNo = val.PN;
+ copperList.weighingClerk = val.WC;
+ copperList.executiveStandard = val.ES;
+ copperList.netWeight = val.NW;
+ copperList.specificationType = val.ST;
+ copperList.reelWeight= val.TR;
+ copperList.grossWeight = val.TW;
+ copperList.operationTaskId = this.form.id;
+ copperList.status = this.form.status;
+ copperList.Persons = this.form.Persons;
+ copperList.productStaffIds = this.form.productStaffIds;
+ copperList.productStaffs = this.form.productStaffs;
+ copperList.dutyRecordId = this.dutyId;
+ copperList.proposedLocation = this.form.proposedLocation;
+ this.form.productOutputList = [];
+ this.form.operationTaskId = this.form.id;
+ this.form.dutyRecordId = this.dutyId;
+ this.form.productOutputList.push(copperList);
+ console.log("this.form", this.form);
+ this.$u.api.workReporting.submitPDA(this.form).then((res) => {
+ this.subdisabled = true;
+ console.log("val", val);
+ // this.form.outBatchNo = val.BN;
+ // this.form.netWeight = val.NW;
+ console.log("this.form", this.form);
+
+ this.InventoryReceiptList.unshift(this.form.productOutputList[0]);
+ console.log("this.InventoryReceiptList", this.InventoryReceiptList);
+
+ // this.getHandelList();
+ this.$u.toast("鎶ュ伐鎴愬姛");
+ });
+ } else {
+ // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
+ const errors = this.$refs.uForm.getError();
+ }
+ });
+ },
+ // 鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�
+ radioChange() {
+ // 澶勭悊鍗曢�夋鍙樺寲浜嬩欢
+ },
+ // 鑾峰彇浜哄憳鍒楄〃
+ getPersonList(dutyId) {
+ console.log("111111", dutyId);
+ try {
+ this.$u.api.workReporting
+ .getPersonByDutyRecordId({
+ id: dutyId,
+ })
+ .then((res) => {
+ this.selectedPersons = res.data.map((item) => ({
+ ...item,
+ checked: this.form.status === "false",
+ }));
+ })
+ .catch((err) => {
+ console.log(err);
+ });
+ } catch (err) {
+ console.log(err);
+ }
+ },
+
+ confirmModle() {
+ console.log("鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�", this.detailedList);
+ // 澶勭悊纭閫昏緫
+ this.$u.api.cancelReporting
+ .cancelDTAOfWorkApplication({
+ outBatchNo: this.detailedList.outBatchNo,
+ outputId: this.detailedList.id,
+ })
+ .then((res) => {
+ console.log("res", res);
+ this.InventoryReceiptList.splice(this.index, 1);
+ this.showModal = false;
+ // this.getHandelList();
+ this.$u.toast("鍙栨秷鎶ュ伐鎴愬姛");
+ });
+ },
+ cancelModle() {
+ this.showModal = false; // 鍏抽棴寮圭獥
+ },
+ // 鍙栨秷鎶ュ伐
+ cancelReport(item, index) {
+ let that = this;
+ that.index = index;
+ uni.showModal({
+ title: "鎻愮ず",
+ content: "鏄惁纭鍙栨秷鎵规" + item.outBatchNo + "鐨勬姤宸�",
+ success: function (res) {
+ if (res.confirm) {
+ that.detailedList = item;
+ that.showModal = true;
+ } else if (res.cancel) {
+ return;
+ }
+ },
+ });
+ },
+ // getHandelList() {
+ // this.$u.api.workReporting
+ // .getProductMainV1({
+ // current: 1,
+ // size: -1,
+ // id: this.codeInfoId,
+ // })
+ // .then((res) => {
+ // this.InventoryReceiptList = res.data.productOutputList;
+ // });
+ // },
+ // 澶氶�夊鐞�
+ // changeCheckbox(val) {
+ // if (val.name === "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�") {
+ // this.form.autoReport = val.value;
+ // }
+ // if (val.name === "绠�鍖栫墿鏂欐鏌�") {
+ // this.form.simplifyMaterials = val.value;
+ // }
+ // },
+ handleUpdate(val) {
+ this.reportProductionVolumelist = val;
+ this.form.reportProductionVolume = val.outBatchNo;
+ // this.subdisabled = true;
+ // this.getHandelList();
+ // this.InventoryReceiptList.unshift(val);
+ },
+ // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
+ open() {
+ this.$refs.modalBg.open();
+ },
+ // 寮规淇濆瓨
+ confirm() {},
+ // 閫夋嫨璁㈠崟鍙�
+ openList() {
+ if (this.form.taskNo === "") {
+ uni.showToast({
+ title: "璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�",
+ icon: "none",
+ });
+ return;
+ }
+ uni.navigateTo({
+ url: "/pages/product/report/orderList",
+ });
+ },
+ // 瀛樿鍗曞彿
+ setNo(val) {
+ this.form.moOn = val.moNo;
+ },
+ setFeedInputProductionVolume(val) {
+ console.log("val", val);
+ this.FeedInputProductionVolumeList = val;
+ const values = this.FeedInputProductionVolumeList.map(
+ (item) => item.ifsBatchNo
+ );
+ console.log("values", values);
+
+ this.form.FeedInputProductionVolume = values.join("锛�");
+ },
+ // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
+ saveForm(val) {
+ this.form = {
+ id: val.id,
+ workstationId: val.workstationId,
+ work: val.work,
+ taskNo: val.taskNo,
+ name: val.name,
+ moOn: val.moOn,
+ partNo: val.partNo,
+ partName: val.partName,
+ // qtyRequired: val.qtyRequired,
+ // Jianqtyfinished: val.qtyRequired - val.qtyFinished,
+ proposedLocation: val.proposedLocation,
+ productType: "dep",
+ receive: "mo",
+ materialCost: val.materialCost,
+ // autoReport: false,
+ simplifyMaterials: "false",
+ status: "false",
+ Persons: "",
+ };
+ if (this.form.materialCost == "鍊掑啿") {
+ this.simplifyDisabled = true;
+ }
+ // 濡傛灉鏈塪utyNo锛岃幏鍙栦汉鍛樺垪琛�
+ if (val.dutyId) {
+ this.dutyId = val.dutyId;
+ this.getPersonList(val.dutyId);
+ }
+ },
+ },
+};
</script>
<style lang="scss">
-@import 'index.scss';
+@import "index.scss";
</style>
\ No newline at end of file
--
Gitblit v1.9.3