From 1bda72a44cccfb9f79673b95c33cce91057214d2 Mon Sep 17 00:00:00 2001
From: Mr.Shi <1878285526@qq.com>
Date: 星期五, 01 九月 2023 09:11:42 +0800
Subject: [PATCH] 小程序
---
minipro_standard/pages_adjust/pages/warehousingDetails1/warehousingDetails1.vue | 346 +++++++
minipro_standard/pages_adjust/components/Material.vue | 131 ++
minipro_standard/pages_adjust/pages/outboundList/outboundList.vue | 553 +++++++++++
minipro_standard/pages_adjust/pages/transferList/transferList.vue | 2
minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue | 331 +++++++
minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue | 562 ++++++++++++
minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue | 485 ++++++++++
minipro_standard/pages.json | 37
minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue | 98 +
minipro_standard/pages_adjust/pages/newOutbound/newOutbound.vue | 19
minipro_standard/pages_adjust/components/ProductionProcess.vue | 111 ++
minipro_standard/pages_adjust/components/location.vue | 36
minipro_standard/components/Search.vue | 7
13 files changed, 2,684 insertions(+), 34 deletions(-)
diff --git a/minipro_standard/components/Search.vue b/minipro_standard/components/Search.vue
index 9c33b94..347b379 100644
--- a/minipro_standard/components/Search.vue
+++ b/minipro_standard/components/Search.vue
@@ -11,9 +11,9 @@
</view>
</view>
<u-popup :show="open" :round="10" mode="bottom">
- <view class="content">
+ <scroll-view scroll-y class="content">
<slot name="content"></slot>
- </view>
+ </scroll-view>
<view class="zhanwei"></view>
<view class="footer">
<view class="footer_close" @click="closes">閲嶇疆</view>
@@ -71,6 +71,9 @@
}
.content {
padding: 30rpx 30rpx 0 30rpx;
+ width: 100%;
+ height: 800rpx;
+ box-sizing: border-box;
}
.footer {
width: 100%;
diff --git a/minipro_standard/pages.json b/minipro_standard/pages.json
index 1504f4e..1a3e092 100644
--- a/minipro_standard/pages.json
+++ b/minipro_standard/pages.json
@@ -96,9 +96,16 @@
"root": "pages_adjust",
"pages": [
{
+ "path": "pages/newOutbound/newOutbound",
+ "style": {
+ "navigationBarTitleText": "鏂板缓鍑哄簱",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
"path": "pages/addReceipt/addReceipt",
"style": {
- "navigationBarTitleText": "鏂板鍏ュ簱",
+ "navigationBarTitleText": "鏂板缓鍏ュ簱",
"enablePullDownRefresh": false
}
},
@@ -143,6 +150,34 @@
"navigationBarTitleText": "鍑哄簱鍗曞垪琛�",
"enablePullDownRefresh": false
}
+ },
+ {
+ "path": "pages/outboundDetails/outboundDetails",
+ "style": {
+ "navigationBarTitleText": "鍑哄簱璇︽儏",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/warehousingList/warehousingList",
+ "style": {
+ "navigationBarTitleText": "鍏ュ簱鍗曞垪琛�",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/warehousingDetails1/warehousingDetails1",
+ "style": {
+ "navigationBarTitleText": "鍏ュ簱璇︽儏",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/InventoryQuery/InventoryQuery",
+ "style": {
+ "navigationBarTitleText": "搴撳瓨閲忔煡璇�",
+ "enablePullDownRefresh": false
+ }
}
]
},
diff --git a/minipro_standard/pages_adjust/components/Material.vue b/minipro_standard/pages_adjust/components/Material.vue
new file mode 100644
index 0000000..0685993
--- /dev/null
+++ b/minipro_standard/pages_adjust/components/Material.vue
@@ -0,0 +1,131 @@
+<template>
+ <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @open="open" @close="close">
+ <view class="title">
+ <text>閫夋嫨鐗╂枡</text>
+ </view>
+ <view class="content">
+ <view class="content_search">
+ <u-search :showAction="false" placeholder="鎼滅储鐗╂枡鍚嶇О" v-model="keyword"></u-search>
+ </view>
+ <div class="content_total">鍏眥{total}}鏉℃暟鎹�</div>
+ <view class="content_list">
+ <u-list @scrolltolower="scrolltolower">
+ <u-list-item v-for="(item, index) in indexList" :key="index">
+ <div class="content_list_item" @click="getVal(item)">
+ <div class="content_list_item_name">
+ <span>{{item.name}}</span>
+ </div>
+ </div>
+ </u-list-item>
+ </u-list>
+ </view>
+ </view>
+ </u-popup>
+</template>
+
+<script>
+ export default {
+ props: {
+ show: Boolean
+ },
+ data() {
+ return {
+ keyword: '',
+ total: 0,
+ indexList: []
+ };
+ },
+ methods: {
+ getVal(item) {
+ this.$emit('value', item)
+ },
+ open() {
+ this.indexList = []
+ this.loadmore()
+ },
+ scrolltolower() {
+ this.loadmore()
+ },
+ loadmore() {
+ for (let i = 0; i < 20; i++) {
+ this.indexList.push({
+ id: i,
+ name: `浠撳簱${i}`
+ })
+ }
+ },
+ close() {
+ this.$emit('close')
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .title {
+ width: 100%;
+ height: 85rpx;
+ line-height: 85rpx;
+ text-align: center;
+ text {
+ font-size: 30rpx;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #222222;
+ }
+ }
+ .content {
+ width: 100%;
+ .content_search {
+ width: 100%;
+ padding: 0 30rpx 30rpx 30rpx;
+ background: white;
+ position: sticky;
+ top: 85rpx;
+ z-index: 9;
+ box-sizing: border-box;
+ }
+ .content_total {
+ padding: 24rpx 30rpx;
+ background: #F7F7F7;
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ }
+ .content_list {
+ width: 100%;
+ height: 800rpx;
+ display: flex;
+ flex-direction: column;
+ .content_list_item {
+ padding: 30rpx;
+ display: flex;
+ border-bottom: 1rpx solid #ececec;
+ .serious {
+ color: $nav-stateColor4 !important;
+ }
+ .success {
+ color: $nav-stateColor2 !important;
+ }
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+ .content_list_item_status {
+ font-size: 28rpx;
+ margin-right: 10rpx;
+ }
+ .content_list_item_name {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ span {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ }
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/minipro_standard/pages_adjust/components/ProductionProcess.vue b/minipro_standard/pages_adjust/components/ProductionProcess.vue
new file mode 100644
index 0000000..297839e
--- /dev/null
+++ b/minipro_standard/pages_adjust/components/ProductionProcess.vue
@@ -0,0 +1,111 @@
+<template>
+ <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @open="open" @close="close">
+ <view class="title">
+ <text>閫夋嫨宸ュ簭</text>
+ </view>
+ <view class="content">
+ <scroll-view scroll-y class="content_list">
+ <div class="content_list_item" v-for="(item, index) in list" :key="index" @click="getVal(item)">
+ <div class="content_list_item_name">
+ <span>{{item.name}}</span>
+ </div>
+ </div>
+ </scroll-view>
+ </view>
+ </u-popup>
+</template>
+
+<script>
+ export default {
+ props: {
+ show: {
+ type: Boolean,
+ required: true
+ },
+ list: {
+ type: Array,
+ required: true
+ }
+ },
+ methods: {
+ getVal(item) {
+ this.$emit('value', item)
+ },
+ open() {
+ this.indexList = []
+ },
+ close() {
+ this.$emit('close')
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .title {
+ width: 100%;
+ height: 85rpx;
+ line-height: 85rpx;
+ text-align: center;
+ text {
+ font-size: 30rpx;
+ font-family: PingFangSC-Medium, PingFang SC;
+ font-weight: 500;
+ color: #222222;
+ }
+ }
+ .content {
+ width: 100%;
+ .content_search {
+ width: 100%;
+ padding: 0 30rpx 30rpx 30rpx;
+ background: white;
+ position: sticky;
+ top: 85rpx;
+ z-index: 9;
+ box-sizing: border-box;
+ }
+ .content_total {
+ padding: 24rpx 30rpx;
+ background: #F7F7F7;
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ }
+ .content_list {
+ width: 100%;
+ height: 800rpx;
+ display: flex;
+ flex-direction: column;
+ .content_list_item {
+ padding: 30rpx;
+ display: flex;
+ border-bottom: 1rpx solid #ececec;
+ .serious {
+ color: $nav-stateColor4 !important;
+ }
+ .success {
+ color: $nav-stateColor2 !important;
+ }
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+ .content_list_item_status {
+ font-size: 28rpx;
+ margin-right: 10rpx;
+ }
+ .content_list_item_name {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ span {
+ font-size: 30rpx;
+ font-family: PingFangSC-Regular, PingFang SC;
+ font-weight: 400;
+ color: #222222;
+ }
+ }
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/minipro_standard/pages_adjust/components/location.vue b/minipro_standard/pages_adjust/components/location.vue
index 1dadea7..abc7135 100644
--- a/minipro_standard/pages_adjust/components/location.vue
+++ b/minipro_standard/pages_adjust/components/location.vue
@@ -1,19 +1,13 @@
<template>
- <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @open="open" @close="close">
+ <u-popup :show="show" mode="bottom" :closeable="true" :round="10" @close="close">
<view class="title">
<text>閫夋嫨璐т綅</text>
</view>
<view class="content">
<view class="content_list">
- <u-list @scrolltolower="scrolltolower">
- <u-list-item v-for="(item, index) in indexList" :key="index">
- <div class="content_list_item">
- <div class="content_list_item_name">
- 璐т綅{{index}}
- </div>
- </div>
- </u-list-item>
- </u-list>
+ <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)">
+ <div class="content_list_item_name">{{item.unionName}}</div>
+ </div>
</view>
</view>
</u-popup>
@@ -22,13 +16,23 @@
<script>
export default {
props: {
- show: Boolean
+ show: {
+ type: Boolean,
+ required: true
+ },
+ list: {
+ type: Array,
+ required: true
+ }
},
- data() {
- return {
- indexList: [1,2,3,4,5,6,7,8,9]
- };
- },
+ methods: {
+ close() {
+ this.$emit('close')
+ },
+ jump(item) {
+ this.$emit('value', item)
+ }
+ }
}
</script>
diff --git a/minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue b/minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue
new file mode 100644
index 0000000..83ffa40
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/InventoryQuery/InventoryQuery.vue
@@ -0,0 +1,485 @@
+<template>
+ <view class="content">
+ <view class="content_search">
+ <Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
+ placeholder="鎼滅储浠撳簱鍚嶇О/鐗╂枡鍚嶇О">
+ <template v-slot:content>
+ <view class="Search_item">
+ <view class="Search_item_label">姹囨�讳緷鎹�</view>
+ <view class="Search_item_content">
+ <view class="tag">
+ <view
+ class="tag_item"
+ :class="{ tag_active: item.isActive }"
+ v-for="(item, i) in groupTypes"
+ :key="item.id"
+ @click="changeGroup(i)"
+ >
+ {{ item.name }}
+ </view>
+ </view>
+ </view>
+ </view>
+ </template>
+ </Search>
+ </view>
+ <view class="content_total" :style="{top: top}">鍏眥{controlData.total}}鏉℃暟鎹�</view>
+ <view class="content_list">
+ <scroll-view @scrolltolower="getLists" scroll-y :style="{height: height}">
+ <view class="content_list_item" v-for="(item, i) in list" :key="i">
+ <view class="content_list_item_top">
+ <view class="content_list_item_top_left">
+ <text>{{ item.materialName }} | {{ item.materialCode }}</text>
+ </view>
+ <view class="content_list_item_top_right">
+ <text class="created">{{ '搴撳瓨锛�' + item.num + item.unitName }}</text>
+ </view>
+ </view>
+ <view class="content_list_item_sx">
+ <text v-if="item.qualityType == 0" class="green">鍚堟牸 | </text>
+ <text v-if="item.qualityType == 1" class="yellow">涓嶈壇 | </text>
+ <text v-if="item.qualityType == 2" class="red">鎶ュ簾 | </text>
+ <text>{{ item.procedureName ? item.procedureName : '-' }} | </text>
+ <text>{{ item.batch ? item.batch : '-' }}</text>
+ </view>
+ <!-- item涓婚淇℃伅閮ㄥ垎 -->
+ <view class="content_list_item_content">
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">瑙勬牸锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.attr }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item" v-if="data.groupType == '3' || data.groupType == '2'">
+ <view class="content_list_item_content_item_label">浠撳簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.wareHouseName ? item.wareHouseName : '-' }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item" v-if="data.groupType == '3' || data.groupType == '2'">
+ <view class="content_list_item_content_item_label">璐т綅锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.locationName }}
+ </view>
+ </view>
+ </view>
+ </view>
+ </scroll-view>
+ </view>
+ </view>
+</template>
+
+<script>
+ import Search from '@/components/Search.vue'
+ import { orderTyepToStr } from '@/util/constData.js'
+ export default {
+ components: {
+ Search
+ },
+ data() {
+ return {
+ height: '',
+ top: '',
+ controlData: {
+ finished: false,
+ loading: false,
+ total: 0,
+ page: 0,
+ capacity: 10,
+ },
+ groupTypes: [
+ { name: '榛樿', id: '3', isActive: true },
+ { name: '鐗╂枡', id: '1', isActive: false },
+ { name: '鐗╂枡+浠撳簱', id: '2', isActive: false }
+ ],
+ data: {
+ materialName: '',
+ groupType: '3'
+ },
+ list: []
+ };
+ },
+ onReady() {
+ var that = this
+ this.$nextTick(() => {
+ uni.createSelectorQuery().in(this).select('.content_search').boundingClientRect((rect) => {
+ that.height = `calc(100vh - ${rect.height + 80}px)`
+ that.top = `${rect.height}px`
+ }).exec()
+ })
+ },
+ methods: {
+ changeGroup(i) {
+ this.groupTypes[i].isActive = !this.groupTypes[i].isActive;
+ this.data.groupType = this.groupTypes[i].id
+ for (const index in this.groupTypes) {
+ if (index != i) {
+ // console.log(index, i)
+ const item = this.groupTypes[index]
+ item.isActive = false
+ }
+ }
+ },
+ tyepToStr(type) {
+ // <!-- 1銆佽溅闂撮鏂欙紱2銆佽溅闂村鏂欙紱3銆佸叾浠栵紱4銆佸畬宸ュ叆搴� -->
+ for (const item of this.orderType) {
+ if (item.id == type) {
+ return item.name
+ }
+ }
+ return '-'
+ },
+ // 璺宠浆
+ jump(item) {
+ uni.navigateTo({
+ url: `/pages/planDetails/planDetails?id=${item.id}`
+ })
+ },
+ // 鑾峰彇澶撮儴缁勪欢楂樺害
+ getHeight(height) {
+ this.height = height
+ },
+ // 閲嶇疆
+ reset() {
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ this.listData.mixParam = ''
+ this.listData.startDate = ''
+ this.listData.endDate = ''
+ this.listData.procedureIds = []
+ if (this.factoryList.length > 0) {
+ this.listData.departIds = this.factoryList[0].id
+ }
+ if (this.data.length > 0) {
+ this.data.forEach(item => {
+ item.isActive = false
+ })
+ }
+ // this.getLists()
+ // this.pageCounts()
+ },
+ // 鏃ユ湡纭畾
+ timeConfirm(val) {
+ this.listData.startDate = val[0]
+ this.listData.endDate = val[val.length - 1]
+ this.timeShow = false
+ },
+ // 鍒囨崲宸ュ巶
+ changeTags(i, id) {
+ this.listData.departIds = id
+ this.getWorkingProcedures(id)
+ this.factoryList.forEach((item, index) => {
+ if (index === i) {
+ item.isActive = true
+ } else {
+ item.isActive = false
+ }
+ })
+ },
+ // 鎵撳紑鏃ユ湡鎻掍欢
+ openDate() {
+ this.timeShow = true
+ },
+ // 鎼滅储
+ searchInput(val) {
+ this.listData.mixParam = val
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ this.getLists()
+ },
+ // 鐐瑰嚮鏍囩鎼滅储
+ clickTag(ids) {
+ this.listData.cateIds = ids
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ // this.getLists()
+ },
+ // 鑾峰彇鍒楄〃缁熻
+ pageCounts() {
+ pageCount({
+ factoryId: this.listData.departIds,
+ procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
+ startDate: this.listData.startDate,
+ endDate: this.listData.endDate,
+ statusList: this.listData.cateIds
+ }).then(res => {
+ if (res.code === 200 && res.data) {
+ this.tagList[0].num = res.data.allNum.toString()
+ this.tagList[1].num = res.data.startNum.toString()
+ this.tagList[2].num = res.data.ingNum.toString()
+ this.tagList[3].num = res.data.endNum.toString()
+ }
+ })
+ },
+ // 鑾峰彇宸ュ巶鏁版嵁
+ getOrganizations() {
+ getOrganization({
+ type: 1
+ }).then(res => {
+ if (res.code === 200 && res.data && res.data.length !== 0) {
+ res.data.forEach((item, i) => {
+ item.isActive = i === 0;
+ })
+ if (res.data.length > 0) {
+ this.factoryList = res.data
+ this.listData.departIds = this.factoryList[0].id
+ this.listData.procedureIds = ''
+ this.finished = false
+ this.getWorkingProcedures(this.factoryList[0].id)
+ this.getLists()
+ this.pageCounts()
+ }
+ }
+ })
+ },
+ // 鑾峰彇宸ュ簭鏁版嵁
+ getWorkingProcedures(orgId) {
+ this.data = []
+ getWorkingProcedure({
+ orgId
+ })
+ .then(res => {
+ if (res.code === 200 && res.data && res.data.length !== 0) {
+ res.data.forEach((item, i) => {
+ item.isActive = false;
+ })
+ this.data = res.data
+ }
+ })
+ },
+ // 鎼滅储寮规鎻愪氦
+ submit() {
+ let pmodelOrgId = []
+ this.data.forEach((item) => {
+ if (item.isActive) {
+ pmodelOrgId.push(item.id)
+ }
+ })
+ this.listData.procedureIds = pmodelOrgId
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ // this.getLists()
+ // this.pageCounts()
+ },
+ // 鑾峰彇璁″垝鍒楄〃鏁版嵁
+ getLists() {
+ console.log('getLists')
+ if (!this.finished) {
+ this.loading = true
+ this.listData.page = this.listData.page++
+ getList({
+ capacity: this.listData.capacity,
+ model: {
+ mixParam: this.listData.mixParam,
+ startDate: this.listData.startDate,
+ endDate: this.listData.endDate,
+ procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
+ factoryId: this.listData.departIds,
+ statusList: this.listData.cateIds
+ },
+ page: this.listData.page,
+ sorts: [{
+ direction: 'ASC',
+ property: 'publishDate'
+ }]
+ }).then(res => {
+ this.loading = false
+ this.listData.total = res.data.total
+ if (this.refreshing) {
+ this.lists = []
+ this.refreshing = false;
+ }
+ if (res.code === 200 && res.data.records.length !== 0) {
+ if (this.lists.length === 0) {
+ this.lists = res.data.records
+ } else {
+ this.lists.push(...res.data.records)
+ }
+ } else {
+ this.finished = true
+ }
+ }).catch(err => {
+ this.loading = false
+ this.finished = true
+ if (this.refreshing) {
+ this.lists = []
+ this.refreshing = false;
+ }
+ })
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .content {
+ .content_search {
+ width: 100%;
+ padding: 30rpx;
+ background: white;
+ position: sticky;
+ top: 0;
+ z-index: 999;
+ box-sizing: border-box;
+
+ .Search_item {
+ margin-bottom: 40rpx;
+
+ .Search_item_label {
+ font-size: 30rpx;
+ font-weight: 500;
+ color: #222222;
+ }
+
+ .Search_item_content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-top: 30rpx;
+
+ .tag {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+
+ .tag_active {
+ background: $nav-color !important;
+ color: #ffffff !important;
+ }
+
+ .tag_item {
+ padding: 22rpx 26rpx;
+ box-sizing: border-box;
+ background: #F2F2F2;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #333333;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 22rpx;
+ margin-bottom: 22rpx;
+ }
+ }
+
+ text {
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #333333;
+ margin: 0 30rpx;
+ }
+
+ .Search_item_content_a {
+ padding: 20rpx 0;
+ flex: 1;
+ background: #F7F7F7;
+ border-radius: 8rpx;
+ border: 1rpx solid #EEEEEE;
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #B2B2B2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ }
+
+ .content_search_x {
+ height: 24rpx;
+ }
+ }
+
+ .content_list {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ .content_list_item {
+ background: #ffffff;
+ padding: 30rpx;
+ display: flex;
+ flex-direction: column;
+ border-bottom: 1rpx solid #ececec;
+ .content_list_item_sx {
+ margin-top: 20rpx;
+ }
+ .content_list_item_top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .content_list_item_top_left {
+ text {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ }
+ }
+ .content_list_item_top_right {
+ font-size: 26rpx;
+ font-weight: 400;
+ .created {
+ color: $nav-stateColor1 !important;
+ }
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+ .green {
+ color: $nav-stateColor6 !important;
+ }
+ .info {
+ color: $nav-stateColor3 !important;
+ }
+ }
+ }
+ .content_list_item_content {
+ padding: 24rpx 30rpx;
+ background: #f7f7f7;
+ border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ margin-top: 32rpx;
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ margin-top: 24rpx;
+ &:nth-child(1) {
+ margin-top: 0 !important;
+ }
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .content_total {
+ width: 100%;
+ height: 80rpx;
+ padding: 24rpx 30rpx;
+ background: #F7F7F7;
+ font-size: 24rpx;
+ font-weight: 400;
+ box-sizing: border-box;
+ color: #666666;
+ position: sticky;
+ z-index: 99;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue b/minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue
index 4e5b4ab..3b9b607 100644
--- a/minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue
+++ b/minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue
@@ -29,14 +29,14 @@
</view>
<van-swipe-cell v-for="(item, index) in list" :key="index">
<view class="rework_qd_list">
- <view class="rework_qd_item">
+ <view class="rework_qd_item" @click="locationShow = true">
<text><b>*</b>鍏ュ簱璐т綅</text>
<view class="rework_qd_item_right">
<text :class="item.locationName ? 'black' : ''">{{item.locationName ? item.locationName : '璇烽�夋嫨'}}</text>
<u-icon name="arrow-right"></u-icon>
</view>
</view>
- <view class="rework_qd_item">
+ <view class="rework_qd_item" @click="materialsShow = true">
<text><b>*</b>鍏ュ簱鐗╂枡</text>
<view class="rework_qd_item_right">
<text :class="item.materialName ? 'black' : ''">{{item.materialName ? item.materialName : '璇烽�夋嫨'}}</text>
@@ -44,7 +44,7 @@
</view>
</view>
<template v-if="form.type !== 25">
- <view class="rework_qd_item">
+ <view class="rework_qd_item" @click="productionShow = true">
<text>鐢熶骇宸ュ簭</text>
<view class="rework_qd_item_right">
<text :class="item.procedureName ? 'black' : ''">{{item.procedureName ? item.procedureName : '璇烽�夋嫨'}}</text>
@@ -52,7 +52,7 @@
</view>
</view>
</template>
- <view class="rework_qd_item">
+ <view class="rework_qd_item" @click="qualityShow = true">
<text><b>*</b>璐ㄩ噺灞炴��</text>
<view class="rework_qd_item_right">
<text :class="item.qualityTypeName ? 'black' : ''">{{item.qualityTypeName ? item.qualityTypeName : '璇烽�夋嫨'}}</text>
@@ -62,13 +62,13 @@
<view class="rework_qd_item">
<text>鎵规鍙�</text>
<view class="rework_qd_item_right">
- <u--input placeholder="璇疯緭鍏�" style="width: 230rpx;" border="surround" v-model="item.batch"></u--input>
+ <u--input placeholder="璇疯緭鍏�" inputAlign="right" :customStyle="{width: '230rpx'}" border="surround" v-model="item.batch"></u--input>
</view>
</view>
<view class="rework_qd_item">
<text><b>*</b>鍏ュ簱鏁伴噺<template v-if="item.unitName">({{ item.unitName }})</template></text>
<view class="rework_qd_item_right">
- <u--input placeholder="0" border="surround" v-model="item.num"></u--input>
+ <u--input placeholder="0" inputAlign="right" :customStyle="{width: '230rpx'}" border="surround" v-model="item.num"></u--input>
</view>
</view>
</view>
@@ -78,32 +78,51 @@
</van-swipe-cell>
</view>
<view class="rework_zw"></view>
+ <!-- 搴曢儴鎿嶄綔鎸夐挳 -->
<view class="rework_footer">
<button class="rework_footer_submit">鎻愪氦</button>
</view>
<u-toast ref="uToast"></u-toast>
<!-- 浠撳簱 -->
<Warehouse :show="warehouseShow" @close="close" @value="getValue" />
+ <!-- 鐗╂枡 -->
+ <Material :show="materialsShow" @close="close1" @value="getValue1" />
<!-- 璐т綅 -->
- <location :show="locationShow" @close="close1" @value="getValue1" />
+ <location :show="locationShow" :list="locationList" @close="close3" @value="getValue3" />
+ <!-- 宸ュ簭 -->
+ <ProductionProcess :show="productionShow" :list="productionList" @close="close4" @value="getValue4" />
<!-- 鍗曟嵁绫诲瀷 -->
<u-picker :show="typeShow" keyName="name" :columns="typeList" @confirm="confirm" @cancel="typeClose"></u-picker>
+ <!-- 璐ㄩ噺灞炴�� -->
+ <u-picker :show="qualityShow" :columns="columns" @cancel="qualityShow = false" keyName="name" @confirm="onConfirm1"></u-picker>
</view>
</template>
<script>
import Warehouse from '../../components/Warehouse.vue'
import location from '../../components/location.vue'
+ import Material from '../../components/Material.vue'
+ import ProductionProcess from '../../components/ProductionProcess.vue'
export default {
- components: { Warehouse, location },
+ components: { Warehouse, location, Material, ProductionProcess },
data() {
return {
+ i: 0,
form: {
warehouseName: '',
warehouseId: '',
type: '',
typeName: ''
},
+ locationList: [],
+ productionList: [],
+ columns: [
+ [
+ { name: '鍚堟牸', id: '0' },
+ { name: '涓嶈壇', id: '1' },
+ { name: '鎶ュ簾', id: '2' }
+ ]
+ ],
list: [
{
batch: '',
@@ -125,10 +144,71 @@
typeList: [[{name: '閲囪喘鍏ュ簱', id: 25}, {name: '搴撳瓨璋冩暣', id: 28}]],
warehouseShow: false,
typeShow: false,
- locationShow: false
+ locationShow: false,
+ materialsShow: false,
+ productionShow: false,
+ qualityShow: false
};
},
methods: {
+ // 璐ㄩ噺灞炴�х‘璁�
+ onConfirm1(value) {
+ this.form.typeName = value.name
+ this.form.type = value.id
+ if (value.id == 25) {
+ this.list.forEach(item => {
+ item.procedureId = ''
+ item.procedureName = ''
+ })
+ }
+ this.typeShow = false
+ },
+ // 閫夋嫨鐗╂枡
+ getValue1(item) {
+ this.list[this.i].materialName = item.mmodelUnionName
+ this.list[this.i].materialId = item.id
+ this.list[this.i].unitId = item.unitId
+ this.list[this.i].hasBom = item.hasBom
+ this.list[this.i].unitName = item.umodelName
+ // 鑾峰彇鐗╂枡涓嬪伐搴�
+ getListByMaterialId({
+ materialId: item.id
+ }).then(res => {
+ if (res.code === 200) {
+ productionList.value = res.data
+ this.list[this.i].procedureId = ''
+ this.list[this.i].procedureName = ''
+ }
+ })
+ materialsShow.value = false
+ },
+ // 鍏抽棴浠撳簱閫夋嫨寮规
+ close1() {
+ this.materialsShow = false
+ },
+ // 閫夋嫨璐т綅
+ getValue3(item) {
+ this.list[this.i].locationId = item.id
+ this.list[this.i].locationName = item.unionName
+ this.list[this.i].qualityType = ''
+ this.list[this.i].qualityTypeName = ''
+ this.list[this.i].locationIdLabel = item.label
+ if (item.label === 'APPLIANCE_ONTEST') {
+ this.list[this.i].qualityType = '0'
+ this.list[this.i].qualityTypeName = '鍚堟牸'
+ } else if (item.label === 'APPLIANCE_OFFTEST') {
+ this.list[this.i].qualityType = '1'
+ this.list[this.i].qualityTypeName = '涓嶈壇'
+ } else if (item.label === 'APPLIANCE_USELESS') {
+ this.list[this.i].qualityType = '2'
+ this.list[this.i].qualityTypeName = '鎶ュ簾'
+ }
+ this.locationShow = false
+ },
+ // 鍏抽棴璐т綅閫夋嫨寮规
+ close3() {
+ this.locationShow = false
+ },
// 纭鍗曟嵁绫诲瀷
confirm(val) {
this.form.type = val.value[0].id
diff --git a/minipro_standard/pages_adjust/pages/newOutbound/newOutbound.vue b/minipro_standard/pages_adjust/pages/newOutbound/newOutbound.vue
new file mode 100644
index 0000000..8c3b35f
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/newOutbound/newOutbound.vue
@@ -0,0 +1,19 @@
+<template>
+ <view>
+
+ </view>
+</template>
+
+<script>
+ export default {
+ data() {
+ return {
+
+ };
+ }
+ }
+</script>
+
+<style lang="scss">
+
+</style>
diff --git a/minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue b/minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue
new file mode 100644
index 0000000..100f272
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/outboundDetails/outboundDetails.vue
@@ -0,0 +1,331 @@
+<template>
+ <view class="content1">
+ <view class="order-message">
+ <view class="content_list_item_top">
+ <view class="content_list_item_top_left">
+ <!-- <text>鍑哄簱鍗曞彿锛�</text>-->
+ <text>{{ data.code }}</text>
+ </view>
+ <view class="content_list_item_top_right">
+ <text class="warning" v-if="data.status === 0">寰呭嚭搴�</text>
+ <text class="green" v-else-if="data.status === 1">宸插嚭搴�</text>
+ <text class="info" v-else-if="data.status === 2">宸插彇娑�</text>
+ </view>
+ </view>
+ <view class="content_list_item_content">
+ <view style="margin-top: 0 " class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍗曟嵁绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr" v-if="data.billType">
+ {{ orderTyepToStr(data.billType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍑鸿揣浠撳簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.warehouseCode + ' | ' + data.warehouseName }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">璁″垝鏃ユ湡锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.planDate }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr" v-if="data.originType">
+ {{ tyepToStr(data.originType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮鍗曞彿锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.originCode ? data.originCode : '-' }}
+ </view>
+ </view>
+ <view v-if="data.updateName" class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鎿嶄綔浜猴細</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.updateName + ' - ' + data.updateMobile }}
+ </view>
+ </view>
+ <view v-if="data.updateTime" class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鎿嶄綔鏃堕棿锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.updateTime }}
+ </view>
+ </view>
+ </view>
+ </view>
+ <!-- 杞簱鐗╂枡 -->
+ <view class="title">
+ <text class="title-prefix"></text>
+ <text>{{ data.status == 1 ? '宸插嚭搴撶墿鏂�' : '寰呭嚭搴撶墿鏂�' }}</text>
+ </view>
+ <view class="material-content">
+ <view class="item-style" v-for="(item, index) in materailArray" :key="index">
+ <view class="item-title-style">
+ <text style="font-weight: 500;">{{ item.materialName + ' | ' + item.materialCode}}</text>
+ </view>
+ <view class="item-content-style">
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鎵规鍙凤細</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.batch }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏁伴噺锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.num + item.unitName }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">宸ュ簭锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.procedureName || '-' }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">璐ㄩ噺锛�</view>
+ <view class="content_list_item_content_item_nr">
+ <text v-if="item.qualityType == 0" class="green">鍚堟牸</text>
+ <text v-else-if="item.qualityType == 1" class="yellow">涓嶈壇</text>
+ <text v-else-if="item.qualityType == 2" class="red">鎶ュ簾</text>
+ <text v-else>-</text>
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍑哄簱璐т綅锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.locationName }}
+ </view>
+ </view>
+ </view>
+ <!-- <view style="margin-top:10rpx; background: #cccccc; height:0.5rpx"></view>-->
+ </view>
+ </view>
+ <view v-if="data.status === 0" style="height:94rpx"></view>
+ <view v-if="data.status === 0" class="bottom-button">
+ <button class="button button-action" @click="submit">鍘诲嚭搴�</button>
+ <button class="button button-cancel" @click="cancel">鍙栨秷</button>
+ </view>
+ </view>
+</template>
+
+<script>
+ import { orderTyepToStr } from '@/util/constData.js'
+
+ export default {
+ data() {
+ return {
+ data: {},
+ types: [
+ { name: '鍏ㄩ儴', id: '', isActive: true },
+ { name: '閲囪喘璁㈠崟', id: '0', isActive: false },
+ { name: '鐢熶骇宸ュ崟', id: '1', isActive: false },
+ { name: '閿�鍞鍗�', id: '2', isActive: false },
+ { name: '杞簱鍗�', id: '3', isActive: false },
+ { name: '鐩樼偣鍗�', id: '4', isActive: false },
+ ],
+ materailArray: []
+ };
+ },
+ methods: {
+ tyepToStr(type) {
+ // <!-- 1銆佽溅闂撮鏂欙紱2銆佽溅闂村鏂欙紱3銆佸叾浠栵紱4銆佸畬宸ュ叆搴� -->
+ for (const item of this.types) {
+ if (parseInt(item.id) === type) {
+ return item.name
+ }
+ }
+ return '-'
+ },
+ submit() {
+
+ },
+ cancel() {
+
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .content1 {
+ padding: 30rpx;
+ background: white;
+
+ .order-message {
+ display: flex;
+ flex-direction: column;
+
+ // border-bottom: 1rpx solid #ececec;
+ .content_list_item_top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .content_list_item_top_left {
+ display: flex;
+
+ // align-items: center;
+ text {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ }
+ }
+
+ .content_list_item_top_right {
+ font-size: 26rpx;
+ font-weight: 400;
+
+ .created {
+ color: $nav-stateColor1 !important;
+ }
+
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+
+ .green {
+ color: $nav-stateColor6 !important;
+ }
+
+ .info {
+ color: $nav-stateColor3 !important;
+ }
+ }
+ }
+
+ .content_list_item_content {
+ padding: 24rpx 30rpx;
+ background: #f7f7f7;
+ border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ margin-top: 32rpx;
+
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ margin-top: 24rpx;
+
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+
+ .title {
+ font-size: 30rpx;
+ display: flex;
+ align-items: center;
+ margin-top: 30rpx;
+
+ .title-prefix {
+ display: inline-block;
+ background-color: #4275FC;
+ height: 30rpx;
+ width: 8rpx;
+ border-radius: 1rpx;
+ margin-right: 12rpx;
+ }
+ }
+
+ .material-content {
+ margin-top: 30rpx;
+
+ .item-style {
+ width: initial;
+ border-bottom: 1rpx solid #ececec;
+ margin-top: 30rpx;
+
+ &:last-child {
+ border: none;
+ }
+
+ .item-title-style {
+ margin-bottom: 12rpx;
+ font-size: 30rpx;
+ }
+
+ .item-content-style {
+ // padding: 24rpx 30rpx;
+ // background-color: #f7f7f7;
+ // border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ padding: 1rpx 1rpx 30rpx 1rpx;
+
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ margin-top: 24rpx;
+
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .bottom-button {
+ padding: 1rpx;
+ background-color: #f7f7f7;
+ position: fixed;
+ width: 100%;
+ bottom: 0;
+ height: 188rpx;
+ display: flex;
+ justify-content: space-between;
+
+ .button-action {
+ background: #fff;
+ color: $nav-color;
+ }
+
+ .button-cancel {
+ background: $nav-color;
+ color: #FFFFFF;
+ }
+
+ .button {
+ margin: 32rpx 32rpx 68rpx 32rpx;
+ height: 88rpx;
+ width: 334rpx;
+ border: none;
+ border-radius: 8rpx;
+ box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/minipro_standard/pages_adjust/pages/outboundList/outboundList.vue b/minipro_standard/pages_adjust/pages/outboundList/outboundList.vue
index fba7cbb..5aeff0b 100644
--- a/minipro_standard/pages_adjust/pages/outboundList/outboundList.vue
+++ b/minipro_standard/pages_adjust/pages/outboundList/outboundList.vue
@@ -1,19 +1,562 @@
<template>
- <view>
- 鍑哄簱鍗曞垪琛�
+ <view class="content">
+ <view class="content_search">
+ <Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
+ placeholder="鎼滅储鍑哄簱鍗曞彿/鍑哄簱浠撳簱">
+ <template v-slot:content>
+ <view class="Search_item">
+ <view class="Search_item_label">璁″垝鏃ユ湡</view>
+ <view class="Search_item_content" @click="openDate">
+ <view class="Search_item_content_a" :style="listData.startDate ? 'color: #000' : ''">
+ {{ listData.startDate ? listData.startDate : '寮�濮嬫棩鏈�'}}</view>
+ <text>-</text>
+ <view class="Search_item_content_a" :style="listData.endDate ? 'color: #000' : ''">
+ {{ listData.endDate ? listData.endDate : '缁撴潫鏃ユ湡'}}</view>
+ </view>
+ </view>
+ <view class="Search_item">
+ <view class="Search_item_label">鍗曟嵁绫诲瀷</view>
+ <view class="Search_item_content">
+ <view class="tag">
+ <view class="tag_item" :class="{'tag_active': item.isActive}" v-for="(item, i) in types"
+ :key="item.id" @click="changeTags(i)">{{item.name}}</view>
+ </view>
+ </view>
+ </view>
+ </template>
+ </Search>
+ <view class="content_search_x"></view>
+ <LabelSelection :TagList="tagList" :isShow="true" @change="clickTag" />
+ </view>
+ <view class="content_total" :style="{top: top}">鍏眥{listData.total}}鏉℃暟鎹�</view>
+ <view class="content_list">
+ <scroll-view @scrolltolower="getLists" scroll-y :style="{height: height}">
+ <view class="content_list_item" v-for="(item, i) in lists" :key="i" @click="jump(item)">
+ <!-- item澶撮儴瑙嗗浘 -->
+ <view class="content_list_item_top">
+ <view class="content_list_item_top_left">
+ <!-- <text>杞簱鍗曞彿锛�</text>-->
+ <text>{{ item.code }}</text>
+ </view>
+ <view class="content_list_item_top_right">
+ <span class="warning" v-if="item.status === 0">寰呭嚭搴�</span>
+ <span class="green" v-else-if="item.status === 1">宸插嚭搴�</span>
+ <span class="info" v-else-if="item.status === 2">宸插彇娑�</span>
+ </view>
+ </view>
+ <!-- item涓婚淇℃伅閮ㄥ垎 -->
+ <view class="content_list_item_content">
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍗曟嵁绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ orderTyepToStr(item.billType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍑哄簱浠撳簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.warehouseName + ' | ' + item.warehouseCode }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">璁″垝鍑哄簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.planDate }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ tyepToStr(item.originType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮鍗曞彿锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.originCode ? item.originCode : '-' }}
+ </view>
+ </view>
+ </view>
+ </view>
+ </scroll-view>
+ </view>
+ <!-- 閫夋嫨鏃ユ湡 -->
+ <u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
</view>
</template>
<script>
+ import Search from '@/components/Search.vue'
+ import LabelSelection from '@/components/LabelSelection.vue'
+ import { orderTyepToStr } from '@/util/constData.js'
export default {
+ components: {
+ Search,
+ LabelSelection
+ },
data() {
return {
-
+ height: '',
+ top: '',
+ listData: {
+ capacity: 10,
+ page: 0,
+ total: 0,
+ planDateEnd: "",
+ planDateStart: "",
+ code: "",
+ originType: "",
+ status: ""
+ },
+ types: [
+ { name: '杞﹂棿棰嗘枡', id: '1', isActive: false },
+ { name: '鏈哄彴澶囨枡', id: '2', isActive: false },
+ { name: '杞﹂棿杞簱', id: '3', isActive: false },
+ { name: '瀹屽伐鍏ュ簱', id: '4', isActive: false },
+ { name: '璁″垝棰嗘枡', id: '5', isActive: false },
+ { name: '澶栧崗棰嗘枡', id: '6', isActive: false },
+ { name: '澶栧崗瀹屽伐杞簱', id: '7', isActive: false },
+ { name: '浜у搧鍏ュ簱', id: '8', isActive: false },
+ { name: '浜у搧杞簱', id: '9', isActive: false },
+ { name: '璁╂鏀捐鍏ュ簱', id: '10', isActive: false },
+ { name: '璁╂鏀捐杞簱', id: '11', isActive: false },
+ { name: '瀹㈣繑杩斾慨棰嗘枡', id: '12', isActive: false },
+ { name: '瀹㈣繑杩斾慨鍏ュ簱', id: '13', isActive: false },
+ { name: '璺ㄧ粍缁囪浆搴�', id: '14', isActive: false },
+ { name: '宸ュ簭鎶ュ簾', id: '15', isActive: false },
+ { name: '瀹㈤��杩斾慨棰嗘枡', id: '16', isActive: false },
+ { name: '瀹㈤��杩斾慨鍏ュ簱', id: '17', isActive: false },
+ { name: '閿�鍞嚭搴�', id: '18', isActive: false },
+ { name: '璁╂閿�鍞�', id: '19', isActive: false },
+ { name: '宸ュ崟鎶曟枡', id: '20', isActive: false },
+ { name: '浠撳簱鎶ュ簾', id: '21', isActive: false },
+ { name: '瀹㈤��妫�楠岄鏂�', id: '22', isActive: false },
+ { name: '瀹㈣繑妫�楠岄鏂�', id: '23', isActive: false },
+ { name: '搴撳瓨璋冩暣', id: '28', isActive: false },
+ { name: '搴熷搧鍏ュ簱', id: '30', isActive: false }
+ ],
+ tagList: [
+ {
+ id: "",
+ name: "鍏ㄩ儴",
+ num: '0',
+ },
+ {
+ id: "0",
+ name: "寰呭嚭搴�",
+ num: '0',
+ },
+ {
+ id: "1",
+ name: "宸插嚭搴�",
+ num: "0",
+ },
+ {
+ id: "2",
+ name: "宸插彇娑�",
+ num: "0",
+ }
+ ],
+ data: [], // 宸ュ簭鏁版嵁
+ factoryList: [],
+ finished: true,
+ loading: false,
+ refreshing: false,
+ timeShow: false,
+ lists: []
};
+ },
+ onReady() {
+ var that = this
+ this.$nextTick(() => {
+ uni.createSelectorQuery().in(this).select('.content_search').boundingClientRect((rect) => {
+ that.height = `calc(100vh - ${rect.height + 80}px)`
+ that.top = `${rect.height}px`
+ }).exec()
+ })
+ },
+ methods: {
+ tyepToStr(type) {
+ // <!-- 1銆佽溅闂撮鏂欙紱2銆佽溅闂村鏂欙紱3銆佸叾浠栵紱4銆佸畬宸ュ叆搴� -->
+ for (const item of this.orderType) {
+ if (item.id == type) {
+ return item.name
+ }
+ }
+ return '-'
+ },
+ // 璺宠浆
+ jump(item) {
+ uni.navigateTo({
+ url: `/pages/planDetails/planDetails?id=${item.id}`
+ })
+ },
+ // 鑾峰彇澶撮儴缁勪欢楂樺害
+ getHeight(height) {
+ this.height = height
+ },
+ // 閲嶇疆
+ reset() {
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ this.listData.mixParam = ''
+ this.listData.startDate = ''
+ this.listData.endDate = ''
+ this.listData.procedureIds = []
+ if (this.factoryList.length > 0) {
+ this.listData.departIds = this.factoryList[0].id
+ }
+ if (this.data.length > 0) {
+ this.data.forEach(item => {
+ item.isActive = false
+ })
+ }
+ // this.getLists()
+ // this.pageCounts()
+ },
+ // 鏃ユ湡纭畾
+ timeConfirm(val) {
+ this.listData.startDate = val[0]
+ this.listData.endDate = val[val.length - 1]
+ this.timeShow = false
+ },
+ // 鍒囨崲宸ュ巶
+ changeTags(i, id) {
+ this.listData.departIds = id
+ this.getWorkingProcedures(id)
+ this.factoryList.forEach((item, index) => {
+ if (index === i) {
+ item.isActive = true
+ } else {
+ item.isActive = false
+ }
+ })
+ },
+ // 鎵撳紑鏃ユ湡鎻掍欢
+ openDate() {
+ this.timeShow = true
+ },
+ // 鎼滅储
+ searchInput(val) {
+ this.listData.mixParam = val
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ this.getLists()
+ },
+ // 鐐瑰嚮鏍囩鎼滅储
+ clickTag(ids) {
+ this.listData.cateIds = ids
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ // this.getLists()
+ },
+ // 鑾峰彇鍒楄〃缁熻
+ pageCounts() {
+ pageCount({
+ factoryId: this.listData.departIds,
+ procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
+ startDate: this.listData.startDate,
+ endDate: this.listData.endDate,
+ statusList: this.listData.cateIds
+ }).then(res => {
+ if (res.code === 200 && res.data) {
+ this.tagList[0].num = res.data.allNum.toString()
+ this.tagList[1].num = res.data.startNum.toString()
+ this.tagList[2].num = res.data.ingNum.toString()
+ this.tagList[3].num = res.data.endNum.toString()
+ }
+ })
+ },
+ // 鑾峰彇宸ュ巶鏁版嵁
+ getOrganizations() {
+ getOrganization({
+ type: 1
+ }).then(res => {
+ if (res.code === 200 && res.data && res.data.length !== 0) {
+ res.data.forEach((item, i) => {
+ item.isActive = i === 0;
+ })
+ if (res.data.length > 0) {
+ this.factoryList = res.data
+ this.listData.departIds = this.factoryList[0].id
+ this.listData.procedureIds = ''
+ this.finished = false
+ this.getWorkingProcedures(this.factoryList[0].id)
+ this.getLists()
+ this.pageCounts()
+ }
+ }
+ })
+ },
+ // 鑾峰彇宸ュ簭鏁版嵁
+ getWorkingProcedures(orgId) {
+ this.data = []
+ getWorkingProcedure({
+ orgId
+ })
+ .then(res => {
+ if (res.code === 200 && res.data && res.data.length !== 0) {
+ res.data.forEach((item, i) => {
+ item.isActive = false;
+ })
+ this.data = res.data
+ }
+ })
+ },
+ // 鎼滅储寮规鎻愪氦
+ submit() {
+ let pmodelOrgId = []
+ this.data.forEach((item) => {
+ if (item.isActive) {
+ pmodelOrgId.push(item.id)
+ }
+ })
+ this.listData.procedureIds = pmodelOrgId
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ // this.getLists()
+ // this.pageCounts()
+ },
+ // 鑾峰彇璁″垝鍒楄〃鏁版嵁
+ getLists() {
+ console.log('getLists')
+ if (!this.finished) {
+ this.loading = true
+ this.listData.page = this.listData.page++
+ getList({
+ capacity: this.listData.capacity,
+ model: {
+ mixParam: this.listData.mixParam,
+ startDate: this.listData.startDate,
+ endDate: this.listData.endDate,
+ procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
+ factoryId: this.listData.departIds,
+ statusList: this.listData.cateIds
+ },
+ page: this.listData.page,
+ sorts: [{
+ direction: 'ASC',
+ property: 'publishDate'
+ }]
+ }).then(res => {
+ this.loading = false
+ this.listData.total = res.data.total
+ if (this.refreshing) {
+ this.lists = []
+ this.refreshing = false;
+ }
+ if (res.code === 200 && res.data.records.length !== 0) {
+ if (this.lists.length === 0) {
+ this.lists = res.data.records
+ } else {
+ this.lists.push(...res.data.records)
+ }
+ } else {
+ this.finished = true
+ }
+ }).catch(err => {
+ this.loading = false
+ this.finished = true
+ if (this.refreshing) {
+ this.lists = []
+ this.refreshing = false;
+ }
+ })
+ }
+ }
}
}
</script>
-<style lang="scss">
+<style lang="scss" scoped>
+ .content {
+ .content_search {
+ width: 100%;
+ padding: 30rpx;
+ background: white;
+ position: sticky;
+ top: 0;
+ z-index: 999;
+ box-sizing: border-box;
-</style>
+ .Search_item {
+ margin-bottom: 40rpx;
+
+ .Search_item_label {
+ font-size: 30rpx;
+ font-weight: 500;
+ color: #222222;
+ }
+
+ .Search_item_content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-top: 30rpx;
+
+ .tag {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+
+ .tag_active {
+ background: $nav-color !important;
+ color: #ffffff !important;
+ }
+
+ .tag_item {
+ padding: 22rpx 26rpx;
+ box-sizing: border-box;
+ background: #F2F2F2;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #333333;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 22rpx;
+ margin-bottom: 22rpx;
+ }
+ }
+
+ text {
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #333333;
+ margin: 0 30rpx;
+ }
+
+ .Search_item_content_a {
+ padding: 20rpx 0;
+ flex: 1;
+ background: #F7F7F7;
+ border-radius: 8rpx;
+ border: 1rpx solid #EEEEEE;
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #B2B2B2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ }
+
+ .content_search_x {
+ height: 24rpx;
+ }
+ }
+
+ .content_list {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+
+ .content_list_item {
+ width: 100%;
+ box-sizing: border-box;
+ padding: 30rpx;
+ display: flex;
+ flex-direction: column;
+ border-bottom: 1rpx solid #ececec;
+ background: white;
+
+ .content_list_item_top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .content_list_item_top_left {
+ display: flex;
+ align-items: center;
+
+ text {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ }
+ }
+
+ .content_list_item_top_right {
+ font-size: 26rpx;
+ font-weight: 400;
+
+ .created {
+ color: $nav-stateColor1 !important;
+ }
+
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+
+ .green {
+ color: $nav-stateColor6 !important;
+ }
+
+ .info {
+ color: $nav-stateColor3 !important;
+ }
+ }
+ }
+
+ .content_list_item_content {
+ padding: 24rpx 30rpx;
+ background: #f7f7f7;
+ border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ margin-top: 32rpx;
+
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ margin-top: 24rpx;
+
+ &:first-child {
+ margin-top: 0;
+ }
+
+ // &:nth-child(1) {
+ // margin-top: 0 !important;
+ // }
+ // &:nth-child(2) {
+ // margin-top: 0 !important;
+ // }
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .content_total {
+ width: 100%;
+ height: 80rpx;
+ padding: 24rpx 30rpx;
+ background: #F7F7F7;
+ font-size: 24rpx;
+ font-weight: 400;
+ box-sizing: border-box;
+ color: #666666;
+ position: sticky;
+ z-index: 99;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/minipro_standard/pages_adjust/pages/transferList/transferList.vue b/minipro_standard/pages_adjust/pages/transferList/transferList.vue
index 8fb249b..411c87c 100644
--- a/minipro_standard/pages_adjust/pages/transferList/transferList.vue
+++ b/minipro_standard/pages_adjust/pages/transferList/transferList.vue
@@ -2,7 +2,7 @@
<view class="content">
<view class="content_search">
<Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
- placeholder="鎼滅储鐗╂枡鍚嶇О/缂栫爜/宸ュ簭鍚嶇О">
+ placeholder="鎼滅储杞簱鍗曞彿">
<template v-slot:content>
<view class="Search_item">
<view class="Search_item_label">璁″垝鏃ユ湡</view>
diff --git a/minipro_standard/pages_adjust/pages/warehousingDetails1/warehousingDetails1.vue b/minipro_standard/pages_adjust/pages/warehousingDetails1/warehousingDetails1.vue
new file mode 100644
index 0000000..3f94b84
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/warehousingDetails1/warehousingDetails1.vue
@@ -0,0 +1,346 @@
+<template>
+ <view class="content">
+ <view class="order-message">
+ <view class="content_list_item_top">
+ <view class="content_list_item_top_left">
+ <!--<text>鍏ュ簱鍗曞彿锛�</text>-->
+ <text>{{ data.code }}</text>
+ </view>
+ <view class="content_list_item_top_right">
+ <text class="warning" v-if="data.status === 0">寰呭叆搴�</text>
+ <text class="green" v-else-if="data.status === 1">宸插叆搴�</text>
+ <text class="info" v-else-if="data.status === 2">宸插彇娑�</text>
+ </view>
+ </view>
+ <view class="content_list_item_content">
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍗曟嵁绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr" v-if="data.billType">
+ {{ orderTyepToStr(data.billType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍏ュ簱浠撳簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.warehouseCode + ' | ' + data.warehouseName }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">璁″垝鍏ュ簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.planDate }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr" v-if="data.originType">
+ {{ tyepToStr(data.originType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮鍗曞彿锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ data.originCode ? data.originCode : '-' }}
+ </view>
+ </view>
+ </view>
+ </view>
+ <!-- 杞簱鐗╂枡 -->
+ <view class="title">
+ <text class="title-prefix"></text>
+ <text>鍏ュ嚭搴撶墿鏂�</text>
+ </view>
+ <view class="material-content">
+ <view class="item-style" v-for="(item, index) in materailArray" :key="index">
+ <view class="item-title-style">
+ <text style="font-weight: 500;">{{ item.materialName + ' | ' + item.materialCode}}</text>
+ </view>
+ <view class="item-content-style">
+ <view class="content_list_item_content_item">
+ <text class="content_list_item_content_item_label">鎵规鍙凤細</text>
+ <text class="content_list_item_content_item_nr">{{ item.batch || '-' }}</text>
+ </view>
+ <view class="content_list_item_content_item">
+ <text class="content_list_item_content_item_label">鏁伴噺锛�</text>
+ <text class="content_list_item_content_item_nr">{{ item.doneNum + item.unitName }}</text>
+ </view>
+ <view class="content_list_item_content_item">
+ <text class="content_list_item_content_item_label">宸ュ簭锛�</text>
+ <text class="content_list_item_content_item_nr">{{ item.procedureName || '-' }}</text>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">璐ㄩ噺锛�</view>
+ <view class="content_list_item_content_item_nr">
+ <text v-if="item.qualityType == 0" class="green">鍚堟牸</text>
+ <text v-else-if="item.qualityType == 1" class="yellow">涓嶈壇</text>
+ <text v-else-if="item.qualityType == 2" class="red">鎶ュ簾</text>
+ <text v-else>-</text>
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <text class="content_list_item_content_item_label">鍏ュ簱璐т綅锛�</text>
+ <text class="content_list_item_content_item_nr">{{ item.locationName ? item.locationName : '-' }}</text>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view v-if="data.status === 0" style="height:94rpx"></view>
+ <view v-if="data.status === 0" class="bottom-button">
+ <button class="button button-cancel" @click="submit">鍘诲叆搴�</button>
+ <!-- <button class="button button-cancel" @click="cancel">鍙栨秷</button> -->
+ </view>
+ </view>
+</template>
+
+<script>
+ import {
+ orderTyepToStr
+ } from '@/util/constData.js'
+ export default {
+ data() {
+ return {
+ types: [{
+ name: '鍏ㄩ儴',
+ id: '',
+ isActive: true
+ },
+ {
+ name: '閲囪喘璁㈠崟',
+ id: '0',
+ isActive: false
+ },
+ {
+ name: '鐢熶骇宸ュ崟',
+ id: '1',
+ isActive: false
+ },
+ {
+ name: '閿�鍞鍗�',
+ id: '2',
+ isActive: false
+ },
+ {
+ name: '杞簱鍗�',
+ id: '3',
+ isActive: false
+ },
+ {
+ name: '鐩樼偣鍗�',
+ id: '4',
+ isActive: false
+ },
+ ],
+ data: {},
+ materailArray: []
+ };
+ },
+ methods: {
+ tyepToStr(type) {
+ // <!-- 1銆佽溅闂撮鏂欙紱2銆佽溅闂村鏂欙紱3銆佸叾浠栵紱4銆佸畬宸ュ叆搴� -->
+ for (const item of this.types) {
+ if (parseInt(item.id) === this.type) {
+ return item.name
+ }
+ }
+ return '-'
+ },
+ submit() {
+
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .content {
+ background: white;
+
+ .order-message {
+ padding: 30rpx;
+ display: flex;
+ flex-direction: column;
+
+ // border-bottom: 1rpx solid #ececec;
+ .content_list_item_top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .content_list_item_top_left {
+ display: flex;
+
+ // align-items: center;
+ text {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ }
+ }
+
+ .content_list_item_top_right {
+ font-size: 26rpx;
+ font-weight: 400;
+
+ .created {
+ color: $nav-stateColor1 !important;
+ }
+
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+
+ .green {
+ color: $nav-stateColor6 !important;
+ }
+
+ .info {
+ color: $nav-stateColor3 !important;
+ }
+ }
+ }
+
+ .content_list_item_content {
+ padding: 24rpx 30rpx;
+ background: #f7f7f7;
+ border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ margin-top: 32rpx;
+
+ .content_list_item_content_item:first-child {
+ margin-top: 0;
+ }
+
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-top: 24rpx;
+
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+
+ .title {
+ background-color: #f7f7f7;
+ padding: 30rpx;
+ font-size: 30rpx;
+ display: flex;
+ align-items: center;
+
+ .title-prefix {
+ display: inline-block;
+ background-color: #4275FC;
+ height: 30rpx;
+ width: 8rpx;
+ border-radius: 1rpx;
+ margin-right: 12rpx;
+ }
+ }
+
+ .material-content {
+ padding: 30rpx;
+
+ .item-style {
+ width: initial;
+ border-bottom: 1rpx solid #ececec;
+ margin-top: 30rpx;
+
+ &:first-child {
+ margin-top: 0 !important;
+ }
+
+ &:last-child {
+ border: none;
+ }
+
+ .item-title-style {
+ margin-bottom: 12rpx;
+ font-size: 30rpx;
+ }
+
+ .item-content-style {
+ // padding: 24rpx 30rpx;
+ // background-color: #f7f7f7;
+ // border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ padding-bottom: 30rpx;
+ justify-content: space-between;
+
+ &:last-child {
+ padding-bottom: 0;
+ }
+
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ margin-top: 24rpx;
+
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .bottom-button {
+ padding: 1rpx;
+ background-color: #f7f7f7;
+ position: fixed;
+ width: 100%;
+ bottom: 0;
+ height: 188rpx;
+ display: flex;
+ justify-content: space-between;
+
+ .button-action {
+ background: #fff;
+ color: $nav-color;
+ }
+
+ .button-cancel {
+ background: $nav-color;
+ color: #FFFFFF;
+ }
+
+ .button {
+ margin: 32rpx 32rpx 68rpx 32rpx;
+ height: 88rpx;
+ /*width: 668rpx;*/
+ // width: 334rpx;
+ border: none;
+ border-radius: 8rpx;
+ box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue b/minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue
new file mode 100644
index 0000000..0649278
--- /dev/null
+++ b/minipro_standard/pages_adjust/pages/warehousingList/warehousingList.vue
@@ -0,0 +1,562 @@
+<template>
+ <view class="content">
+ <view class="content_search">
+ <Search @searchInput="searchInput" @submit="submit" @reset="reset" :isShow="true"
+ placeholder="鎼滅储鍏ュ簱鍗曞彿/鍏ュ簱浠撳簱">
+ <template v-slot:content>
+ <view class="Search_item">
+ <view class="Search_item_label">璁″垝鏃ユ湡</view>
+ <view class="Search_item_content" @click="openDate">
+ <view class="Search_item_content_a" :style="listData.startDate ? 'color: #000' : ''">
+ {{ listData.startDate ? listData.startDate : '寮�濮嬫棩鏈�'}}</view>
+ <text>-</text>
+ <view class="Search_item_content_a" :style="listData.endDate ? 'color: #000' : ''">
+ {{ listData.endDate ? listData.endDate : '缁撴潫鏃ユ湡'}}</view>
+ </view>
+ </view>
+ <view class="Search_item">
+ <view class="Search_item_label">鍗曟嵁绫诲瀷</view>
+ <view class="Search_item_content">
+ <view class="tag">
+ <view class="tag_item" :class="{'tag_active': item.isActive}" v-for="(item, i) in types"
+ :key="item.id" @click="changeTags(i)">{{item.name}}</view>
+ </view>
+ </view>
+ </view>
+ </template>
+ </Search>
+ <view class="content_search_x"></view>
+ <LabelSelection :TagList="tagList" :isShow="true" @change="clickTag" />
+ </view>
+ <view class="content_total" :style="{top: top}">鍏眥{listData.total}}鏉℃暟鎹�</view>
+ <view class="content_list">
+ <scroll-view @scrolltolower="getLists" scroll-y :style="{height: height}">
+ <view class="content_list_item" v-for="(item, i) in lists" :key="i" @click="jump(item)">
+ <!-- item澶撮儴瑙嗗浘 -->
+ <view class="content_list_item_top">
+ <view class="content_list_item_top_left">
+ <!-- <text>杞簱鍗曞彿锛�</text>-->
+ <text>{{ item.code }}</text>
+ </view>
+ <view class="content_list_item_top_right">
+ <span class="warning" v-if="item.status == 0">寰呭叆搴�</span>
+ <span class="green" v-else-if="item.status == 1">宸插叆搴�</span>
+ <span class="info" v-else-if="item.status == 2">宸插彇娑�</span>
+ </view>
+ </view>
+ <!-- item涓婚淇℃伅閮ㄥ垎 -->
+ <view class="content_list_item_content">
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍗曟嵁绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ orderTyepToStr(item.billType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鍏ュ簱浠撳簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.warehouseName + ' | ' + item.warehouseCode }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">璁″垝鍏ュ簱锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.planDate }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮绫诲瀷锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ tyepToStr(item.originType) }}
+ </view>
+ </view>
+ <view class="content_list_item_content_item">
+ <view class="content_list_item_content_item_label">鏉ユ簮鍗曞彿锛�</view>
+ <view class="content_list_item_content_item_nr">
+ {{ item.originCode ? item.originCode : '-' }}
+ </view>
+ </view>
+ </view>
+ </view>
+ </scroll-view>
+ </view>
+ <!-- 閫夋嫨鏃ユ湡 -->
+ <u-calendar :show="timeShow" @close="timeShow = false" @confirm="timeConfirm"></u-calendar>
+ </view>
+</template>
+
+<script>
+ import Search from '@/components/Search.vue'
+ import LabelSelection from '@/components/LabelSelection.vue'
+ import { orderTyepToStr } from '@/util/constData.js'
+ export default {
+ components: {
+ Search,
+ LabelSelection
+ },
+ data() {
+ return {
+ height: '',
+ top: '',
+ listData: {
+ capacity: 10,
+ page: 0,
+ total: 0,
+ planDateEnd: "",
+ planDateStart: "",
+ code: "",
+ originType: "",
+ status: ""
+ },
+ types: [
+ { name: '杞﹂棿棰嗘枡', id: '1', isActive: false },
+ { name: '鏈哄彴澶囨枡', id: '2', isActive: false },
+ { name: '杞﹂棿杞簱', id: '3', isActive: false },
+ { name: '瀹屽伐鍏ュ簱', id: '4', isActive: false },
+ { name: '璁″垝棰嗘枡', id: '5', isActive: false },
+ { name: '澶栧崗棰嗘枡', id: '6', isActive: false },
+ { name: '澶栧崗瀹屽伐杞簱', id: '7', isActive: false },
+ { name: '浜у搧鍏ュ簱', id: '8', isActive: false },
+ { name: '浜у搧杞簱', id: '9', isActive: false },
+ { name: '璁╂鏀捐鍏ュ簱', id: '10', isActive: false },
+ { name: '璁╂鏀捐杞簱', id: '11', isActive: false },
+ { name: '瀹㈣繑杩斾慨棰嗘枡', id: '12', isActive: false },
+ { name: '瀹㈣繑杩斾慨鍏ュ簱', id: '13', isActive: false },
+ { name: '璺ㄧ粍缁囪浆搴�', id: '14', isActive: false },
+ { name: '宸ュ簭鎶ュ簾', id: '15', isActive: false },
+ { name: '瀹㈤��杩斾慨棰嗘枡', id: '16', isActive: false },
+ { name: '瀹㈤��杩斾慨鍏ュ簱', id: '17', isActive: false },
+ { name: '閿�鍞嚭搴�', id: '18', isActive: false },
+ { name: '璁╂閿�鍞�', id: '19', isActive: false },
+ { name: '宸ュ崟鎶曟枡', id: '20', isActive: false },
+ { name: '浠撳簱鎶ュ簾', id: '21', isActive: false },
+ { name: '瀹㈤��妫�楠岄鏂�', id: '22', isActive: false },
+ { name: '瀹㈣繑妫�楠岄鏂�', id: '23', isActive: false },
+ { name: '搴撳瓨璋冩暣', id: '28', isActive: false },
+ { name: '搴熷搧鍏ュ簱', id: '30', isActive: false }
+ ],
+ tagList: [
+ {
+ id: "",
+ name: "鍏ㄩ儴",
+ num: '0',
+ },
+ {
+ id: "0",
+ name: "寰呭嚭搴�",
+ num: '0',
+ },
+ {
+ id: "1",
+ name: "宸插嚭搴�",
+ num: "0",
+ },
+ {
+ id: "2",
+ name: "宸插彇娑�",
+ num: "0",
+ }
+ ],
+ data: [], // 宸ュ簭鏁版嵁
+ factoryList: [],
+ finished: true,
+ loading: false,
+ refreshing: false,
+ timeShow: false,
+ lists: []
+ };
+ },
+ onReady() {
+ var that = this
+ this.$nextTick(() => {
+ uni.createSelectorQuery().in(this).select('.content_search').boundingClientRect((rect) => {
+ that.height = `calc(100vh - ${rect.height + 80}px)`
+ that.top = `${rect.height}px`
+ }).exec()
+ })
+ },
+ methods: {
+ tyepToStr(type) {
+ // <!-- 1銆佽溅闂撮鏂欙紱2銆佽溅闂村鏂欙紱3銆佸叾浠栵紱4銆佸畬宸ュ叆搴� -->
+ for (const item of this.orderType) {
+ if (item.id == type) {
+ return item.name
+ }
+ }
+ return '-'
+ },
+ // 璺宠浆
+ jump(item) {
+ uni.navigateTo({
+ url: `/pages/planDetails/planDetails?id=${item.id}`
+ })
+ },
+ // 鑾峰彇澶撮儴缁勪欢楂樺害
+ getHeight(height) {
+ this.height = height
+ },
+ // 閲嶇疆
+ reset() {
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ this.listData.mixParam = ''
+ this.listData.startDate = ''
+ this.listData.endDate = ''
+ this.listData.procedureIds = []
+ if (this.factoryList.length > 0) {
+ this.listData.departIds = this.factoryList[0].id
+ }
+ if (this.data.length > 0) {
+ this.data.forEach(item => {
+ item.isActive = false
+ })
+ }
+ // this.getLists()
+ // this.pageCounts()
+ },
+ // 鏃ユ湡纭畾
+ timeConfirm(val) {
+ this.listData.startDate = val[0]
+ this.listData.endDate = val[val.length - 1]
+ this.timeShow = false
+ },
+ // 鍒囨崲宸ュ巶
+ changeTags(i, id) {
+ this.listData.departIds = id
+ this.getWorkingProcedures(id)
+ this.factoryList.forEach((item, index) => {
+ if (index === i) {
+ item.isActive = true
+ } else {
+ item.isActive = false
+ }
+ })
+ },
+ // 鎵撳紑鏃ユ湡鎻掍欢
+ openDate() {
+ this.timeShow = true
+ },
+ // 鎼滅储
+ searchInput(val) {
+ this.listData.mixParam = val
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ this.getLists()
+ },
+ // 鐐瑰嚮鏍囩鎼滅储
+ clickTag(ids) {
+ this.listData.cateIds = ids
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ // this.getLists()
+ },
+ // 鑾峰彇鍒楄〃缁熻
+ pageCounts() {
+ pageCount({
+ factoryId: this.listData.departIds,
+ procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
+ startDate: this.listData.startDate,
+ endDate: this.listData.endDate,
+ statusList: this.listData.cateIds
+ }).then(res => {
+ if (res.code === 200 && res.data) {
+ this.tagList[0].num = res.data.allNum.toString()
+ this.tagList[1].num = res.data.startNum.toString()
+ this.tagList[2].num = res.data.ingNum.toString()
+ this.tagList[3].num = res.data.endNum.toString()
+ }
+ })
+ },
+ // 鑾峰彇宸ュ巶鏁版嵁
+ getOrganizations() {
+ getOrganization({
+ type: 1
+ }).then(res => {
+ if (res.code === 200 && res.data && res.data.length !== 0) {
+ res.data.forEach((item, i) => {
+ item.isActive = i === 0;
+ })
+ if (res.data.length > 0) {
+ this.factoryList = res.data
+ this.listData.departIds = this.factoryList[0].id
+ this.listData.procedureIds = ''
+ this.finished = false
+ this.getWorkingProcedures(this.factoryList[0].id)
+ this.getLists()
+ this.pageCounts()
+ }
+ }
+ })
+ },
+ // 鑾峰彇宸ュ簭鏁版嵁
+ getWorkingProcedures(orgId) {
+ this.data = []
+ getWorkingProcedure({
+ orgId
+ })
+ .then(res => {
+ if (res.code === 200 && res.data && res.data.length !== 0) {
+ res.data.forEach((item, i) => {
+ item.isActive = false;
+ })
+ this.data = res.data
+ }
+ })
+ },
+ // 鎼滅储寮规鎻愪氦
+ submit() {
+ let pmodelOrgId = []
+ this.data.forEach((item) => {
+ if (item.isActive) {
+ pmodelOrgId.push(item.id)
+ }
+ })
+ this.listData.procedureIds = pmodelOrgId
+ this.listData.page = 0
+ this.finished = false
+ this.lists = []
+ // this.getLists()
+ // this.pageCounts()
+ },
+ // 鑾峰彇璁″垝鍒楄〃鏁版嵁
+ getLists() {
+ console.log('getLists')
+ if (!this.finished) {
+ this.loading = true
+ this.listData.page = this.listData.page++
+ getList({
+ capacity: this.listData.capacity,
+ model: {
+ mixParam: this.listData.mixParam,
+ startDate: this.listData.startDate,
+ endDate: this.listData.endDate,
+ procedureIdList: this.listData.procedureIds ? this.listData.procedureIds : [],
+ factoryId: this.listData.departIds,
+ statusList: this.listData.cateIds
+ },
+ page: this.listData.page,
+ sorts: [{
+ direction: 'ASC',
+ property: 'publishDate'
+ }]
+ }).then(res => {
+ this.loading = false
+ this.listData.total = res.data.total
+ if (this.refreshing) {
+ this.lists = []
+ this.refreshing = false;
+ }
+ if (res.code === 200 && res.data.records.length !== 0) {
+ if (this.lists.length === 0) {
+ this.lists = res.data.records
+ } else {
+ this.lists.push(...res.data.records)
+ }
+ } else {
+ this.finished = true
+ }
+ }).catch(err => {
+ this.loading = false
+ this.finished = true
+ if (this.refreshing) {
+ this.lists = []
+ this.refreshing = false;
+ }
+ })
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .content {
+ .content_search {
+ width: 100%;
+ padding: 30rpx;
+ background: white;
+ position: sticky;
+ top: 0;
+ z-index: 999;
+ box-sizing: border-box;
+
+ .Search_item {
+ margin-bottom: 40rpx;
+
+ .Search_item_label {
+ font-size: 30rpx;
+ font-weight: 500;
+ color: #222222;
+ }
+
+ .Search_item_content {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-top: 30rpx;
+
+ .tag {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+
+ .tag_active {
+ background: $nav-color !important;
+ color: #ffffff !important;
+ }
+
+ .tag_item {
+ padding: 22rpx 26rpx;
+ box-sizing: border-box;
+ background: #F2F2F2;
+ border-radius: 8rpx;
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #333333;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 22rpx;
+ margin-bottom: 22rpx;
+ }
+ }
+
+ text {
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #333333;
+ margin: 0 30rpx;
+ }
+
+ .Search_item_content_a {
+ padding: 20rpx 0;
+ flex: 1;
+ background: #F7F7F7;
+ border-radius: 8rpx;
+ border: 1rpx solid #EEEEEE;
+ font-size: 26rpx;
+ font-weight: 400;
+ color: #B2B2B2;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ }
+
+ .content_search_x {
+ height: 24rpx;
+ }
+ }
+
+ .content_list {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+
+ .content_list_item {
+ width: 100%;
+ box-sizing: border-box;
+ padding: 30rpx;
+ display: flex;
+ flex-direction: column;
+ border-bottom: 1rpx solid #ececec;
+ background: white;
+
+ .content_list_item_top {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ .content_list_item_top_left {
+ display: flex;
+ align-items: center;
+
+ text {
+ font-size: 32rpx;
+ font-weight: 500;
+ color: #333333;
+ }
+ }
+
+ .content_list_item_top_right {
+ font-size: 26rpx;
+ font-weight: 400;
+
+ .created {
+ color: $nav-stateColor1 !important;
+ }
+
+ .warning {
+ color: $nav-stateColor5 !important;
+ }
+
+ .green {
+ color: $nav-stateColor6 !important;
+ }
+
+ .info {
+ color: $nav-stateColor3 !important;
+ }
+ }
+ }
+
+ .content_list_item_content {
+ padding: 24rpx 30rpx;
+ background: #f7f7f7;
+ border-radius: 16rpx;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: space-between;
+ margin-top: 32rpx;
+
+ .content_list_item_content_item {
+ width: 100%;
+ display: flex;
+ margin-top: 24rpx;
+
+ &:first-child {
+ margin-top: 0;
+ }
+
+ // &:nth-child(1) {
+ // margin-top: 0 !important;
+ // }
+ // &:nth-child(2) {
+ // margin-top: 0 !important;
+ // }
+ .content_list_item_content_item_label {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #666666;
+ flex-shrink: 0;
+ }
+
+ .content_list_item_content_item_nr {
+ font-size: 24rpx;
+ font-weight: 400;
+ color: #222222;
+ margin-right: 10rpx;
+ }
+ }
+ }
+ }
+ }
+
+ .content_total {
+ width: 100%;
+ height: 80rpx;
+ padding: 24rpx 30rpx;
+ background: #F7F7F7;
+ font-size: 24rpx;
+ font-weight: 400;
+ box-sizing: border-box;
+ color: #666666;
+ position: sticky;
+ z-index: 99;
+ }
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3