|
@@ -7,26 +7,53 @@
|
|
autoBack
|
|
autoBack
|
|
placeholder
|
|
placeholder
|
|
>
|
|
>
|
|
- <view class="u-nav-slot depot-label" slot="right" @click="stashClick">
|
|
|
|
|
|
+ <view class="u-nav-slot depot-label" slot="right">
|
|
<view class="name">{{ curDepotName }}</view>
|
|
<view class="name">{{ curDepotName }}</view>
|
|
</view>
|
|
</view>
|
|
</u-navbar>
|
|
</u-navbar>
|
|
<view class="container_main">
|
|
<view class="container_main">
|
|
<u-sticky :offsetTop="offsetTop" bgColor="#fff">
|
|
<u-sticky :offsetTop="offsetTop" bgColor="#fff">
|
|
- <view class="search-box">
|
|
|
|
- <u-search
|
|
|
|
- placeholder="请输入单据编号或名称"
|
|
|
|
- shape="square"
|
|
|
|
- v-model="query.number"
|
|
|
|
- :showAction="false"
|
|
|
|
- :clearabled="true"
|
|
|
|
- @search="handleSearch"
|
|
|
|
- @clear="handleSearch"
|
|
|
|
- ></u-search>
|
|
|
|
|
|
+ <view class="head-box">
|
|
|
|
+ <view class="search-box">
|
|
|
|
+ <u-search
|
|
|
|
+ placeholder="输入关键字进行货物的模糊查询"
|
|
|
|
+ shape="square"
|
|
|
|
+ :showAction="false"
|
|
|
|
+ @search="handleSearch"
|
|
|
|
+ @clear="handleSearch"
|
|
|
|
+ v-model="query.number"
|
|
|
|
+ ></u-search>
|
|
|
|
+ <view class="scan-icon flex_box flex_row_center" @click="">
|
|
|
|
+ <image src="@/static/image/scan-icon-2.png" mode=""></image>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
</view>
|
|
</view>
|
|
</u-sticky>
|
|
</u-sticky>
|
|
<view class="content-box">
|
|
<view class="content-box">
|
|
- <view class="content-box-val"> </view>
|
|
|
|
|
|
+ <view class="content-list" v-if="list.length > 0">
|
|
|
|
+ <view class="content-list-title">
|
|
|
|
+ <view>入库货物清单</view>
|
|
|
|
+ <view class="content-list-title-tips">(轻触货物查看详情)</view>
|
|
|
|
+ </view>
|
|
|
|
+ <goodCard
|
|
|
|
+ v-for="(item, i) in list"
|
|
|
|
+ :key="i"
|
|
|
|
+ :goodImg="item.imgNameArr[0] || ''"
|
|
|
|
+ :goodName="item.materialName"
|
|
|
|
+ :goodDesValue="item.barCode"
|
|
|
|
+ goodDesTitle="条形码"
|
|
|
|
+ :columns="columns"
|
|
|
|
+ :item="item"
|
|
|
|
+ @handleClickField="handleClickField"
|
|
|
|
+ @clickItem="handleClickItem"
|
|
|
|
+ >
|
|
|
|
+ <view slot="status">
|
|
|
|
+ <view class="dsh">待审核</view>
|
|
|
|
+ <!-- <view class="zc">正常</view>
|
|
|
|
+ <view class="ybh">已驳回</view> -->
|
|
|
|
+ </view>
|
|
|
|
+ </goodCard>
|
|
|
|
+ </view>
|
|
<u-empty
|
|
<u-empty
|
|
mode="data"
|
|
mode="data"
|
|
text="暂无内容"
|
|
text="暂无内容"
|
|
@@ -41,35 +68,24 @@
|
|
@loadmore="onLoadMore"
|
|
@loadmore="onLoadMore"
|
|
/>
|
|
/>
|
|
</view>
|
|
</view>
|
|
|
|
+ <!-- 新增录入-->
|
|
|
|
+ <view class="footer">
|
|
|
|
+ <u-button class="add-btn" type="primary" plain @click="goAddGood">
|
|
|
|
+ 新增录入
|
|
|
|
+ </u-button>
|
|
|
|
+ </view>
|
|
</view>
|
|
</view>
|
|
-
|
|
|
|
- <error-pop
|
|
|
|
- v-model="actionPop.errorShow"
|
|
|
|
- isCenter
|
|
|
|
- cancelBtnText="取消"
|
|
|
|
- confirmBtnText="确定"
|
|
|
|
- @close="actionPop.errorShow = false"
|
|
|
|
- @confirm="submit"
|
|
|
|
- :content="actionPop.errorText"
|
|
|
|
- ></error-pop>
|
|
|
|
</view>
|
|
</view>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import checkItem from "./components/check-item.vue";
|
|
|
|
-
|
|
|
|
-import {
|
|
|
|
- taskStocktakingList,
|
|
|
|
- startTask,
|
|
|
|
- taskComplete,
|
|
|
|
- taskStocktakingDetail,
|
|
|
|
-} from "@/common/request/apis/inventoryTask";
|
|
|
|
|
|
+import { taskStocktakingList } from "@/common/request/apis/inventoryTask";
|
|
import { mapGetters } from "vuex";
|
|
import { mapGetters } from "vuex";
|
|
|
|
+import goodCard from "@/components/good-card/good-card.vue";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
- checkItem,
|
|
|
|
- errorPop,
|
|
|
|
|
|
+ goodCard,
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
@@ -80,10 +96,59 @@ export default {
|
|
currentPage: 1,
|
|
currentPage: 1,
|
|
pageSize: 10,
|
|
pageSize: 10,
|
|
loadStatus: "loadmore", //加载前值为loadmore,加载中为loading,没有数据为nomore
|
|
loadStatus: "loadmore", //加载前值为loadmore,加载中为loading,没有数据为nomore
|
|
- list: [],
|
|
|
|
|
|
|
|
- // 中心仓
|
|
|
|
- cangName: "",
|
|
|
|
|
|
+ columns: [
|
|
|
|
+ { title: "规格", key: "materialStandard" },
|
|
|
|
+ { title: "批次号", key: "patchNumber" },
|
|
|
|
+ { title: "生产日期", key: "productionDate" },
|
|
|
|
+ { title: "库位", key: "position" },
|
|
|
|
+ {
|
|
|
|
+ title: "库存",
|
|
|
|
+ key: "inventory",
|
|
|
|
+ formatter: (key, formData) => {
|
|
|
|
+ const inventory = formData.inventory
|
|
|
|
+ ? (formData.inventory * 1).toFixed(0)
|
|
|
|
+ : "0";
|
|
|
|
+ return `${inventory}${formData.commodityUnit || ""}`;
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ { title: "录入时间", key: "lrDate" },
|
|
|
|
+ ],
|
|
|
|
+ list: [
|
|
|
|
+ {
|
|
|
|
+ id: 1,
|
|
|
|
+ materialName:
|
|
|
|
+ "货物名称1货物名称1货物名称1货物名称1货物名称1货物名称1",
|
|
|
|
+ imgNameArr: [
|
|
|
|
+ "https://xiangli-erp.oss-cn-hangzhou.aliyuncs.com/APP/no-notifcations.png",
|
|
|
|
+ ],
|
|
|
|
+ barCode: "6904045405",
|
|
|
|
+ materialStandard: "500ml",
|
|
|
|
+ productionDate: "2024-10-01",
|
|
|
|
+ lrDate: "2024-10-01",
|
|
|
|
+ inventory: 10,
|
|
|
|
+ commodityUnit: "瓶",
|
|
|
|
+ position: "A-1-1",
|
|
|
|
+ status: 1,
|
|
|
|
+ patchNumber: "12345678966",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ id: 2,
|
|
|
|
+ materialName: "货物名称2",
|
|
|
|
+ imgNameArr: [
|
|
|
|
+ "https://xiangli-erp.oss-cn-hangzhou.aliyuncs.com/APP/no-notifcations.png",
|
|
|
|
+ ],
|
|
|
|
+ barCode: "6904045405",
|
|
|
|
+ materialStandard: "500ml",
|
|
|
|
+ productionDate: "2024-10-01",
|
|
|
|
+ lrDate: "2024-10-02",
|
|
|
|
+ inventory: 10,
|
|
|
|
+ commodityUnit: "瓶",
|
|
|
|
+ position: "A-1-2",
|
|
|
|
+ status: 1,
|
|
|
|
+ patchNumber: "12345678966",
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -99,7 +164,7 @@ export default {
|
|
let systemInfo = uni.getSystemInfoSync();
|
|
let systemInfo = uni.getSystemInfoSync();
|
|
let statusBarHeight = systemInfo.statusBarHeight;
|
|
let statusBarHeight = systemInfo.statusBarHeight;
|
|
this.offsetTop = statusBarHeight + 40;
|
|
this.offsetTop = statusBarHeight + 40;
|
|
- this.loadData();
|
|
|
|
|
|
+ // this.loadData();
|
|
},
|
|
},
|
|
onShow() {},
|
|
onShow() {},
|
|
onPullDownRefresh() {
|
|
onPullDownRefresh() {
|
|
@@ -158,6 +223,18 @@ export default {
|
|
handleSearch(value) {
|
|
handleSearch(value) {
|
|
this.loadData(true);
|
|
this.loadData(true);
|
|
},
|
|
},
|
|
|
|
+ handleClickField(key, formData) {
|
|
|
|
+ console.log("key", key);
|
|
|
|
+ console.log("formData", formData);
|
|
|
|
+ },
|
|
|
|
+ handleClickItem(item) {
|
|
|
|
+ console.log("item", item);
|
|
|
|
+ },
|
|
|
|
+ goAddGood() {
|
|
|
|
+ uni.navigateTo({
|
|
|
|
+ url: "/pages/goods-enter/addGood",
|
|
|
|
+ });
|
|
|
|
+ },
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
@@ -167,6 +244,11 @@ export default {
|
|
min-height: 100vh;
|
|
min-height: 100vh;
|
|
background-color: #f0f6fb;
|
|
background-color: #f0f6fb;
|
|
.container_main {
|
|
.container_main {
|
|
|
|
+ .head-box {
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ padding-top: 20rpx;
|
|
|
|
+ padding-bottom: 32rpx;
|
|
|
|
+ }
|
|
.search-box {
|
|
.search-box {
|
|
background-color: rgba(191, 200, 219, 0.2);
|
|
background-color: rgba(191, 200, 219, 0.2);
|
|
margin: 0 32rpx;
|
|
margin: 0 32rpx;
|
|
@@ -193,9 +275,8 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
.content-box {
|
|
.content-box {
|
|
- padding: 24rpx;
|
|
|
|
|
|
+ padding: 0 24rpx;
|
|
&-val {
|
|
&-val {
|
|
border-radius: 16rpx 16rpx 0 0;
|
|
border-radius: 16rpx 16rpx 0 0;
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
@@ -203,4 +284,82 @@ export default {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+.content-list {
|
|
|
|
+ padding: 24rpx 0;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ margin-top: 24rpx;
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
+
|
|
|
|
+ .content-list-title {
|
|
|
|
+ font-family: "PingFang SC";
|
|
|
|
+ font-size: 32rpx;
|
|
|
|
+ font-style: normal;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ position: relative;
|
|
|
|
+ padding-left: 50rpx;
|
|
|
|
+ margin-bottom: 24rpx;
|
|
|
|
+
|
|
|
|
+ &::after {
|
|
|
|
+ content: "";
|
|
|
|
+ display: block;
|
|
|
|
+ width: 6rpx;
|
|
|
|
+ height: 30rpx;
|
|
|
|
+ border-radius: 100px;
|
|
|
|
+ background: #0256ff;
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 50%;
|
|
|
|
+ left: 24rpx;
|
|
|
|
+ transform: translateY(-50%);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .content-list-title-tips {
|
|
|
|
+ color: #0256ff;
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.dsh {
|
|
|
|
+ background-color: rgba(255, 59, 29, 0.2);
|
|
|
|
+ color: rgba(255, 59, 29, 1);
|
|
|
|
+ border-radius: 8rpx;
|
|
|
|
+}
|
|
|
|
+.zc {
|
|
|
|
+ background-color: rgba(0, 185, 123, 0.2);
|
|
|
|
+ color: rgba(0, 185, 123, 1);
|
|
|
|
+ border-radius: 8rpx;
|
|
|
|
+}
|
|
|
|
+.ybh {
|
|
|
|
+ background-color: rgba(225, 51, 15, 1);
|
|
|
|
+ color: #fff;
|
|
|
|
+ border-radius: 8rpx;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.footer {
|
|
|
|
+ position: fixed;
|
|
|
|
+ bottom: 0;
|
|
|
|
+ left: 0;
|
|
|
|
+ right: 0;
|
|
|
|
+ height: 144rpx;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+
|
|
|
|
+ .add-btn {
|
|
|
|
+ width: 700rpx;
|
|
|
|
+ height: 88rpx;
|
|
|
|
+ border-radius: 16rpx;
|
|
|
|
+ font-size: 36rpx;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ color: #fff;
|
|
|
|
+ background-color: #0256ff;
|
|
|
|
+ line-height: 88rpx;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
|
|
+}
|
|
</style>
|
|
</style>
|