From 7aaff69bb11a4d75882d25bd1bc8e9748c2bd609 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 29 五月 2025 16:57:41 +0800
Subject: [PATCH] 完成报工前端页面,除库存接收外

---
 pages/wareHouse/moveWareHouse/index.vue      |  829 +++++++++--------
 pages/product/report/components/saveForm.vue |  140 +++
 pages/product/report/index0.vue              |  489 ++++++++++
 pages.json                                   |   15 
 pages/product/report/index.vue               |  684 ++++----------
 components/modal/modal-bg.vue                |   49 +
 static/custom/moda-lbg.png                   |    0 
 pages/product/report/index0.scss             |  113 ++
 pages/product/report/orderList.vue           |  312 ++++++
 pages/product/report/index.scss              |  122 --
 10 files changed, 1,767 insertions(+), 986 deletions(-)

diff --git a/components/modal/modal-bg.vue b/components/modal/modal-bg.vue
new file mode 100644
index 0000000..6e85584
--- /dev/null
+++ b/components/modal/modal-bg.vue
@@ -0,0 +1,49 @@
+<template>
+  <u-modal v-model="showModal" title="" :show-cancel-button="showCancelButton" @confirm="confirm" @cancel="cancel">
+    <view class="slot-content">
+      <slot></slot>
+    </view>
+  </u-modal>
+</template>
+
+<script>
+export default {
+  props: {
+    showCancelButton: {
+      type: Boolean,
+      default: true
+    },
+    confirm: {
+      type: Function,
+      default: () => { }
+    }
+  },
+  data() {
+    return {
+      showModal: false
+    }
+  },
+  methods: {
+    open() {
+      this.showModal = true;
+    },
+    cancel() {
+      this.showModal = false;
+    },
+  }
+
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .u-model__title {
+  padding-top: 0 !important;
+}
+
+.slot-content {
+  min-height: 400rpx;
+  box-sizing: border-box;
+  padding-top: 250rpx;
+  background: url(../../static/custom/moda-lbg.png) no-repeat center / 100% 100% !important;
+}
+</style>
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 5232a5f..78a8a76 100644
--- a/pages.json
+++ b/pages.json
@@ -680,6 +680,7 @@
       }
     },
     // 鐢熶骇鐩稿叧
+    // 鎶ュ伐
     {
       "path": "pages/product/report/index",
       "style": {
@@ -689,16 +690,26 @@
           "titleNView": {
             "buttons": [
               {
-                "text": "娓呯┖",
+                "text": "鎻愪氦",
                 "type": "none",
                 "color": "#ffffff",
-                "fontSize": "14px"
+                "fontSize": "14px",
+                "marginRight": "10px"
               }
             ]
           }
         }
       }
     },
+    // 杞﹂棿璁㈠崟鍒楄〃
+    {
+      "path": "pages/product/report/orderList",
+      "style": {
+        "navigationStyle": "custom",
+        "navigationBarTextStyle": "white",
+        "navigationBarBackgroundColor": "#3281FF"
+      }
+    },
     // 鏃ユ姤鐩稿叧
     {
       "path": "pages/daily/common/work-order-list",
diff --git a/pages/product/report/components/saveForm.vue b/pages/product/report/components/saveForm.vue
new file mode 100644
index 0000000..b99e88b
--- /dev/null
+++ b/pages/product/report/components/saveForm.vue
@@ -0,0 +1,140 @@
+<template>
+  <u-modal v-model="show" ref="uModal" title="" :show-cancel-button="true" @confirm="confirm" @cancel="cancel"
+    :async-close="true">
+    <view style="padding: 20rpx;">
+      <u-form :model="form" ref="uFormSave" :label-width="280" :rules="rules" :error-type="['toast']">
+        <u-form-item label="鎵瑰彿" :border-bottom="false" prop="value0">
+          <u-input v-model="form.value0" disabled />
+        </u-form-item>
+        <u-form-item label="闀垮害" :border-bottom="false" prop="value1">
+          <u-input v-model="form.value1" />
+        </u-form-item>
+        <u-form-item label="搴撲綅" :border-bottom="false" prop="value2">
+          <u-input v-model="form.value2" disabled />
+        </u-form-item>
+        <u-form-item label="鐩樺彿" :border-bottom="false" prop="value3">
+          <u-input v-model="form.value3" />
+        </u-form-item>
+        <u-form-item label="姣涢噸" :border-bottom="false" prop="value4">
+          <u-input v-model="form.value4" />
+        </u-form-item>
+        <u-form-item label="鍑�閲�" :border-bottom="false" prop="value5">
+          <u-input v-model="form.value5" />
+        </u-form-item>
+        <u-form-item label="宸ュ簭" :border-bottom="false" prop="value6">
+          <u-input v-model="form.value6" disabled />
+        </u-form-item>
+        <u-form-item label="鎴愬搧澶栧緞娴嬮噺鍊�" :border-bottom="false" prop="value7">
+          <u-input v-model="form.value7" />
+        </u-form-item>
+        <u-form-item label="閫�鐏數鍘�" :border-bottom="false" prop="value8">
+          <u-input v-model="form.value8" />
+        </u-form-item>
+        <u-form-item label="杞��" prop="value9" :border-bottom="false">
+          <u-input v-model="form.value9" />
+        </u-form-item>
+        <u-form-item label="澶栭儴姘斿帇" prop="value10" :border-bottom="false">
+          <u-input v-model="form.value10" />
+        </u-form-item>
+        <u-form-item label="鐢熶骇閫熷害" prop="value11" :border-bottom="false">
+          <u-input v-model="form.value11" />
+        </u-form-item>
+      </u-form>
+    </view>
+
+  </u-modal>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      show: false,
+      form: {
+        value0: null,
+        value1: null,
+        value2: null,
+        value3: null,
+        value4: null,
+        value5: null,
+        value6: null,
+        value7: null,
+        value8: null,
+        value9: null,
+        value10: null,
+        value11: null
+      },
+      rules: {
+        value1: [
+          { required: true, message: '璇疯緭鍏ラ暱搴�', trigger: ['blur', 'change'] },
+        ],
+        value3: [
+          { required: true, message: '璇疯緭鍏ョ洏鍙�', trigger: ['blur', 'change'] },
+        ],
+        value4: [
+          { required: true, message: '璇疯緭鍏ユ瘺閲�', trigger: ['blur', 'change'] },
+        ],
+        value5: [
+          { required: true, message: '璇疯緭鍏ュ噣閲�', trigger: ['blur', 'change'] },
+        ],
+        value7: [
+          { required: true, message: '璇疯緭鍏ユ垚鍝佸寰勬祴閲忓��', trigger: ['blur', 'change'] },
+        ],
+        value8: [
+          { required: true, message: '璇疯緭鍏ラ��鐏數鍘�', trigger: ['blur', 'change'] },
+        ],
+        value9: [
+          { required: true, message: '璇疯緭鍏ヨ浆閫�', trigger: ['blur', 'change'] },
+        ],
+        value10: [
+          { required: true, message: '璇疯緭鍏ュ閮ㄦ皵鍘�', trigger: ['blur', 'change'] }
+        ],
+        value11: [
+          { required: true, message: '璇疯緭鍏ョ敓浜ч�熷害', trigger: ['blur', 'change'] }
+        ]
+      },
+    }
+  },
+  watch: {
+    show(val) {
+      if (val) {
+        this.$nextTick(() => {
+          this.$refs.uFormSave.setRules(this.rules);
+        });
+      }
+    },
+  },
+  methods: {
+    confirm() {
+      this.$refs.uFormSave.validate((valid) => {
+        if (valid) {
+          console.log('楠岃瘉閫氳繃');
+          // 鎵ц鎻愪氦閫昏緫锛堝API璇锋眰锛�
+          // 鎻愪氦鎴愬姛鍚庡叧闂ā鎬佹
+          this.$refs.uModal.cancel();
+        } else {
+          console.log('楠岃瘉澶辫触');
+          // 鏄剧ず閿欒淇℃伅
+          this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+        }
+      });
+    },
+    cancel() {
+      this.show = false;
+    },
+    open() {
+      this.show = true;
+    }
+  },
+}
+</script>
+
+<style lang="scss" scoped>
+::v-deep .u-model__title {
+  padding-top: 0 !important;
+}
+
+::v-deep .u-input__input {
+  text-align: right !important;
+}
+</style>
\ No newline at end of file
diff --git a/pages/product/report/index.scss b/pages/product/report/index.scss
index 9f36785..78f1659 100644
--- a/pages/product/report/index.scss
+++ b/pages/product/report/index.scss
@@ -1,113 +1,29 @@
-.body {
-  background: linear-gradient(to bottom, #e5f0ff, #f6f9ff);
+.page {
   box-sizing: border-box;
-  padding-top: 26rpx;
-  height: 100vh;
+  padding: 30rpx;
 }
-.top_code {
-  height: 80rpx;
+.u-checkbox-group {
   display: flex;
-  align-items: center;
-  margin: 0 30rpx;
-  margin-bottom: 10rpx;
+  flex-direction: column;
 }
-.top_code_edit {
-  text-align: right;
-  flex: 1;
-  margin-bottom: 18rpx;
-}
-.main_view {
-  margin-top: 5rpx;
-  background-image: url("~@/static/custom/home/home_img_bg.png");
-  background-repeat: no-repeat;
-  background-size: 100% auto;
-  border-radius: 15rpx;
-  height: 936rpx;
-  margin: 0 30rpx;
-  box-sizing: border-box;
-  padding: 37rpx 25rpx;
+.u-form-item {
+  padding: 0;
 }
 
-.product-number-icon {
-  background-image: url("~@/static/custom/daily/icon_number.png");
-  background-repeat: no-repeat;
-  background-size: cover;
-  height: 32rpx;
-  width: 32rpx;
-  position: relative;
-  margin-right: 8rpx;
-}
-
-.product-edit-icon {
-  background-image: url("~@/static/custom/daily/icon_edit.png");
-  background-repeat: no-repeat;
-  background-size: cover;
-  height: 32rpx;
-  width: 32rpx;
-  position: relative;
-}
-.icon_history {
-  background-image: url("~@/static/custom/daily/icon_history.png");
-  background-repeat: no-repeat;
-  background-size: cover;
-  height: 26rpx;
-  width: 26rpx;
-  margin-right: 8rpx;
-  position: relative;
-}
-.icon_save {
-  background-image: url("~@/static/custom/daily/icon_save.png");
-  background-repeat: no-repeat;
-  background-size: cover;
-  height: 26rpx;
-  width: 26rpx;
-  margin-right: 8rpx;
-  position: relative;
-}
-.icon_right {
-  background-image: url("~@/static/custom/daily/icon_right.png");
-  background-repeat: no-repeat;
-  background-size: cover;
-  height: 26rpx;
-  width: 26rpx;
-  margin-right: 8rpx;
-  position: relative;
-}
-.main_top_title {
-  font-weight: 800;
-  font-size: 34rpx;
-  color: #1d2541;
-  margin-bottom: 20rpx;
-}
-.main_item {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  font-size: 30rpx;
-  line-height: 112rpx;
-  border-bottom: 1rpx solid rgba(213, 213, 213, 0.67);
-  box-sizing: border-box;
-  .value2 {
-    width: 450rpx; /*鐩掑瓙鏈�澶у搴�*/
-    overflow: hidden;
-    text-overflow: ellipsis; /* 璁剧疆鏂囨湰婧㈠嚭鏃舵樉绀虹渷鐣ュ彿 */
-    white-space: nowrap; /* 璁剧疆涓嶆崲琛� */
-    text-align: right;
-    padding-left: 40rpx;
+.packer-popup {
+  ::v-deep .u-mode-center-box {
+    border-radius: 30rpx;
   }
-}
-.btns {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-  margin-top: 33rpx;
-  .uni-button {
+  .popup-row {
+    background-image: url("~@/static/custom/packing/row_bg.png");
+    background-size: 100% auto;
+    background-repeat: no-repeat;
+    height: 89rpx;
+    width: 520rpx;
     display: flex;
-    align-items: center;
-    justify-content: center;
-  }
-  ::v-deep.u-icon__icon {
-    height: 26rpx;
-    width: 26rpx;
+    justify-content: space-between;
+    padding-top: 12rpx;
+    padding-left: 14rpx;
+    padding-right: 20rpx;
   }
 }
diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue
index e12c3ec..a31fa52 100644
--- a/pages/product/report/index.vue
+++ b/pages/product/report/index.vue
@@ -1,486 +1,214 @@
 <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="value0">
+        <u-radio-group v-model="form.value0">
+          <u-radio name="瀵间綋">瀵间綋</u-radio>
+          <u-radio name="閾滄潌">閾滄潌</u-radio>
+        </u-radio-group>
+      </u-form-item>
+      <u-form-item label="鎶ュ伐鍗曞彿" :border-bottom="false" prop="value1">
+        <u-input v-model="form.value1" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" @click="open" />
+      </u-form-item>
+      <u-form-item label="宸ュ簭" :border-bottom="false" prop="value2">
+        <u-input v-model="form.value2" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" />
+      </u-form-item>
+      <u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="value3">
+        <u-input v-model="form.value3" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="openList" />
+      </u-form-item>
+      <u-form-item label="闆朵欢鍙�" :border-bottom="false" prop="value4">
+        <u-input v-model="form.value4" placeholder="" disabled />
+      </u-form-item>
+      <u-form-item label="闆朵欢鎻忚堪" :border-bottom="false" prop="value5">
+        <u-input v-model="form.value5" placeholder="" disabled />
+      </u-form-item>
+      <u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="value6">
+        <u-input v-model="form.value6" placeholder="" disabled />
+      </u-form-item>
+      <u-form-item label="鍓╀綑鏁伴噺" :border-bottom="false" prop="value7">
+        <u-input v-model="form.value7" placeholder="" disabled />
+      </u-form-item>
+      <u-form-item label="搴撲綅" :border-bottom="false" prop="value8">
+        <u-input v-model="form.value8" placeholder="" disabled />
+      </u-form-item>
+      <u-form-item label="鎶ュ伐绫诲瀷" prop="value9">
+        <u-radio-group v-model="form.value9">
+          <u-radio name="涓嬫満鎶ュ伐">涓嬫満鎶ュ伐</u-radio>
+          <u-radio name="鏈笅鏈烘姤宸�">鏈笅鏈烘姤宸�</u-radio>
+        </u-radio-group>
+      </u-form-item>
+      <u-form-item label="鎺ユ敹闆朵欢" prop="value10">
+        <u-radio-group v-model="form.value10">
+          <u-radio name="杞﹂棿璁㈠崟">杞﹂棿璁㈠崟</u-radio>
+          <u-radio name="鏇夸唬闆朵欢">鏇夸唬闆朵欢</u-radio>
+        </u-radio-group>
+      </u-form-item>
+      <u-form-item label="鐗╂枡鍜屽伐搴�" prop="value11">
+        <u-checkbox-group>
+          <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index" v-model="item.value"
+            @change="changeCheckbox">
+            {{ item.name }}
+          </u-checkbox>
+        </u-checkbox-group>
+      </u-form-item>
+      <u-form-item label="搴撳瓨鎺ユ敹" :border-bottom="false" prop="value12"></u-form-item>
+    </u-form>
+    <!-- 濉啓鎶ュ伐鍗� -->
+    <modalBg ref="modalBg" :confirm="confirm">
+      <u-field v-model="form.value1" label="鎶ュ伐鍗曞彿" placeholder="璇疯緭鍏�" :border-bottom="false">
+      </u-field>
+    </modalBg>
+    <saveForm ref="saveForm" />
+  </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'
 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
-		});
-	},
-	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
-					}
-
-					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
-			}
-
-			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
-		}
-	}
+  components: { modalBg, saveForm },
+  data() {
+    return {
+      checkboxList: [
+        {
+          name: '鍊掑啿',
+          value: false
+        },
+        {
+          name: '宸ュ簭鐨勮嚜鍔ㄦ姤鍛�',
+          value: false
+        },
+        {
+          name: '绠�鍖栫墿鏂欐鏌�',
+          value: false
+        }
+      ],
+      form: {
+        value0: '',
+        value1: '',
+        value2: '',
+        value3: '',
+        value4: '',
+        value5: '',
+        value6: '',
+        value7: '',
+        value8: '',
+        value9: '涓嬫満鎶ュ伐',
+        value10: '杞﹂棿璁㈠崟',
+        value11: [], // 澶嶉�夋缁勭殑鍊�
+        value12: ''
+      },
+      rules: {
+        value0: [
+          {
+            required: true,
+            message: '璇烽�夋嫨杞﹂棿',
+            trigger: ['change']
+          }
+        ],
+        value1: [
+          {
+            required: true,
+            message: '璇烽�夋嫨鎶ュ伐鍗曞彿',
+            trigger: ['change', 'blur']
+          }
+        ],
+        value2: [
+          {
+            required: true,
+            message: '璇烽�夋嫨宸ュ簭',
+            trigger: ['change', 'blur']
+          }
+        ],
+        value3: [
+          {
+            required: true,
+            message: '璇烽�夋嫨璁㈠崟鍙�',
+            trigger: ['change', 'blur']
+          }
+        ],
+        value9: [
+          {
+            required: true,
+            message: '璇烽�夋嫨鎶ュ伐绫诲瀷',
+            trigger: ['change']
+          }
+        ],
+        value10: [
+          {
+            required: true,
+            message: '璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷',
+            trigger: ['change']
+          }
+        ],
+        value11: [
+          {
+            type: 'array',
+            required: true,
+            message: '璇疯嚦灏戦�夋嫨涓�涓墿鏂欏拰宸ュ簭閫夐」',
+            trigger: ['change']
+          }
+        ]
+      },
+      showSave: false,
+    }
+  },
+  // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
+  onNavigationBarButtonTap() {
+    this.form.value11 = this.checkboxList.filter(item => item.value).map(item => item.name);
+    this.$refs.uForm.validate(valid => {
+      if (valid) {
+        console.log('楠岃瘉閫氳繃');
+        // 澶勭悊鎻愪氦閫昏緫
+        this.$refs.saveForm.open();
+      } else {
+        console.log('楠岃瘉澶辫触');
+        // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
+        const errors = this.$refs.uForm.getError();
+        console.log('閿欒淇℃伅:', errors);
+      }
+    });
+  },
+  onReady() {
+    this.$refs.uForm.setRules(this.rules);
+  },
+  methods: {
+    // 澶氶�夊鐞�
+    changeCheckbox(val) {
+      if (val.name === '鍊掑啿') {
+        this.checkboxList[2].value = false
+      }
+      if (val.name === '绠�鍖栫墿鏂欐鏌�') {
+        this.checkboxList[0].value = false
+      }
+    },
+    // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
+    open() {
+      this.$refs.modalBg.open();
+    },
+    // 寮规淇濆瓨
+    confirm() {
+      console.log('淇濆瓨', this.form.value1);
+      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+    },
+    // 閫夋嫨璁㈠崟鍙�
+    openList() {
+      if (this.form.value1 === '') {
+        uni.showToast({
+          title: '璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�',
+          icon: 'none'
+        })
+        return
+      }
+      uni.navigateTo({
+        url: '/pages/product/report/orderList'
+      })
+    },
+    setNo(val) {
+      this.form.value3 = val
+    }
+  }
 }
 </script>
 
diff --git a/pages/product/report/index0.scss b/pages/product/report/index0.scss
new file mode 100644
index 0000000..9f36785
--- /dev/null
+++ b/pages/product/report/index0.scss
@@ -0,0 +1,113 @@
+.body {
+  background: linear-gradient(to bottom, #e5f0ff, #f6f9ff);
+  box-sizing: border-box;
+  padding-top: 26rpx;
+  height: 100vh;
+}
+.top_code {
+  height: 80rpx;
+  display: flex;
+  align-items: center;
+  margin: 0 30rpx;
+  margin-bottom: 10rpx;
+}
+.top_code_edit {
+  text-align: right;
+  flex: 1;
+  margin-bottom: 18rpx;
+}
+.main_view {
+  margin-top: 5rpx;
+  background-image: url("~@/static/custom/home/home_img_bg.png");
+  background-repeat: no-repeat;
+  background-size: 100% auto;
+  border-radius: 15rpx;
+  height: 936rpx;
+  margin: 0 30rpx;
+  box-sizing: border-box;
+  padding: 37rpx 25rpx;
+}
+
+.product-number-icon {
+  background-image: url("~@/static/custom/daily/icon_number.png");
+  background-repeat: no-repeat;
+  background-size: cover;
+  height: 32rpx;
+  width: 32rpx;
+  position: relative;
+  margin-right: 8rpx;
+}
+
+.product-edit-icon {
+  background-image: url("~@/static/custom/daily/icon_edit.png");
+  background-repeat: no-repeat;
+  background-size: cover;
+  height: 32rpx;
+  width: 32rpx;
+  position: relative;
+}
+.icon_history {
+  background-image: url("~@/static/custom/daily/icon_history.png");
+  background-repeat: no-repeat;
+  background-size: cover;
+  height: 26rpx;
+  width: 26rpx;
+  margin-right: 8rpx;
+  position: relative;
+}
+.icon_save {
+  background-image: url("~@/static/custom/daily/icon_save.png");
+  background-repeat: no-repeat;
+  background-size: cover;
+  height: 26rpx;
+  width: 26rpx;
+  margin-right: 8rpx;
+  position: relative;
+}
+.icon_right {
+  background-image: url("~@/static/custom/daily/icon_right.png");
+  background-repeat: no-repeat;
+  background-size: cover;
+  height: 26rpx;
+  width: 26rpx;
+  margin-right: 8rpx;
+  position: relative;
+}
+.main_top_title {
+  font-weight: 800;
+  font-size: 34rpx;
+  color: #1d2541;
+  margin-bottom: 20rpx;
+}
+.main_item {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  font-size: 30rpx;
+  line-height: 112rpx;
+  border-bottom: 1rpx solid rgba(213, 213, 213, 0.67);
+  box-sizing: border-box;
+  .value2 {
+    width: 450rpx; /*鐩掑瓙鏈�澶у搴�*/
+    overflow: hidden;
+    text-overflow: ellipsis; /* 璁剧疆鏂囨湰婧㈠嚭鏃舵樉绀虹渷鐣ュ彿 */
+    white-space: nowrap; /* 璁剧疆涓嶆崲琛� */
+    text-align: right;
+    padding-left: 40rpx;
+  }
+}
+.btns {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-top: 33rpx;
+  .uni-button {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  ::v-deep.u-icon__icon {
+    height: 26rpx;
+    width: 26rpx;
+  }
+}
diff --git a/pages/product/report/index0.vue b/pages/product/report/index0.vue
new file mode 100644
index 0000000..45e05be
--- /dev/null
+++ b/pages/product/report/index0.vue
@@ -0,0 +1,489 @@
+<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>
+</template>
+
+<script>
+import {
+	dateFormat
+} from "@/utils/date.js";
+import UIcon from "../../../uview-ui/components/u-icon/u-icon.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
+		});
+	},
+	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
+					}
+
+					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
+			}
+
+			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
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+@import 'index0.scss';
+</style>
\ No newline at end of file
diff --git a/pages/product/report/orderList.vue b/pages/product/report/orderList.vue
new file mode 100644
index 0000000..b48b167
--- /dev/null
+++ b/pages/product/report/orderList.vue
@@ -0,0 +1,312 @@
+<template>
+  <view class="page">
+    <view class="finishProductIn-locno-bg" />
+    <u-navbar title="杞﹂棿璁㈠崟鍒楄〃" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
+      back-icon-color="#000" />
+    <view class="finishProductIn-locno-search">
+      <u-search v-model="keywords" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false"
+        placeholder="璇疯緭鍏ヨ溅闂磋鍗曞彿" @clear="search" @custom="search" @search="search">
+      </u-search>
+    </view>
+    <view class="wrap">
+      <scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="loadMore">
+        <u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false">
+          <view class="content" v-for="(item, index) in list" :key="item.locNo" :index="index"
+            @click="selectNo(item.index)">
+            <view class="content-header">
+              <view class="content-header-title">{{ item.index }}</view>
+            </view>
+            <view class="content-body">
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-1">
+                  </view>
+                  <view class="_label-name">璁㈠崟鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.value0 }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-2">
+                  </view>
+                  <view class="_label-name">闆朵欢鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.value1 }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-3">
+                  </view>
+                  <view class="_label-name">闆朵欢鎻忚堪锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.value2 }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-1">
+                  </view>
+                  <view class="_label-name">鎵归噺澶у皬锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.value3 }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-2">
+                  </view>
+                  <view class="_label-name">寮�濮嬫棩鏈燂細</view>
+                </view>
+                <view class="_content">
+                  {{ item.value4 }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-icon-3">
+                  </view>
+                  <view class="_label-name">缁撴潫鏃ユ湡锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.value5 }}
+                </view>
+              </view>
+            </view>
+          </view>
+        </u-cell-group>
+        <view class="loadmore" @click="loadMore">
+          <u-loadmore :status="loadStatus"></u-loadmore>
+        </view>
+      </scroll-view>
+    </view>
+  </view>
+</template>
+<script>
+import content_bg from '@/static/custom/finishProductIn/locNoBg.png'
+export default {
+  data() {
+    return {
+      background: {
+        backgroundImage: `url(${content_bg})`,
+        backgroundAttachment: 'fixed',
+        backgroundSize: '100% auto',
+        backgroundRepeat: 'no-repeat',
+      },
+      keywords: '',
+      alllist: [],
+      originList: [],
+      query: {
+        current: 1,
+        size: 10
+      },
+      list: [
+        {
+          index: 1,
+          value0: '123456789',
+          value1: '123456789',
+          value2: '123456789',
+          value3: '123456789',
+          value4: '123456789',
+          value5: '123456789'
+        }
+      ],
+      count: 0,
+      loadStatus: 'loading'
+    };
+  },
+  onLoad() {
+    this.$u.api.finishProductIn.fetchList().then(res => {
+      this.alllist = res.data
+      this.originList = res.data
+      this.loadList()
+    })
+  },
+  methods: {
+    loadMore() {
+      if (this.loadStatus == "nomore" || this.loadStatus == "loading") {
+        return
+      }
+      this.loadStatus = "loading";
+      setTimeout(() => {
+        this.query.current += 1;
+        this.loadList();
+      }, 100);
+    },
+    loadList() {
+      const data = this.originList.slice((this.query.current - 1) * this.query.size, this.query.current * this.query.size)
+      this.list = this.list.concat(data);
+      this.loadStatus = "loadmore";
+      if (!data || data.length < this.query.size) {
+        this.loadStatus = "nomore";
+      }
+    },
+    search(value) {
+      this.list = [];
+      this.query.current = 1;
+      if (value) {
+        this.originList = this.alllist.filter(item => item.locNo.includes(value))
+      } else {
+        this.originList = this.alllist
+      }
+      this.loadList()
+    },
+    selectNo(no) {
+      this.refreshLastPage(no)
+    },
+
+    //鍒锋柊涓婁竴涓〉闈�
+    refreshLastPage(no) {
+      // 鍛婄煡 A.vue 鏇存柊鏁版嵁
+      // 鑾峰彇椤甸潰鏍�
+      let pages = getCurrentPages()
+
+      // 鑾峰彇涓婁竴椤垫爤
+      let prevPage = pages[pages.length - 2]
+
+      // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�)
+      prevPage.$vm.setNo(no)
+
+      // 杩斿洖涓婁竴椤�
+      uni.navigateBack({
+        delta: 1
+      })
+    },
+  }
+};
+</script>
+<style lang="scss">
+.finishProductIn-locno-bg {
+  background-color: #F6F9FF;
+  background-image: url('~@/static/custom/finishProductIn/locNoBg.png');
+  // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
+  padding: 0 20rpx;
+  background-attachment: fixed;
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  width: 100%;
+  z-index: -1;
+}
+
+.finishProductIn-locno-search {
+  padding: 40rpx 30rpx 20rpx 30rpx;
+}
+
+.wrap .finishProductIn-locno-scroll-list {
+  height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
+  width: 100%;
+}
+
+.finishProductIn-locno-scroll-list-group {
+  ::v-deep .u-cell-item-box {
+    background-color: rgba(250, 252, 255, 0.36) !important;
+    padding: 0rpx 30rpx;
+  }
+
+  .content {
+    font-size: 12px;
+    background-color: #FFFFFF;
+    box-sizing: border-box;
+    border-radius: 10rpx;
+    margin: 0rpx 0rpx 16rpx;
+    padding: 20rpx 8rpx;
+    box-shadow: none;
+    display: flex;
+    align-items: center;
+
+    .content-header {
+      width: 40rpx;
+      height: 90rpx;
+      display: flex;
+      align-items: center;
+
+      .content-header-icon {
+        background-image: url('~@/static/custom/moveWareHouse/header_icon.png');
+        background-size: 100% auto;
+        background-repeat: no-repeat;
+        height: 28rpx;
+        width: 28rpx;
+      }
+
+      .content-header-title {
+        margin-left: 11rpx;
+        font-size: 26rpx;
+        font-weight: bold;
+        color: #333333;
+      }
+    }
+
+    .content-body {
+      flex: 1;
+      background: #F5F9FF;
+      border-radius: 10rpx;
+      padding: 0rpx 23rpx;
+
+      .row-list {
+        height: 60rpx;
+        display: flex;
+        flex-direction: row;
+        padding: 0px;
+        align-items: center;
+      }
+
+      .row-list ._label {
+        display: flex;
+        flex: 0.8;
+        color: #909399;
+        align-items: center;
+
+        ._label-icon-1 {
+          background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png');
+          background-size: 100% auto;
+          background-repeat: no-repeat;
+          height: 26rpx;
+          width: 26rpx;
+        }
+
+        ._label-icon-2 {
+          background-image: url('~@/static/custom/moveWareHouse/label-icon-2.png');
+          background-size: 100% auto;
+          background-repeat: no-repeat;
+          height: 26rpx;
+          width: 26rpx;
+        }
+
+        ._label-icon-3 {
+          background-image: url('~@/static/custom/moveWareHouse/label-icon-3.png');
+          background-size: 100% auto;
+          background-repeat: no-repeat;
+          height: 26rpx;
+          width: 26rpx;
+        }
+
+        ._label-name {
+          margin-left: 11rpx;
+          font-size: 26rpx;
+          font-weight: 500;
+          color: #666666;
+        }
+      }
+
+      .row-list ._content {
+        flex: 1.5;
+        text-align: right;
+        color: #909399;
+        font-size: 24rpx;
+      }
+
+      .row-list .s1 {
+        color: #D35651;
+      }
+    }
+  }
+}
+</style>
diff --git a/pages/wareHouse/moveWareHouse/index.vue b/pages/wareHouse/moveWareHouse/index.vue
index e1d9638..14bb537 100644
--- a/pages/wareHouse/moveWareHouse/index.vue
+++ b/pages/wareHouse/moveWareHouse/index.vue
@@ -1,22 +1,23 @@
 <template>
 	<view class="page">
-		<view class="movewarehouse-index-bg"/>
-		<u-navbar title="绉诲簱" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" back-icon-color="#000"/>
+		<view class="movewarehouse-index-bg" />
+		<u-navbar title="绉诲簱" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
+			back-icon-color="#000" />
 		<view class="movewarehouse-index-search">
 			<!--<u-search v-model="keywords" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false" placeholder="璇疯緭鍏ュ簱浣嶅彿" @clear="search" @custom="search" @search="search">
 			</u-search>-->
 			<view class="movewarehouse-index-search-view">
 				<view class="movewarehouse-index-search-view-item">
-			      <text class="item-one">鑷冲簱浣嶅彿</text>
-				  <text class="item-one-content">{{tolocationNo}}</text>
-			    </view>
+					<text class="item-one">鑷冲簱浣嶅彿</text>
+					<text class="item-one-content">{{ tolocationNo }}</text>
+				</view>
 				<view class="movewarehouse-index-search-view-item" @click="seachLocationNo()">
-				   <text class="item-two">璇烽�夋嫨</text>
-			       <u-icon name="arrow-right" color="#2979ff" size="28"></u-icon>
+					<text class="item-two">璇烽�夋嫨</text>
+					<u-icon name="arrow-right" color="#2979ff" size="28"></u-icon>
 				</view>
 			</view>
 		</view>
-		 <view class="wrap">
+		<view class="wrap">
 			<scroll-view class="movewarehouse-index-scroll-list" scroll-y="true">
 				<u-cell-group class="movewarehouse-index-scroll-list-group" :border="false">
 					<view class="content" v-for="(item, index) in list" :key="item.id" :index="index">
@@ -31,7 +32,7 @@
 							</view>
 							<view class="header-item-toolbar" @click="deleteHandle(item)">
 								<view class="header-item-toolbar-del-icon">
-									
+
 								</view>
 								<view class="header-item-toolbar-del-text">
 									鍒犻櫎
@@ -72,7 +73,7 @@
 								</view>
 								<view class="_content">
 									<text class="_content-text">{{ item.availableStockQuantity }}</text>
-									 ({{ item.unit }})
+									({{ item.unit }})
 								</view>
 							</view>
 							<view class="row-list">
@@ -89,437 +90,459 @@
 				</u-cell-group>
 			</scroll-view>
 			<scan></scan>
-			<view class="new-form-footer" v-if="list.length>0">
+			<view class="new-form-footer" v-if="list.length > 0">
 				<u-button class="btn" type="primary" @click="submit">鎻愪氦</u-button>
 			</view>
 		</view>
-    </view>
+	</view>
 </template>
 <script>
-	import scan from "@/components/scan/scan.vue";
-    import content_bg from '@/static/custom/moveWareHouse/locNoBg.png'
-	export default {
-		components: {
-			scan
-		},
-		data() {
-			return {
-				background:{
-					backgroundImage: `url(${content_bg})`,
-					backgroundAttachment: 'fixed',
-					backgroundSize: '100% auto',
-					backgroundRepeat: 'no-repeat',
-				},
-				list: [],
-				tolocationNo: "",
-				keywords:''
-			};
-		},
-		onLoad() {
-			// this.loadList("221206000739N");
-			// let data = '{"part_no":"88.118.1/A0047954","lot_batch_no":"221112000082N","qty_arrived":0.5,"wdr":"221112000082N"}'
-			// let data = '221206000739N'
-			// let sn = ''
-			// if (data.indexOf('{') >= 0) {
-			// 	//澶ф爣绛句簩浣嶇爜
-			// 	sn = JSON.parse(data).lot_batch_no
-			// } else {
-			// 	//灏忔爣绛炬潯鐮�
-			// 	sn = data
-			// }
-			// console.log(sn);
-		},
-		onShow() {
+import scan from "@/components/scan/scan.vue";
+import content_bg from '@/static/custom/moveWareHouse/locNoBg.png'
+export default {
+	components: {
+		scan
+	},
+	data() {
+		return {
+			background: {
+				backgroundImage: `url(${content_bg})`,
+				backgroundAttachment: 'fixed',
+				backgroundSize: '100% auto',
+				backgroundRepeat: 'no-repeat',
+			},
+			list: [],
+			tolocationNo: "",
+			keywords: ''
+		};
+	},
+	onLoad() {
+		// this.loadList("221206000739N");
+		// let data = '{"part_no":"88.118.1/A0047954","lot_batch_no":"221112000082N","qty_arrived":0.5,"wdr":"221112000082N"}'
+		// let data = '221206000739N'
+		// let sn = ''
+		// if (data.indexOf('{') >= 0) {
+		// 	//澶ф爣绛句簩浣嶇爜
+		// 	sn = JSON.parse(data).lot_batch_no
+		// } else {
+		// 	//灏忔爣绛炬潯鐮�
+		// 	sn = data
+		// }
+		// console.log(sn);
+	},
+	onShow() {
 
+		let that = this
+
+		uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+		uni.$on('scan', function (data) {
+			console.log('onscan');
+			//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+			console.log('鎵爜缁撴灉锛�', data.code);
+
+			if (data.code != "" && (that.tolocationNo == "")) {
+				uni.showToast({
+					title: '璇烽�夋嫨鑷冲簱浣嶅彿',
+					icon: 'none'
+				})
+				return
+			}
+
+			let sn = ''
+			if (data.code.indexOf('{') >= 0) {
+				//澶ф爣绛句簩浣嶇爜
+				let snNoIndex = data.code.indexOf('sn_no')
+				if (snNoIndex > -1) {
+					sn = JSON.parse(data.code).sn_no
+				} else {
+					sn = JSON.parse(data.code).lot_batch_no
+				}
+			} else {
+				//灏忔爣绛炬潯鐮�
+				sn = data.code
+			}
+
+			//鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦�  SN 鏄惁宸茬粡瀛樺湪
+			let initList = that.list.filter(item => item
+				.partBatchNo == sn)
+			if (initList.length > 0) {
+				uni.showToast({
+					title: "SN:" + sn + ",宸插瓨鍦�,璇烽�夋嫨鍙︿竴涓猄N鍙�",
+					icon: "none"
+				});
+				return
+			}
+
+			that.loadList(sn);
+		})
+	},
+	onNavigationBarButtonTap(e) {
+		uni.scanCode({
+			success: res => {
+				try {
+					const result = JSON.parse(res.result)
+
+				} catch (e) { }
+			}
+		});
+	},
+	methods: {
+		//鑷冲簱浣�
+		seachLocationNo() {
+			uni.navigateTo({
+				url: '/pages/wareHouse/moveWareHouse/locNoList'
+			})
+		},
+		loadList(sanCode) {
+			uni.showLoading({
+				mask: true,
+				title: "鍔犺浇涓�",
+			});
 			let that = this
 
-			uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
-			uni.$on('scan', function(data) {
-				console.log('onscan');
-				//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-				console.log('鎵爜缁撴灉锛�', data.code);
-
-				if (data.code != "" && (that.tolocationNo == "")) {
-					uni.showToast({
-						title: '璇烽�夋嫨鑷冲簱浣嶅彿',
-						icon: 'none'
-					})
-					return
-				}
-				
-				let sn = ''
-				if (data.code.indexOf('{') >= 0) {
-					//澶ф爣绛句簩浣嶇爜
-					let snNoIndex=data.code.indexOf('sn_no')
-					if(snNoIndex>-1){
-						sn = JSON.parse(data.code).sn_no
-					}else{
-						sn = JSON.parse(data.code).lot_batch_no
-					}
-				} else {
-					//灏忔爣绛炬潯鐮�
-					sn = data.code
+			if (sanCode != "") {
+				let data = {
+					sn: sanCode
 				}
 
-				//鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦�  SN 鏄惁宸茬粡瀛樺湪
-				let initList = that.list.filter(item => item
-					.partBatchNo == sn)
+				//鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦� 鑷冲簱浣嶅彿 SN 
+				let initList = that.list.filter(item => item.arriveLocationNo == that.tolocationNo).filter(item => item
+					.partBatchNo == sanCode)
 				if (initList.length > 0) {
 					uni.showToast({
-						title: "SN:" + sn + ",宸插瓨鍦�,璇烽�夋嫨鍙︿竴涓猄N鍙�",
+						title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",宸茬粡鎵繃鐮�",
 						icon: "none"
 					});
 					return
 				}
 
-				that.loadList(sn);
-			})
-		},
-		onNavigationBarButtonTap(e) {
-			uni.scanCode({
-				success: res => {
-					try {
-						const result = JSON.parse(res.result)
+				// 鏌ヨ绉诲簱淇℃伅
+				that.$u.api.pigxWareHouse.list(data).then(res => {
+					let reList = []
+					reList = res.data
 
-					} catch (e) {}
+					if (reList.length == 0) {
+						uni.showToast({
+							title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",鏈壂鍒扮Щ搴撲俊鎭�",
+							icon: "none"
+						});
+					} else {
+						for (let i = 0; i < reList.length; i++) {
+							if (reList[i].locationNo !== that.tolocationNo) {
+								let item = {
+									id: reList[i].id,
+									partNo: reList[i].partNo,
+									partName: reList[i].partName,
+									partBatchNo: reList[i].partBatchNo,
+									ifsBatchNo: reList[i].ifsBatchNo,
+									unit: reList[i].unit,
+									locationNo: reList[i].locationNo,
+									availableStockQuantity: reList[i].availableStockQuantity,
+									arriveLocationNo: that.tolocationNo,
+									moveQty: 0
+								}
+								that.list.push(item)
+							}
+						}
+					}
+
+					uni.hideLoading();
+				})
+			}
+		},
+		//鑷冲簱浣嶅彿璁剧疆
+		setNo(no) {
+			this.tolocationNo = no
+		},
+		deleteHandle(obj) {
+			let that = this
+			uni.showModal({
+				title: '鎻愮ず',
+				content: '姝ゆ搷浣滃皢鍒犻櫎璇ョЩ搴撲俊鎭�, 鏄惁缁х画?',
+				success: function (res) {
+					if (res.confirm) {
+						that.list.map((item, index) => {
+							if (obj.id == item.id) {
+								that.list.splice(index, 1)
+							}
+						});
+					}
 				}
 			});
 		},
-		methods: {
-			//鑷冲簱浣�
-			seachLocationNo() {
-				uni.navigateTo({
-					url: '/pages/wareHouse/moveWareHouse/locNoList'
-				})
-			},
-			loadList(sanCode) {
-				uni.showLoading({
-					mask: true,
-					title: "鍔犺浇涓�",
-				});
-				let that = this
+		submit() {
+			let that = this
 
-				if (sanCode != "") {
-					let data = {
-						sn: sanCode
-					}
+			that.list.map((item) => {
 
-					//鍒ゆ柇鏁扮粍涓槸鍚﹀瓨鍦� 鑷冲簱浣嶅彿 SN 
-					let initList = that.list.filter(item => item.arriveLocationNo == that.tolocationNo).filter(item => item
-						.partBatchNo == sanCode)
-					if (initList.length > 0) {
-						uni.showToast({
-							title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",宸茬粡鎵繃鐮�",
-							icon: "none"
-						});
-						return
-					}
 
-					// 鏌ヨ绉诲簱淇℃伅
-					that.$u.api.pigxWareHouse.list(data).then(res => {
-						let reList = []
-						reList = res.data
+				if (item.moveQty <= 0) {
+					uni.showToast({
+						title: '璇风Щ搴撴暟閲忓繀椤诲ぇ浜�0',
+						icon: "none"
+					});
+					return
+				}
 
-						if (reList.length == 0) {
-							uni.showToast({
-								title: "搴撲綅鍙�:" + that.tolocationNo + ",SN:" + sanCode + ",鏈壂鍒扮Щ搴撲俊鎭�",
-								icon: "none"
-							});
-						} else {
-							for (let i = 0; i < reList.length; i++) {
-								if (reList[i].locationNo !== that.tolocationNo) {
-									let item = {
-										id: reList[i].id,
-										partNo: reList[i].partNo,
-										partName: reList[i].partName,
-										partBatchNo: reList[i].partBatchNo,
-										ifsBatchNo: reList[i].ifsBatchNo,
-										unit: reList[i].unit,
-										locationNo: reList[i].locationNo,
-										availableStockQuantity: reList[i].availableStockQuantity,
-										arriveLocationNo: that.tolocationNo,
-										moveQty: 0
-									}
-									that.list.push(item)
-								}
-							}
+				if (item.moveQty > item.availableStockQuantity) {
+					uni.showToast({
+						title: '绉诲簱鏁伴噺涓嶈兘澶т簬鍙敤搴撳瓨鏁伴噺',
+						icon: "none"
+					});
+					return
+				}
+			});
+
+
+			let subList = []
+			that.list.map((item) => {
+
+				let sub = {
+					stockId: item.id,
+					arriveLocationNo: item.arriveLocationNo,
+					moveQty: item.moveQty
+				}
+
+				subList.push(sub)
+
+			});
+
+			that.$u.api.pigxWareHouse.addList(subList).then(res => {
+
+				if (res.code == 0) {
+					uni.showModal({
+						title: '鎻愮ず',
+						content: '鎻愪氦鎴愬姛',
+						showCancel: false,
+						success: function () {
+							that.list = []
+							that.tolocationNo = ""
 						}
+					})
+				} else {
+					uni.showModal({
+						title: '鎻愮ず',
+						content: '鎻愪氦澶辫触',
+						showCancel: false,
+						success: function () {
 
-						uni.hideLoading();
+						}
 					})
 				}
-			},
-			//鑷冲簱浣嶅彿璁剧疆
-			setNo(no) {
-				this.tolocationNo = no
-			},
-			deleteHandle(obj) {
-				let that = this
-				uni.showModal({
-					title: '鎻愮ず',
-					content: '姝ゆ搷浣滃皢鍒犻櫎璇ョЩ搴撲俊鎭�, 鏄惁缁х画?',
-					success: function(res) {
-						if (res.confirm) {
-							that.list.map((item, index) => {
-								if (obj.id == item.id) {
-									that.list.splice(index, 1)
-								}
-							});
-						}
-					}
-				});
-			},
-			submit() {
-				let that = this
 
-				that.list.map((item) => {
+			})
 
 
-					if (item.moveQty <= 0) {
-						uni.showToast({
-							title: '璇风Щ搴撴暟閲忓繀椤诲ぇ浜�0',
-							icon: "none"
-						});
-						return
-					}
-
-					if (item.moveQty > item.availableStockQuantity) {
-						uni.showToast({
-							title: '绉诲簱鏁伴噺涓嶈兘澶т簬鍙敤搴撳瓨鏁伴噺',
-							icon: "none"
-						});
-						return
-					}
-				});
-
-
-				let subList = []
-				that.list.map((item) => {
-
-					let sub = {
-						stockId: item.id,
-						arriveLocationNo: item.arriveLocationNo,
-						moveQty: item.moveQty
-					}
-
-					subList.push(sub)
-
-				});
-
-				that.$u.api.pigxWareHouse.addList(subList).then(res => {
-
-					if (res.code == 0) {
-						uni.showModal({
-							title: '鎻愮ず',
-							content: '鎻愪氦鎴愬姛',
-							showCancel: false,
-							success: function() {
-								that.list = []
-								that.tolocationNo = ""
-							}
-						})
-					} else {
-						uni.showModal({
-							title: '鎻愮ず',
-							content: '鎻愪氦澶辫触',
-							showCancel: false,
-							success: function() {
-
-							}
-						})
-					}
-
-				})
-
-
-			},
-		}
-	};
+		},
+	}
+};
 </script>
 <style lang="scss" scoped>
-	.movewarehouse-index-bg{
-		background-color: #F6F9FF;
-		background-image: url('~@/static/custom/moveWareHouse/locNoBg.png');
-		// background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
-		padding: 0 20rpx;
-		background-attachment: fixed;
-		background-size: 100% auto;
-		background-repeat: no-repeat;
-		position: fixed;
-		top: 0;
-		bottom: 0;
-		width: 100%;
-		z-index: -1;
-	}
-	.movewarehouse-index-search{
-		padding: 40rpx 30rpx 20rpx 30rpx;
-	}
-	.movewarehouse-index-search-view{
-		height: 66rpx;
-		border: 1px solid #ADC8E4;
-		border-radius: 8rpx;
-		background: rgba(250,252,255,0.36);
-		line-height: 66rpx;
-		padding-left:33rpx;
-		padding-right:10rpx;
-		display:flex;
-		justify-content: space-between;
-		.movewarehouse-index-search-view-item{
-			.item-one{
-				font-size: 30rpx;
-				color: #283E65;
-			}
-			.item-one-content{
-				margin-left: 10rpx;
-				color: #909399;
-				font-size: 26rpx;
-			}
-			.item-two{
-				font-size: 30rpx;
-				color: #A6B4CC;
-			}
+.movewarehouse-index-bg {
+	background-color: #F6F9FF;
+	background-image: url('~@/static/custom/moveWareHouse/locNoBg.png');
+	// background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
+	padding: 0 20rpx;
+	background-attachment: fixed;
+	background-size: 100% auto;
+	background-repeat: no-repeat;
+	position: fixed;
+	top: 0;
+	bottom: 0;
+	width: 100%;
+	z-index: -1;
+}
+
+.movewarehouse-index-search {
+	padding: 40rpx 30rpx 20rpx 30rpx;
+}
+
+.movewarehouse-index-search-view {
+	height: 66rpx;
+	border: 1px solid #ADC8E4;
+	border-radius: 8rpx;
+	background: rgba(250, 252, 255, 0.36);
+	line-height: 66rpx;
+	padding-left: 33rpx;
+	padding-right: 10rpx;
+	display: flex;
+	justify-content: space-between;
+
+	.movewarehouse-index-search-view-item {
+		.item-one {
+			font-size: 30rpx;
+			color: #283E65;
+		}
+
+		.item-one-content {
+			margin-left: 10rpx;
+			color: #909399;
+			font-size: 26rpx;
+		}
+
+		.item-two {
+			font-size: 30rpx;
+			color: #A6B4CC;
 		}
 	}
-	.wrap .movewarehouse-index-scroll-list{
-		height:calc(100vh - var(--window-top) - var(--window-bottom) - 378rpx);
-	    width:100%;
-	}
-	.movewarehouse-index-scroll-list-group{
-		::v-deep .u-cell-item-box {
-			background-color:rgba(250,252,255,0.36) !important;
-			padding:0rpx 30rpx ;
-	    }
-		.content {
-			font-size: 12px;
-			background-color: #FFFFFF;
-			box-sizing: border-box;
-			border-radius: 10rpx;
-			margin: 0rpx 0rpx 16rpx;
-			height: 432rpx;
-			padding: 10rpx 20rpx;
-			box-shadow:0rpx 6rpx 12rpx 2rpx rgba(127, 127, 127, 0.1) !important;
-			position:relative;
-			.content-header{
-				.header-item{
-					height: 50rpx;
-					display: flex;
-					align-items:center;
-					.content-header-icon-one{
-						background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png');
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height:28rpx;
-						width:28rpx;
-					}
-					.content-header-icon-two{
-						background-image: url('~@/static/custom/moveWareHouse/header_icon.png');
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height:28rpx;
-						width:28rpx;
-					}
-					.content-header-title{
-						margin-left: 11rpx;
-						font-size: 26rpx;
-						font-weight: bold;
-						color: #333333;
-					}
-			    }
-				.header-item-toolbar{
-					position: absolute;
-					background-image: url('~@/static/custom/moveWareHouse/del-icon.png');
-					background-size: 100% auto;
-					background-repeat: no-repeat;
-					height:60rpx;
-					width:140rpx;
-					right:0;
-					top:0;
-					display: flex;
-					justify-content: flex-end;
-					padding-top: 10rpx;
-					padding-right: 18rpx;
-					.header-item-toolbar-del-icon{
-						background-image: url('~@/static/custom/moveWareHouse/icon_dele.png');
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height:25rpx;
-						width:22rpx;
-						margin-top: 5rpx;
-					}
-					.header-item-toolbar-del-text{
-						margin-left:7rpx;
-						height: 23rpx;
-						font-size: 24rpx;
-						color: #FFFFFF;
-					}
-				}
-			}
-			
-			.content-body{
-				height:300rpx;
-				background: #F5F9FF;
-				border-radius: 10rpx;
-				padding: 25rpx 23rpx;
-				.row-list {
-					height: 50rpx;
-					display: flex;
-					flex-direction: row;
-					padding: 0px;
-					align-items: center;
-					justify-content: space-between;
-				}
-				.row-list ._label {
-					display: flex;
-					color: #666666;
-					font-size:26rpx;
-					align-items: center;
-					width: 170rpx;
-				}
-				
-				.row-list ._content {
-					text-align: right;
-					color: #909399;
-					font-size: 24rpx;
-					._content-text{
-						color:#214ded;
-					}
-				}
-				.row-list ._input {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					border-bottom: 1px solid #4FA0FF;
-					height: 56rpx;
-					.edit_icon{
-						background-image: url('~@/static/custom/finishProductIn/icon_edit.png');
-						background-size: 100% auto;
-						background-repeat: no-repeat;
-						height:26rpx;
-						width:26rpx;
-					}
-					::v-deep .uni-input-input{
-						color:#D35651;
-					}
-				}
-			}
-		}
+}
+
+.wrap .movewarehouse-index-scroll-list {
+	height: calc(100vh - var(--window-top) - var(--window-bottom) - 378rpx);
+	width: 100%;
+}
+
+.movewarehouse-index-scroll-list-group {
+	::v-deep .u-cell-item-box {
+		background-color: rgba(250, 252, 255, 0.36) !important;
+		padding: 0rpx 30rpx;
 	}
 
-    .new-form-footer{
-		display: flex;
-		margin-top: 10rpx;
-		margin-bottom: 10rpx;
-		margin-left: 20rpx;
-		margin-right: 20rpx;
-		padding-bottom: 14rpx;
-		.btn {
-		  flex: 1;
-		  margin: 10rpx;
-		  background: #214DED;
-		  box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4,49,212,0.3);
-		  font-weight: bold;
-		  color: #FEFEFE;
-		  font-family: PingFang SC;
+	.content {
+		font-size: 12px;
+		background-color: #FFFFFF;
+		box-sizing: border-box;
+		border-radius: 10rpx;
+		margin: 0rpx 0rpx 16rpx;
+		height: 432rpx;
+		padding: 10rpx 20rpx;
+		box-shadow: 0rpx 6rpx 12rpx 2rpx rgba(127, 127, 127, 0.1) !important;
+		position: relative;
+
+		.content-header {
+			.header-item {
+				height: 50rpx;
+				display: flex;
+				align-items: center;
+
+				.content-header-icon-one {
+					background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png');
+					background-size: 100% auto;
+					background-repeat: no-repeat;
+					height: 28rpx;
+					width: 28rpx;
+				}
+
+				.content-header-icon-two {
+					background-image: url('~@/static/custom/moveWareHouse/header_icon.png');
+					background-size: 100% auto;
+					background-repeat: no-repeat;
+					height: 28rpx;
+					width: 28rpx;
+				}
+
+				.content-header-title {
+					margin-left: 11rpx;
+					font-size: 26rpx;
+					font-weight: bold;
+					color: #333333;
+				}
+			}
+
+			.header-item-toolbar {
+				position: absolute;
+				background-image: url('~@/static/custom/moveWareHouse/del-icon.png');
+				background-size: 100% auto;
+				background-repeat: no-repeat;
+				height: 60rpx;
+				width: 140rpx;
+				right: 0;
+				top: 0;
+				display: flex;
+				justify-content: flex-end;
+				padding-top: 10rpx;
+				padding-right: 18rpx;
+
+				.header-item-toolbar-del-icon {
+					background-image: url('~@/static/custom/moveWareHouse/icon_dele.png');
+					background-size: 100% auto;
+					background-repeat: no-repeat;
+					height: 25rpx;
+					width: 22rpx;
+					margin-top: 5rpx;
+				}
+
+				.header-item-toolbar-del-text {
+					margin-left: 7rpx;
+					height: 23rpx;
+					font-size: 24rpx;
+					color: #FFFFFF;
+				}
+			}
+		}
+
+		.content-body {
+			height: 300rpx;
+			background: #F5F9FF;
+			border-radius: 10rpx;
+			padding: 25rpx 23rpx;
+
+			.row-list {
+				height: 50rpx;
+				display: flex;
+				flex-direction: row;
+				padding: 0px;
+				align-items: center;
+				justify-content: space-between;
+			}
+
+			.row-list ._label {
+				display: flex;
+				color: #666666;
+				font-size: 26rpx;
+				align-items: center;
+				width: 170rpx;
+			}
+
+			.row-list ._content {
+				text-align: right;
+				color: #909399;
+				font-size: 24rpx;
+
+				._content-text {
+					color: #214ded;
+				}
+			}
+
+			.row-list ._input {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				border-bottom: 1px solid #4FA0FF;
+				height: 56rpx;
+
+				.edit_icon {
+					background-image: url('~@/static/custom/finishProductIn/icon_edit.png');
+					background-size: 100% auto;
+					background-repeat: no-repeat;
+					height: 26rpx;
+					width: 26rpx;
+				}
+
+				::v-deep .uni-input-input {
+					color: #D35651;
+				}
+			}
 		}
 	}
+}
+
+.new-form-footer {
+	display: flex;
+	margin-top: 10rpx;
+	margin-bottom: 10rpx;
+	margin-left: 20rpx;
+	margin-right: 20rpx;
+	padding-bottom: 14rpx;
+
+	.btn {
+		flex: 1;
+		margin: 10rpx;
+		background: #214DED;
+		box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
+		font-weight: bold;
+		color: #FEFEFE;
+		font-family: PingFang SC;
+	}
+}
 </style>
diff --git a/static/custom/moda-lbg.png b/static/custom/moda-lbg.png
new file mode 100644
index 0000000..309317c
--- /dev/null
+++ b/static/custom/moda-lbg.png
Binary files differ

--
Gitblit v1.9.3