From 3fa1df3286670f5480fc1eca31ef81d30b6865f5 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 30 四月 2026 16:31:36 +0800
Subject: [PATCH] 已结束订单的报工扫码限制,以及一些废弃接口处理
---
src/pages/productionManagement/productionDispatching/components/formDia.vue | 265 +++++-----
src/pages/productionManagement/productionDispatching/components/DispatchModal.vue | 708 ++++++++++++++---------------
src/pages/productionManagement/productionDispatching/index.vue | 421 ++++++++--------
src/pages/works.vue | 7
src/pages/productionManagement/productionOrder/index.vue | 4
5 files changed, 706 insertions(+), 699 deletions(-)
diff --git a/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue b/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
index 95c3705..2a836e9 100644
--- a/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
+++ b/src/pages/productionManagement/productionDispatching/components/DispatchModal.vue
@@ -1,399 +1,379 @@
<template>
- <up-popup
- v-model:show="show"
- mode="bottom"
- :round="20"
- :safeAreaInsetBottom="true"
- @close="handleClose"
- @open="handleOpen"
- >
- <view class="dispatch-modal">
- <!-- 澶撮儴 -->
- <view class="modal-header">
- <text class="modal-title">鐢熶骇娲惧伐</text>
- <view class="close-btn" @click="handleClose">
- <up-icon name="close" size="20" color="#999"></up-icon>
- </view>
- </view>
-
- <!-- 琛ㄥ崟鍐呭 -->
- <view class="modal-content">
- <up-form
- :model="form"
- ref="formRef"
- :rules="rules"
- labelWidth="120"
- >
- <!-- 椤圭洰鍩烘湰淇℃伅 -->
- <view class="form-section">
- <text class="section-title">椤圭洰淇℃伅</text>
- <up-form-item label="椤圭洰鍚嶇О" prop="projectName">
- <up-input
- v-model="form.projectName"
- disabled
- placeholder="椤圭洰鍚嶇О"
- />
- </up-form-item>
- <up-form-item label="浜у搧澶х被" prop="productCategory">
- <up-input
- v-model="form.productCategory"
- disabled
- placeholder="浜у搧澶х被"
- />
- </up-form-item>
- </view>
-
- <!-- 鏁伴噺淇℃伅 -->
- <view class="form-section">
- <text class="section-title">鏁伴噺淇℃伅</text>
- <up-form-item label="鎬绘暟閲�" prop="quantity">
- <up-input
- v-model="form.quantity"
- disabled
- placeholder="鎬绘暟閲�"
- />
- </up-form-item>
- <up-form-item label="寰呮帓浜ф暟閲�" prop="pendingQuantity">
- <up-input
- v-model="form.pendingQuantity"
- disabled
- placeholder="寰呮帓浜ф暟閲�"
- />
- </up-form-item>
- <up-form-item label="鏈鎺掍骇鏁伴噺" prop="schedulingNum" required>
- <up-number-box
- v-model="form.schedulingNum"
- :min="0"
- :max="form.pendingQuantity"
- :step="0.1"
- :precision="2"
- @change="handleNumChange"
- />
- </up-form-item>
- </view>
-
- <!-- 娲惧伐淇℃伅 -->
- <view class="form-section">
- <text class="section-title">娲惧伐淇℃伅</text>
- <up-form-item label="娲惧伐浜�" prop="schedulingUserId" required>
- <up-input
- v-model="selectedUserName"
- placeholder="璇烽�夋嫨娲惧伐浜�"
- readonly
- @click="showUserPicker = true"
- suffixIcon="arrow-down"
- />
- </up-form-item>
- <up-form-item label="娲惧伐鏃ユ湡" prop="schedulingDate" required>
- <up-input
- v-model="form.schedulingDate"
- placeholder="璇烽�夋嫨娲惧伐鏃ユ湡"
- readonly
- @click="showDatePicker = true"
- suffixIcon="calendar"
- />
- </up-form-item>
- </view>
- </up-form>
- </view>
-
- <!-- 搴曢儴鎸夐挳 -->
- <view class="modal-footer">
- <up-button
- @click="handleClose"
- text="鍙栨秷"
- type="info"
- plain
- :customStyle="{ marginRight: '12px', flex: 1 }"
- />
- <up-button
- @click="handleConfirm"
- text="纭娲惧伐"
- type="primary"
- :customStyle="{ flex: 1 }"
- :loading="submitting"
- />
- </view>
- </view>
-
- <!-- 浜哄憳閫夋嫨鍣� -->
- <up-picker
- v-model="showUserPicker"
- :columns="userColumns"
- @confirm="handleUserSelect"
- @cancel="showUserPicker = false"
- />
-
- <!-- 鏃ユ湡閫夋嫨鍣� -->
- <up-datetime-picker
- v-model="showDatePicker"
- mode="date"
- @confirm="handleDateSelect"
- @cancel="showDatePicker = false"
- />
- </up-popup>
+ <up-popup v-model:show="show"
+ mode="bottom"
+ :round="20"
+ :safeAreaInsetBottom="true"
+ @close="handleClose"
+ @open="handleOpen">
+ <view class="dispatch-modal">
+ <!-- 澶撮儴 -->
+ <view class="modal-header">
+ <text class="modal-title">鐢熶骇娲惧伐</text>
+ <view class="close-btn"
+ @click="handleClose">
+ <up-icon name="close"
+ size="20"
+ color="#999"></up-icon>
+ </view>
+ </view>
+ <!-- 琛ㄥ崟鍐呭 -->
+ <view class="modal-content">
+ <up-form :model="form"
+ ref="formRef"
+ :rules="rules"
+ labelWidth="120">
+ <!-- 椤圭洰鍩烘湰淇℃伅 -->
+ <view class="form-section">
+ <text class="section-title">椤圭洰淇℃伅</text>
+ <up-form-item label="椤圭洰鍚嶇О"
+ prop="projectName">
+ <up-input v-model="form.projectName"
+ disabled
+ placeholder="椤圭洰鍚嶇О" />
+ </up-form-item>
+ <up-form-item label="浜у搧澶х被"
+ prop="productCategory">
+ <up-input v-model="form.productCategory"
+ disabled
+ placeholder="浜у搧澶х被" />
+ </up-form-item>
+ </view>
+ <!-- 鏁伴噺淇℃伅 -->
+ <view class="form-section">
+ <text class="section-title">鏁伴噺淇℃伅</text>
+ <up-form-item label="鎬绘暟閲�"
+ prop="quantity">
+ <up-input v-model="form.quantity"
+ disabled
+ placeholder="鎬绘暟閲�" />
+ </up-form-item>
+ <up-form-item label="寰呮帓浜ф暟閲�"
+ prop="pendingQuantity">
+ <up-input v-model="form.pendingQuantity"
+ disabled
+ placeholder="寰呮帓浜ф暟閲�" />
+ </up-form-item>
+ <up-form-item label="鏈鎺掍骇鏁伴噺"
+ prop="schedulingNum"
+ required>
+ <up-number-box v-model="form.schedulingNum"
+ :min="0"
+ :max="form.pendingQuantity"
+ :step="0.1"
+ :precision="2"
+ @change="handleNumChange" />
+ </up-form-item>
+ </view>
+ <!-- 娲惧伐淇℃伅 -->
+ <view class="form-section">
+ <text class="section-title">娲惧伐淇℃伅</text>
+ <up-form-item label="娲惧伐浜�"
+ prop="schedulingUserId"
+ required>
+ <up-input v-model="selectedUserName"
+ placeholder="璇烽�夋嫨娲惧伐浜�"
+ readonly
+ @click="showUserPicker = true"
+ suffixIcon="arrow-down" />
+ </up-form-item>
+ <up-form-item label="娲惧伐鏃ユ湡"
+ prop="schedulingDate"
+ required>
+ <up-input v-model="form.schedulingDate"
+ placeholder="璇烽�夋嫨娲惧伐鏃ユ湡"
+ readonly
+ @click="showDatePicker = true"
+ suffixIcon="calendar" />
+ </up-form-item>
+ </view>
+ </up-form>
+ </view>
+ <!-- 搴曢儴鎸夐挳 -->
+ <view class="modal-footer">
+ <up-button @click="handleClose"
+ text="鍙栨秷"
+ type="info"
+ plain
+ :customStyle="{ marginRight: '12px', flex: 1 }" />
+ <up-button @click="handleConfirm"
+ text="纭娲惧伐"
+ type="primary"
+ :customStyle="{ flex: 1 }"
+ :loading="submitting" />
+ </view>
+ </view>
+ <!-- 浜哄憳閫夋嫨鍣� -->
+ <up-picker v-model="showUserPicker"
+ :columns="userColumns"
+ @confirm="handleUserSelect"
+ @cancel="showUserPicker = false" />
+ <!-- 鏃ユ湡閫夋嫨鍣� -->
+ <up-datetime-picker v-model="showDatePicker"
+ mode="date"
+ @confirm="handleDateSelect"
+ @cancel="showDatePicker = false" />
+ </up-popup>
</template>
<script setup>
-import { ref, reactive, computed, getCurrentInstance } from 'vue';
-import { userListNoPageByTenantId } from "@/api/system/user.js";
-import { productionDispatch } from "@/api/productionManagement/productionOrder.js";
-import useUserStore from "@/store/modules/user";
-import dayjs from "dayjs";
+ import { ref, reactive, computed, getCurrentInstance } from "vue";
+ import { userListNoPageByTenantId } from "@/api/system/user.js";
+ // import { productionDispatch } from "@/api/productionManagement/productionOrder.js";
+ import useUserStore from "@/store/modules/user";
+ import dayjs from "dayjs";
-const { proxy } = getCurrentInstance();
-const userStore = useUserStore();
-const emit = defineEmits(['confirm']);
+ const { proxy } = getCurrentInstance();
+ const userStore = useUserStore();
+ const emit = defineEmits(["confirm"]);
-// 寮圭獥鏄剧ず鐘舵��
-const show = ref(false);
-const submitting = ref(false);
+ // 寮圭獥鏄剧ず鐘舵��
+ const show = ref(false);
+ const submitting = ref(false);
-// 閫夋嫨鍣ㄦ樉绀虹姸鎬�
-const showUserPicker = ref(false);
-const showDatePicker = ref(false);
+ // 閫夋嫨鍣ㄦ樉绀虹姸鎬�
+ const showUserPicker = ref(false);
+ const showDatePicker = ref(false);
-// 鐢ㄦ埛鍒楄〃
-const userList = ref([]);
-const userColumns = computed(() => [
- userList.value.map(user => ({
- label: user.nickName,
- value: user.userId
- }))
-]);
+ // 鐢ㄦ埛鍒楄〃
+ const userList = ref([]);
+ const userColumns = computed(() => [
+ userList.value.map(user => ({
+ label: user.nickName,
+ value: user.userId,
+ })),
+ ]);
-// 閫変腑鐨勭敤鎴峰悕绉帮紙鐢ㄤ簬鏄剧ず锛�
-const selectedUserName = computed(() => {
- const user = userList.value.find(u => u.userId === form.schedulingUserId);
- return user ? user.nickName : '';
-});
+ // 閫変腑鐨勭敤鎴峰悕绉帮紙鐢ㄤ簬鏄剧ず锛�
+ const selectedUserName = computed(() => {
+ const user = userList.value.find(u => u.userId === form.schedulingUserId);
+ return user ? user.nickName : "";
+ });
-// 琛ㄥ崟鏁版嵁
-const form = reactive({
- projectName: "",
- productCategory: "",
- quantity: "",
- schedulingNum: 0,
- schedulingUserId: "",
- schedulingDate: "",
- pendingQuantity: 0,
- id: "" // 鍘熷璁板綍ID
-});
+ // 琛ㄥ崟鏁版嵁
+ const form = reactive({
+ projectName: "",
+ productCategory: "",
+ quantity: "",
+ schedulingNum: 0,
+ schedulingUserId: "",
+ schedulingDate: "",
+ pendingQuantity: 0,
+ id: "", // 鍘熷璁板綍ID
+ });
-// 琛ㄥ崟楠岃瘉瑙勫垯
-const rules = reactive({
- schedulingNum: [
- { required: true, message: "璇疯緭鍏ユ帓浜ф暟閲�", trigger: "blur" }
- ],
- schedulingUserId: [
- { required: true, message: "璇烽�夋嫨娲惧伐浜�", trigger: "change" }
- ],
- schedulingDate: [
- { required: true, message: "璇烽�夋嫨娲惧伐鏃ユ湡", trigger: "change" }
- ]
-});
+ // 琛ㄥ崟楠岃瘉瑙勫垯
+ const rules = reactive({
+ schedulingNum: [
+ { required: true, message: "璇疯緭鍏ユ帓浜ф暟閲�", trigger: "blur" },
+ ],
+ schedulingUserId: [
+ { required: true, message: "璇烽�夋嫨娲惧伐浜�", trigger: "change" },
+ ],
+ schedulingDate: [
+ { required: true, message: "璇烽�夋嫨娲惧伐鏃ユ湡", trigger: "change" },
+ ],
+ });
-// 琛ㄥ崟寮曠敤
-const formRef = ref();
+ // 琛ㄥ崟寮曠敤
+ const formRef = ref();
-// 鎵撳紑寮圭獥
-const open = async (rowData) => {
- try {
- // 鍔犺浇鐢ㄦ埛鍒楄〃
- const res = await userListNoPageByTenantId();
- userList.value = res.data || [];
-
- // 濉厖琛ㄥ崟鏁版嵁
- Object.assign(form, {
- ...rowData,
- schedulingNum: 0,
- schedulingUserId: userStore.id,
- schedulingDate: dayjs().format("YYYY-MM-DD")
- });
-
- show.value = true;
- } catch (error) {
- uni.showToast({
- title: '鍔犺浇鐢ㄦ埛鍒楄〃澶辫触',
- icon: 'error'
- });
- }
-};
+ // 鎵撳紑寮圭獥
+ const open = async rowData => {
+ try {
+ // 鍔犺浇鐢ㄦ埛鍒楄〃
+ const res = await userListNoPageByTenantId();
+ userList.value = res.data || [];
-// 澶勭悊鏁伴噺鍙樺寲
-const handleNumChange = (value) => {
- if (value > form.pendingQuantity) {
- form.schedulingNum = form.pendingQuantity;
- uni.showToast({
- title: '鎺掍骇鏁伴噺涓嶅彲澶т簬寰呮帓浜ф暟閲�',
- icon: 'none'
- });
- }
-};
+ // 濉厖琛ㄥ崟鏁版嵁
+ Object.assign(form, {
+ ...rowData,
+ schedulingNum: 0,
+ schedulingUserId: userStore.id,
+ schedulingDate: dayjs().format("YYYY-MM-DD"),
+ });
-// 澶勭悊鐢ㄦ埛閫夋嫨
-const handleUserSelect = (params) => {
- if (params.value && params.value.length > 0) {
- form.schedulingUserId = params.value[0];
- }
- showUserPicker.value = false;
-};
+ show.value = true;
+ } catch (error) {
+ uni.showToast({
+ title: "鍔犺浇鐢ㄦ埛鍒楄〃澶辫触",
+ icon: "error",
+ });
+ }
+ };
-// 澶勭悊鏃ユ湡閫夋嫨
-const handleDateSelect = (params) => {
- if (params.value) {
- form.schedulingDate = dayjs(params.value).format("YYYY-MM-DD");
- }
- showDatePicker.value = false;
-};
+ // 澶勭悊鏁伴噺鍙樺寲
+ const handleNumChange = value => {
+ if (value > form.pendingQuantity) {
+ form.schedulingNum = form.pendingQuantity;
+ uni.showToast({
+ title: "鎺掍骇鏁伴噺涓嶅彲澶т簬寰呮帓浜ф暟閲�",
+ icon: "none",
+ });
+ }
+ };
-// 纭娲惧伐
-const handleConfirm = async () => {
- try {
- // 琛ㄥ崟楠岃瘉
- const valid = await formRef.value?.validate();
- if (!valid) return;
-
- if (form.schedulingNum <= 0) {
- uni.showToast({
- title: '鎺掍骇鏁伴噺蹇呴』澶т簬0',
- icon: 'none'
- });
- return;
- }
-
- submitting.value = true;
-
- // 鎻愪氦娲惧伐鏁版嵁
- await productionDispatch(form);
-
- uni.showToast({
- title: '娲惧伐鎴愬姛',
- icon: 'success'
- });
-
- handleClose();
- emit('confirm');
-
- } catch (error) {
- uni.showToast({
- title: '娲惧伐澶辫触',
- icon: 'error'
- });
- } finally {
- submitting.value = false;
- }
-};
+ // 澶勭悊鐢ㄦ埛閫夋嫨
+ const handleUserSelect = params => {
+ if (params.value && params.value.length > 0) {
+ form.schedulingUserId = params.value[0];
+ }
+ showUserPicker.value = false;
+ };
-// 寮圭獥鎵撳紑浜嬩欢
-const handleOpen = () => {
- // 寮圭獥鎵撳紑鏃剁殑澶勭悊
-};
+ // 澶勭悊鏃ユ湡閫夋嫨
+ const handleDateSelect = params => {
+ if (params.value) {
+ form.schedulingDate = dayjs(params.value).format("YYYY-MM-DD");
+ }
+ showDatePicker.value = false;
+ };
-// 鍏抽棴寮圭獥
-const handleClose = () => {
- show.value = false;
- showUserPicker.value = false;
- showDatePicker.value = false;
-
- // 閲嶇疆琛ㄥ崟
- Object.assign(form, {
- projectName: "",
- productCategory: "",
- quantity: "",
- schedulingNum: 0,
- schedulingUserId: "",
- schedulingDate: "",
- pendingQuantity: 0,
- id: ""
- });
-};
+ // 纭娲惧伐
+ const handleConfirm = async () => {
+ try {
+ // 琛ㄥ崟楠岃瘉
+ const valid = await formRef.value?.validate();
+ if (!valid) return;
-// 鏆撮湶鏂规硶
-defineExpose({
- open
-});
+ if (form.schedulingNum <= 0) {
+ uni.showToast({
+ title: "鎺掍骇鏁伴噺蹇呴』澶т簬0",
+ icon: "none",
+ });
+ return;
+ }
+
+ submitting.value = true;
+
+ // 鎻愪氦娲惧伐鏁版嵁
+ // await productionDispatch(form);
+
+ uni.showToast({
+ title: "娲惧伐鎴愬姛",
+ icon: "success",
+ });
+
+ handleClose();
+ emit("confirm");
+ } catch (error) {
+ uni.showToast({
+ title: "娲惧伐澶辫触",
+ icon: "error",
+ });
+ } finally {
+ submitting.value = false;
+ }
+ };
+
+ // 寮圭獥鎵撳紑浜嬩欢
+ const handleOpen = () => {
+ // 寮圭獥鎵撳紑鏃剁殑澶勭悊
+ };
+
+ // 鍏抽棴寮圭獥
+ const handleClose = () => {
+ show.value = false;
+ showUserPicker.value = false;
+ showDatePicker.value = false;
+
+ // 閲嶇疆琛ㄥ崟
+ Object.assign(form, {
+ projectName: "",
+ productCategory: "",
+ quantity: "",
+ schedulingNum: 0,
+ schedulingUserId: "",
+ schedulingDate: "",
+ pendingQuantity: 0,
+ id: "",
+ });
+ };
+
+ // 鏆撮湶鏂规硶
+ defineExpose({
+ open,
+ });
</script>
<style scoped lang="scss">
-.dispatch-modal {
- background: #ffffff;
- border-radius: 20px 20px 0 0;
- max-height: 80vh;
- overflow: hidden;
- display: flex;
- flex-direction: column;
-}
+ .dispatch-modal {
+ background: #ffffff;
+ border-radius: 20px 20px 0 0;
+ max-height: 80vh;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ }
-.modal-header {
- display: flex;
- align-items: center;
- justify-content: space-between;
- padding: 20px 20px 0 20px;
- border-bottom: 1px solid #f0f0f0;
- padding-bottom: 16px;
- margin-bottom: 20px;
-}
+ .modal-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20px 20px 0 20px;
+ border-bottom: 1px solid #f0f0f0;
+ padding-bottom: 16px;
+ margin-bottom: 20px;
+ }
-.modal-title {
- font-size: 18px;
- font-weight: 600;
- color: #333;
-}
+ .modal-title {
+ font-size: 18px;
+ font-weight: 600;
+ color: #333;
+ }
-.close-btn {
- padding: 4px;
-
- &:active {
- opacity: 0.7;
- }
-}
+ .close-btn {
+ padding: 4px;
-.modal-content {
- flex: 1;
- padding: 0 20px;
- overflow-y: auto;
-}
+ &:active {
+ opacity: 0.7;
+ }
+ }
-.form-section {
- margin-bottom: 24px;
-}
+ .modal-content {
+ flex: 1;
+ padding: 0 20px;
+ overflow-y: auto;
+ }
-.section-title {
- display: block;
- font-size: 16px;
- font-weight: 600;
- color: #333;
- margin-bottom: 16px;
- padding-left: 8px;
- border-left: 3px solid #2979ff;
-}
+ .form-section {
+ margin-bottom: 24px;
+ }
-.modal-footer {
- display: flex;
- gap: 12px;
- padding: 20px;
- border-top: 1px solid #f0f0f0;
- background: #fafafa;
-}
+ .section-title {
+ display: block;
+ font-size: 16px;
+ font-weight: 600;
+ color: #333;
+ margin-bottom: 16px;
+ padding-left: 8px;
+ border-left: 3px solid #2979ff;
+ }
-// uView 缁勪欢鏍峰紡璋冩暣
-:deep(.up-form-item) {
- margin-bottom: 20px;
-}
+ .modal-footer {
+ display: flex;
+ gap: 12px;
+ padding: 20px;
+ border-top: 1px solid #f0f0f0;
+ background: #fafafa;
+ }
-:deep(.up-input) {
- background: #f8f9fa;
- border-radius: 8px;
-}
+ // uView 缁勪欢鏍峰紡璋冩暣
+ :deep(.up-form-item) {
+ margin-bottom: 20px;
+ }
-:deep(.up-input--disabled) {
- background: #f0f0f0;
- color: #999;
-}
+ :deep(.up-input) {
+ background: #f8f9fa;
+ border-radius: 8px;
+ }
-:deep(.up-number-box) {
- background: #f8f9fa;
- border-radius: 8px;
-}
+ :deep(.up-input--disabled) {
+ background: #f0f0f0;
+ color: #999;
+ }
+
+ :deep(.up-number-box) {
+ background: #f8f9fa;
+ border-radius: 8px;
+ }
</style>
diff --git a/src/pages/productionManagement/productionDispatching/components/formDia.vue b/src/pages/productionManagement/productionDispatching/components/formDia.vue
index 72227ac..e7e6662 100644
--- a/src/pages/productionManagement/productionDispatching/components/formDia.vue
+++ b/src/pages/productionManagement/productionDispatching/components/formDia.vue
@@ -1,87 +1,101 @@
<template>
<div>
- <el-dialog
- v-model="dialogFormVisible"
- title="鐢熶骇娲惧伐"
- width="50%"
- @close="closeDia"
- >
- <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+ <el-dialog v-model="dialogFormVisible"
+ title="鐢熶骇娲惧伐"
+ width="50%"
+ @close="closeDia">
+ <el-form :model="form"
+ label-width="140px"
+ label-position="top"
+ :rules="rules"
+ ref="formRef">
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="椤圭洰鍚嶇О锛�" prop="projectName">
- <el-input v-model="form.projectName" placeholder="璇疯緭鍏�" clearable disabled/>
+ <el-form-item label="椤圭洰鍚嶇О锛�"
+ prop="projectName">
+ <el-input v-model="form.projectName"
+ placeholder="璇疯緭鍏�"
+ clearable
+ disabled />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="浜у搧澶х被锛�" prop="productCategory">
- <el-input v-model="form.productCategory" placeholder="璇疯緭鍏�" clearable disabled/>
+ <el-form-item label="浜у搧澶х被锛�"
+ prop="productCategory">
+ <el-input v-model="form.productCategory"
+ placeholder="璇疯緭鍏�"
+ clearable
+ disabled />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="鎬绘暟閲忥細" prop="quantity">
- <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
+ <el-form-item label="鎬绘暟閲忥細"
+ prop="quantity">
+ <el-input v-model="form.quantity"
+ placeholder="璇疯緭鍏�"
+ clearable
+ disabled />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="寰呮帓浜ф暟閲忥細" prop="pendingQuantity">
- <el-input v-model="form.pendingQuantity" placeholder="璇疯緭鍏�" clearable disabled/>
- </el-form-item>
+ <el-form-item label="寰呮帓浜ф暟閲忥細"
+ prop="pendingQuantity">
+ <el-input v-model="form.pendingQuantity"
+ placeholder="璇疯緭鍏�"
+ clearable
+ disabled />
+ </el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
- <el-form-item label="鏈鎺掍骇鏁伴噺锛�" prop="schedulingNum">
- <el-input-number
- v-model="form.schedulingNum"
- placeholder="璇疯緭鍏�"
- :min="0"
- :step="0.1"
- :precision="2"
- clearable
- @change="changeNum"
- style="width: 100%"
- />
- </el-form-item>
+ <el-form-item label="鏈鎺掍骇鏁伴噺锛�"
+ prop="schedulingNum">
+ <el-input-number v-model="form.schedulingNum"
+ placeholder="璇疯緭鍏�"
+ :min="0"
+ :step="0.1"
+ :precision="2"
+ clearable
+ @change="changeNum"
+ style="width: 100%" />
+ </el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
- <el-col :span="12">
- <el-form-item label="娲惧伐浜猴細" prop="schedulingUserId">
- <el-select
- v-model="form.schedulingUserId"
- placeholder="閫夋嫨浜哄憳"
- style="width: 100%;"
- >
- <el-option
- v-for="user in userList"
- :key="user.userId"
- :label="user.nickName"
- :value="user.userId"
- />
- </el-select>
- </el-form-item>
- </el-col>
<el-col :span="12">
- <el-form-item label="娲惧伐鏃ユ湡锛�" prop="schedulingDate">
- <el-date-picker
- v-model="form.schedulingDate"
- type="date"
- placeholder="璇烽�夋嫨鏃ユ湡"
- value-format="YYYY-MM-DD"
- format="YYYY-MM-DD"
- clearable
- style="width: 100%"
- />
+ <el-form-item label="娲惧伐浜猴細"
+ prop="schedulingUserId">
+ <el-select v-model="form.schedulingUserId"
+ placeholder="閫夋嫨浜哄憳"
+ style="width: 100%;">
+ <el-option v-for="user in userList"
+ :key="user.userId"
+ :label="user.nickName"
+ :value="user.userId" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="娲惧伐鏃ユ湡锛�"
+ prop="schedulingDate">
+ <el-date-picker v-model="form.schedulingDate"
+ type="date"
+ placeholder="璇烽�夋嫨鏃ユ湡"
+ value-format="YYYY-MM-DD"
+ format="YYYY-MM-DD"
+ clearable
+ style="width: 100%" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer>
<div class="dialog-footer">
- <el-button type="primary" @click="submitForm">纭</el-button>
+ <el-button type="primary"
+ @click="submitForm">纭</el-button>
<el-button @click="closeDia">鍙栨秷</el-button>
</div>
</template>
@@ -90,80 +104,85 @@
</template>
<script setup>
-import {ref} from "vue";
-import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js";
-import {userListNoPageByTenantId} from "@/api/system/user.js";
-import {productionDispatch} from "@/api/productionManagement/productionOrder.js";
-import useUserStore from "@/store/modules/user";
-import dayjs from "dayjs";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
+ import { ref } from "vue";
+ import {
+ getStaffJoinInfo,
+ staffJoinAdd,
+ staffJoinUpdate,
+ } from "@/api/personnelManagement/onboarding.js";
+ import { userListNoPageByTenantId } from "@/api/system/user.js";
+ // import {productionDispatch} from "@/api/productionManagement/productionOrder.js";
+ import useUserStore from "@/store/modules/user";
+ import dayjs from "dayjs";
+ const { proxy } = getCurrentInstance();
+ const emit = defineEmits(["close"]);
-const dialogFormVisible = ref(false);
-const operationType = ref('')
-const data = reactive({
- form: {
- projectName: "",
- productCategory: "",
- quantity: "",
- schedulingNum: "",
- schedulingUserId: "",
- schedulingDate: "",
- pendingQuantity: "",
- },
- rules: {
- schedulingNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" },],
- schedulingUserId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
- schedulingDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" },],
- },
-});
-const { form, rules } = toRefs(data);
-const userList = ref([])
-const userStore = useUserStore()
+ const dialogFormVisible = ref(false);
+ const operationType = ref("");
+ const data = reactive({
+ form: {
+ projectName: "",
+ productCategory: "",
+ quantity: "",
+ schedulingNum: "",
+ schedulingUserId: "",
+ schedulingDate: "",
+ pendingQuantity: "",
+ },
+ rules: {
+ schedulingNum: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ schedulingUserId: [
+ { required: true, message: "璇烽�夋嫨", trigger: "change" },
+ ],
+ schedulingDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ },
+ });
+ const { form, rules } = toRefs(data);
+ const userList = ref([]);
+ const userStore = useUserStore();
-// 鎵撳紑寮规
-const openDialog = (type, row) => {
- operationType.value = type;
- dialogFormVisible.value = true;
- userListNoPageByTenantId().then((res) => {
- userList.value = res.data;
- });
- form.value = {...row}
- form.value.schedulingNum = 0
- form.value.schedulingUserId = userStore.id
- form.value.schedulingDate = dayjs().format("YYYY-MM-DD");
-}
+ // 鎵撳紑寮规
+ const openDialog = (type, row) => {
+ operationType.value = type;
+ dialogFormVisible.value = true;
+ userListNoPageByTenantId().then(res => {
+ userList.value = res.data;
+ });
+ form.value = { ...row };
+ form.value.schedulingNum = 0;
+ form.value.schedulingUserId = userStore.id;
+ form.value.schedulingDate = dayjs().format("YYYY-MM-DD");
+ };
-//
-const changeNum = (value) => {
- if (value > form.value.pendingQuantity) {
- form.value.schedulingNum = form.value.pendingQuantity;
- proxy.$modal.msgWarning('鎺掍骇鏁伴噺涓嶅彲澶т簬寰呮帓浜ф暟閲�')
- }
-}
-// 鎻愪氦浜у搧琛ㄥ崟
-const submitForm = () => {
- proxy.$refs.formRef.validate(valid => {
- if (valid) {
- productionDispatch(form.value).then(res => {
- proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
- closeDia();
- })
+ //
+ const changeNum = value => {
+ if (value > form.value.pendingQuantity) {
+ form.value.schedulingNum = form.value.pendingQuantity;
+ proxy.$modal.msgWarning("鎺掍骇鏁伴噺涓嶅彲澶т簬寰呮帓浜ф暟閲�");
}
- })
-}
+ };
+ // 鎻愪氦浜у搧琛ㄥ崟
+ const submitForm = () => {
+ proxy.$refs.formRef.validate(valid => {
+ if (valid) {
+ // productionDispatch(form.value).then(res => {
+ // proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+ // closeDia();
+ // })
+ }
+ });
+ };
-// 鍏抽棴寮规
-const closeDia = () => {
- proxy.resetForm("formRef");
- dialogFormVisible.value = false;
- emit('close')
-};
-defineExpose({
- openDialog,
-});
+ // 鍏抽棴寮规
+ const closeDia = () => {
+ proxy.resetForm("formRef");
+ dialogFormVisible.value = false;
+ emit("close");
+ };
+ defineExpose({
+ openDialog,
+ });
</script>
<style scoped>
-
</style>
\ No newline at end of file
diff --git a/src/pages/productionManagement/productionDispatching/index.vue b/src/pages/productionManagement/productionDispatching/index.vue
index 7aea197..d6ae5e3 100644
--- a/src/pages/productionManagement/productionDispatching/index.vue
+++ b/src/pages/productionManagement/productionDispatching/index.vue
@@ -1,235 +1,236 @@
<template>
- <view class="production-dispatching">
- <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
- <PageHeader title="鐢熶骇娲惧伐" @back="goBack" />
-
- <!-- 鎼滅储鍖哄煙 -->
- <view class="search-section">
- <view class="search-bar">
- <view class="search-input">
- <up-input
- class="search-text"
- placeholder="璇疯緭鍏ュ鎴峰悕绉版悳绱�"
- v-model="searchForm.customerName"
- @change="handleQuery"
- clearable
- />
- </view>
- <view class="filter-button" @click="handleQuery">
- <up-icon name="search" size="24" color="#999"></up-icon>
- </view>
- </view>
- </view>
-
- <!-- 鐢熶骇娲惧伐鍒楄〃 -->
- <view class="ledger-list" v-if="tableData.length > 0">
- <view v-for="(item, index) in tableData" :key="item.id || index">
- <view class="ledger-item">
- <view class="item-header">
- <view class="item-left">
- <view class="document-icon">
- <up-icon name="file-text" size="16" color="#ffffff"></up-icon>
- </view>
- <text class="item-id">{{ item.salesContractNo }}</text>
- </view>
- </view>
- <up-divider></up-divider>
-
- <view class="item-details">
- <view class="detail-row">
- <text class="detail-label">褰曞叆鏃ユ湡</text>
- <text class="detail-value">{{ item.entryDate }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">瀹㈡埛鍚堝悓鍙�</text>
- <text class="detail-value">{{ item.customerContractNo }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">瀹㈡埛鍚嶇О</text>
- <text class="detail-value">{{ item.customerName }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">椤圭洰鍚嶇О</text>
- <text class="detail-value">{{ item.projectName }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">浜у搧澶х被</text>
- <text class="detail-value">{{ item.productCategory }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">瑙勬牸鍨嬪彿</text>
- <text class="detail-value">{{ item.specificationModel }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">鎬绘暟閲�</text>
- <text class="detail-value">{{ item.quantity }} {{ item.unit }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">鎺掍骇鏁伴噺</text>
- <text class="detail-value highlight">{{ item.schedulingNum }}</text>
- </view>
- <view class="detail-row">
- <text class="detail-label">寰呮帓鏁伴噺</text>
- <text class="detail-value" :class="{ 'danger': item.pendingQuantity <= 0 }">{{ item.pendingQuantity }}</text>
- </view>
- </view>
-
- <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
- <view class="action-buttons">
- <up-button
- type="primary"
- size="small"
- @click="handleDispatch(item)"
- class="action-btn"
- :disabled="item.pendingQuantity <= 0"
- >
- 鐢熶骇娲惧伐
- </up-button>
- </view>
- </view>
- </view>
- </view>
- <view v-else class="no-data">
- <text>鏆傛棤鐢熶骇娲惧伐鏁版嵁</text>
- </view>
-
- <!-- 娲惧伐寮圭獥 -->
- <DispatchModal ref="dispatchModalRef" @confirm="handleDispatchConfirm" />
- </view>
+ <view class="production-dispatching">
+ <!-- 浣跨敤閫氱敤椤甸潰澶撮儴缁勪欢 -->
+ <PageHeader title="鐢熶骇娲惧伐"
+ @back="goBack" />
+ <!-- 鎼滅储鍖哄煙 -->
+ <view class="search-section">
+ <view class="search-bar">
+ <view class="search-input">
+ <up-input class="search-text"
+ placeholder="璇疯緭鍏ュ鎴峰悕绉版悳绱�"
+ v-model="searchForm.customerName"
+ @change="handleQuery"
+ clearable />
+ </view>
+ <view class="filter-button"
+ @click="handleQuery">
+ <up-icon name="search"
+ size="24"
+ color="#999"></up-icon>
+ </view>
+ </view>
+ </view>
+ <!-- 鐢熶骇娲惧伐鍒楄〃 -->
+ <view class="ledger-list"
+ v-if="tableData.length > 0">
+ <view v-for="(item, index) in tableData"
+ :key="item.id || index">
+ <view class="ledger-item">
+ <view class="item-header">
+ <view class="item-left">
+ <view class="document-icon">
+ <up-icon name="file-text"
+ size="16"
+ color="#ffffff"></up-icon>
+ </view>
+ <text class="item-id">{{ item.salesContractNo }}</text>
+ </view>
+ </view>
+ <up-divider></up-divider>
+ <view class="item-details">
+ <view class="detail-row">
+ <text class="detail-label">褰曞叆鏃ユ湡</text>
+ <text class="detail-value">{{ item.entryDate }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">瀹㈡埛鍚堝悓鍙�</text>
+ <text class="detail-value">{{ item.customerContractNo }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">瀹㈡埛鍚嶇О</text>
+ <text class="detail-value">{{ item.customerName }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">椤圭洰鍚嶇О</text>
+ <text class="detail-value">{{ item.projectName }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">浜у搧澶х被</text>
+ <text class="detail-value">{{ item.productCategory }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">瑙勬牸鍨嬪彿</text>
+ <text class="detail-value">{{ item.specificationModel }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鎬绘暟閲�</text>
+ <text class="detail-value">{{ item.quantity }} {{ item.unit }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">鎺掍骇鏁伴噺</text>
+ <text class="detail-value highlight">{{ item.schedulingNum }}</text>
+ </view>
+ <view class="detail-row">
+ <text class="detail-label">寰呮帓鏁伴噺</text>
+ <text class="detail-value"
+ :class="{ 'danger': item.pendingQuantity <= 0 }">{{ item.pendingQuantity }}</text>
+ </view>
+ </view>
+ <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+ <view class="action-buttons">
+ <up-button type="primary"
+ size="small"
+ @click="handleDispatch(item)"
+ class="action-btn"
+ :disabled="item.pendingQuantity <= 0">
+ 鐢熶骇娲惧伐
+ </up-button>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view v-else
+ class="no-data">
+ <text>鏆傛棤鐢熶骇娲惧伐鏁版嵁</text>
+ </view>
+ <!-- 娲惧伐寮圭獥 -->
+ <DispatchModal ref="dispatchModalRef"
+ @confirm="handleDispatchConfirm" />
+ </view>
</template>
<script setup>
-import { ref, reactive, toRefs, getCurrentInstance } from "vue";
-import { onShow } from '@dcloudio/uni-app';
-import dayjs from "dayjs";
-import {schedulingListPage} from "@/api/productionManagement/productionOrder.js";
-import PageHeader from "@/components/PageHeader.vue";
-import DispatchModal from "./components/DispatchModal.vue";
-const { proxy } = getCurrentInstance();
+ import { ref, reactive, toRefs, getCurrentInstance } from "vue";
+ import { onShow } from "@dcloudio/uni-app";
+ import dayjs from "dayjs";
+ // import {schedulingListPage} from "@/api/productionManagement/productionOrder.js";
+ import PageHeader from "@/components/PageHeader.vue";
+ import DispatchModal from "./components/DispatchModal.vue";
+ const { proxy } = getCurrentInstance();
-// 鍔犺浇鐘舵��
-const loading = ref(false);
+ // 鍔犺浇鐘舵��
+ const loading = ref(false);
-// 鍒楄〃鏁版嵁
-const tableData = ref([]);
+ // 鍒楄〃鏁版嵁
+ const tableData = ref([]);
+ // 鎼滅储琛ㄥ崟鏁版嵁
+ const data = reactive({
+ searchForm: {
+ customerName: "",
+ },
+ });
+ const { searchForm } = toRefs(data);
-// 鎼滅储琛ㄥ崟鏁版嵁
-const data = reactive({
- searchForm: {
- customerName: "",
- },
-});
-const { searchForm } = toRefs(data);
+ // 鍒嗛〉閰嶇疆
+ const page = reactive({
+ current: -1,
+ size: -1,
+ });
-// 鍒嗛〉閰嶇疆
-const page = reactive({
- current: -1,
- size: -1,
-});
+ // 娲惧伐寮圭獥寮曠敤
+ const dispatchModalRef = ref();
-// 娲惧伐寮圭獥寮曠敤
-const dispatchModalRef = ref();
+ // 閫氱敤鎻愮ず鍑芥暟
+ const showLoadingToast = message => {
+ uni.showLoading({
+ title: message,
+ mask: true,
+ });
+ };
-// 閫氱敤鎻愮ず鍑芥暟
-const showLoadingToast = (message) => {
- uni.showLoading({
- title: message,
- mask: true
- });
-};
+ const closeToast = () => {
+ uni.hideLoading();
+ };
-const closeToast = () => {
- uni.hideLoading();
-};
+ // 杩斿洖涓婁竴椤�
+ const goBack = () => {
+ uni.navigateBack();
+ };
-// 杩斿洖涓婁竴椤�
-const goBack = () => {
- uni.navigateBack();
-};
+ // 鏌ヨ鍒楄〃
+ const handleQuery = () => {
+ getList();
+ };
-// 鏌ヨ鍒楄〃
-const handleQuery = () => {
- getList();
-};
+ // 鑾峰彇鍒楄〃鏁版嵁
+ const getList = () => {
+ loading.value = true;
+ showLoadingToast("鍔犺浇涓�...");
-// 鑾峰彇鍒楄〃鏁版嵁
-const getList = () => {
- loading.value = true;
- showLoadingToast('鍔犺浇涓�...');
-
- // 鏋勯�犺姹傚弬鏁�
- const params = { ...searchForm.value, ...page };
-
- schedulingListPage(params).then((res) => {
- loading.value = false;
- closeToast();
-
- // 澶勭悊姣忔潯鏁版嵁锛屽鍔爌endingQuantity瀛楁
- tableData.value = (res.data.records || []).map(item => ({
- ...item,
- pendingQuantity: (Number(item.quantity) || 0) - (Number(item.schedulingNum) || 0)
- }));
- }).catch(() => {
- loading.value = false;
- closeToast();
- uni.showToast({
- title: '鍔犺浇澶辫触',
- icon: 'error'
- });
- });
-};
+ // 鏋勯�犺姹傚弬鏁�
+ const params = { ...searchForm.value, ...page };
-// 澶勭悊娲惧伐鎿嶄綔
-const handleDispatch = (item) => {
- if (item.pendingQuantity <= 0) {
- uni.showToast({
- title: '璇ラ」鐩棤闇�鍐嶆淳宸�',
- icon: 'none'
- });
- return;
- }
-
- dispatchModalRef.value?.open(item);
-};
+ // schedulingListPage(params).then((res) => {
+ // loading.value = false;
+ // closeToast();
-// 澶勭悊娲惧伐纭
-const handleDispatchConfirm = () => {
- getList(); // 鍒锋柊鍒楄〃
-};
+ // // 澶勭悊姣忔潯鏁版嵁锛屽鍔爌endingQuantity瀛楁
+ // tableData.value = (res.data.records || []).map(item => ({
+ // ...item,
+ // pendingQuantity: (Number(item.quantity) || 0) - (Number(item.schedulingNum) || 0)
+ // }));
+ // }).catch(() => {
+ // loading.value = false;
+ // closeToast();
+ // uni.showToast({
+ // title: '鍔犺浇澶辫触',
+ // icon: 'error'
+ // });
+ // });
+ };
-// 椤甸潰鏄剧ず鏃跺姞杞芥暟鎹�
-onShow(() => {
- // 鍔犺浇鍒楄〃鏁版嵁
- getList();
-});
+ // 澶勭悊娲惧伐鎿嶄綔
+ const handleDispatch = item => {
+ if (item.pendingQuantity <= 0) {
+ uni.showToast({
+ title: "璇ラ」鐩棤闇�鍐嶆淳宸�",
+ icon: "none",
+ });
+ return;
+ }
+
+ dispatchModalRef.value?.open(item);
+ };
+
+ // 澶勭悊娲惧伐纭
+ const handleDispatchConfirm = () => {
+ getList(); // 鍒锋柊鍒楄〃
+ };
+
+ // 椤甸潰鏄剧ず鏃跺姞杞芥暟鎹�
+ onShow(() => {
+ // 鍔犺浇鍒楄〃鏁版嵁
+ getList();
+ });
</script>
<style scoped lang="scss">
-@import '@/styles/sales-common.scss';
+ @import "@/styles/sales-common.scss";
-// 鐢熶骇娲惧伐椤甸潰鏍峰紡
-.production-dispatching {
- min-height: 100vh;
- background: #f8f9fa;
- position: relative;
-}
+ // 鐢熶骇娲惧伐椤甸潰鏍峰紡
+ .production-dispatching {
+ min-height: 100vh;
+ background: #f8f9fa;
+ position: relative;
+ }
-// 鍒楄〃椤规牱寮�
-.ledger-item {
- .detail-value.highlight {
- color: #ff6b35;
- font-weight: 600;
- }
-
- .detail-value.danger {
- color: #ee0a24;
- font-weight: 600;
- }
-}
+ // 鍒楄〃椤规牱寮�
+ .ledger-item {
+ .detail-value.highlight {
+ color: #ff6b35;
+ font-weight: 600;
+ }
-// 閫傞厤 uView 缁勪欢鏍峰紡
-:deep(.up-input) {
- background: transparent;
-}
+ .detail-value.danger {
+ color: #ee0a24;
+ font-weight: 600;
+ }
+ }
+
+ // 閫傞厤 uView 缁勪欢鏍峰紡
+ :deep(.up-input) {
+ background: transparent;
+ }
</style>
diff --git a/src/pages/productionManagement/productionOrder/index.vue b/src/pages/productionManagement/productionOrder/index.vue
index 3a55461..4894507 100644
--- a/src/pages/productionManagement/productionOrder/index.vue
+++ b/src/pages/productionManagement/productionOrder/index.vue
@@ -154,6 +154,7 @@
2: "杩涜涓�",
3: "宸插畬鎴�",
4: "宸插彇娑�",
+ 5: "宸茬粨鏉�",
};
return statusMap[status] || "鏈煡";
};
@@ -164,7 +165,8 @@
1: "primary",
2: "warning",
3: "success",
- 4: "danger",
+ 4: "info",
+ 5: "danger",
};
return typeMap[status] || "info";
};
diff --git a/src/pages/works.vue b/src/pages/works.vue
index bb7eeab..59e6637 100644
--- a/src/pages/works.vue
+++ b/src/pages/works.vue
@@ -1051,7 +1051,7 @@
factoryList.value = [];
});
}
- const getcode = () => {
+ const getcode = async () => {
uni.scanCode({
success: async res => {
// 瑙f瀽浜岀淮鐮佸唴瀹�
@@ -1076,6 +1076,11 @@
const workData = workRes.data;
console.log("宸ュ崟鏁版嵁:", workData);
+ if (workData.endOrder === true) {
+ modal.msgError("璇ヨ鍗曞凡缁撴潫锛屾棤娉曟姤宸�");
+ return;
+ }
+
orderRow = JSON.stringify(workData);
console.log("鏋勯�犵殑orderRow:", orderRow);
--
Gitblit v1.9.3