minipro_standard/common/config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages_adjust/components/multipleMaterial.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages_adjust/pages/newTransfer/newTransfer.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
minipro_standard/common/config.js
@@ -1,8 +1,8 @@ module.exports = { // baseUrl: 'http://106.14.20.42/test_hfznzz/', // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/', baseUrl: 'http://192.168.0.15:10021', // baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api', // baseUrl: 'http://192.168.0.15:10021', baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api', phoneRegular: /^1[3456789]\d{9}$/, mailboxRegular: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, positiveInteger: /^[0-9]*[1-9][0-9]*$/, minipro_standard/pages_adjust/components/multipleMaterial.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,312 @@ <template> <u-popup :show="show" :round="10" closeable @close="show = false"> <view class="material-content bbox p30 rp"> <view class="tc b f24 c2 mb20">éæ©ç©æ</view> <v-Search @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="æç´¢ç©æåç§°/ç¼ç " /> <div class="content_total">å ±{{form.total}}æ¡æ°æ®</div> <view class="scroll-content"> <!-- refresher-enabled="true" :refresher-triggered="refreshing" @refresherrefresh="onRefresh" --> <scroll-view scroll-y="true" @scrolltolower="loadMore"> <view v-for="(item1, index) in list" :key="index" class="flex mb20" @click="jump(index)"> <view class="img36 mr20 pt10"> <u-checkbox-group style="display: block;" name=""> <u-checkbox :checked="item1.isActive"></u-checkbox> </u-checkbox-group> </view> <view class="fx1"> <div class="page_content_title_top"> <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item1.qualityType == 0"> åæ ¼ <text class="c1" decode>{{ splite }}</text> </span> <span class="orange" v-else-if="item1.qualityType == 1"> ä¸è¯ <text class="c1" decode>{{ splite }}</text> </span> <span class="red" v-else-if="item1.qualityType == 2"> æ¥åº <text class="c1" decode>{{ splite }}</text> </span> <span v-else> - <text class="c1" decode>{{ splite }}</text> </span> <span> {{item1.procedureName ? item1.procedureName : '-'}} <text class="c1" decode>{{ splite }}</text> </span> <span>{{item1.batch ? item1.batch : '-'}}</span> </div> <div class="mt20 plr25 ptb20 bg_f7 f26"> <div class="c2 mb10"><span class="c6">è´§ä½ï¼</span>{{ item1.locationName }}</div> <div class="c2"><span class="c6">æ°éï¼</span>{{ item1.num }}{{ item1.unitName }}</div> </div> </view> </view> </scroll-view> <!-- <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower"> <u-list-item v-for="(item1, index) in list" :key="index"> </u-list-item> </u-list> --> </view> <view style="height: 98rpx;"></view> <!-- <view class=""> <u-safe-bottom></u-safe-bottom> </view> --> <view class="fixedBottom bottom cY"> <view class="fx1 bbox plr30"> <u-checkbox-group style="display: block;" name="" @change="selectAll()"> <u-checkbox :checked="isAll" label="å ¨é"></u-checkbox> </u-checkbox-group> </view> <view class="submit sbtn_green bbox tc" @click="submitAction">{{ `æäº¤(${totalNum})`}}</view> </view> </view> </u-popup> </template> <script> import vSearch from '@/components/Search.vue' import { choiceStockListPage } from '@/util/api/agencyAPI' export default { name: "selectMaterial", components: { vSearch }, data() { return { show: false, splite: ' | ', form: { capacity: 50, page: 0, total: 0, smodelLabel: '', categoryId: '' }, list: [], loading: false, finished: false, refreshing: false, total: 0 }; }, props: { warehouseId: { type: String, default: '' }, warehouseQualityType: { type: String, default: '' }, selected: { type: Array, default: [] } }, computed: { all() { for (let i = 0; i < this.list.length; i++) { if (!this.list[i].isActive) { return false } } return true }, totalNum() { let num = 0; this.list.forEach(item => { if (item.isActive) { num += 1 } }) return num; } }, methods: { open() { this.show = true this.refreshing = false this.finished = false this.list = [] this.form.page = 0 this.form.total = 0 this.loadData() }, jump(index) { this.list.forEach((item, i) => { if (index === i) { item.isActive = !item.isActive } }) }, // æç´¢æäº¤ submit() { this.form.page = 0 this.finished = false this.list = [] this.onLoad() }, // æç´¢æ¡ searchInput(data) { this.form.page = 0 this.finished = false this.list = [] this.form.smodelLabel = data this.onLoad() }, loadData() { if (!this.finished) { this.loading = true; this.form.page = this.form.page += 1 choiceStockListPage({ capacity: this.form.capacity, page: this.form.page, model: { warehouseId: this.warehouseId, warehouseQualityType: this.warehouseQualityType, ids: this.selected.length > 0 ? this.selected.join(',') : '' } }).then(res => { if (this.refreshing) { this.list = [] this.refreshing = false; } this.loading = false; if (res.code === 200 && res.data.records && res.data.records.length !== 0) { this.form.total = res.data.total res.data.records.forEach(element => { element.isActive = false }) this.list.push(...res.data.records) } else { this.finished = true; } }).catch(err => { this.loading = false; this.finished = true; if (this.refreshing) { this.list = [] this.refreshing = false; } }) } }, loadMore() { this.pages.page += 1 this.loadData() }, onRefresh() { if (this.refreshing) return this.refreshing = true; this.pages.page = 1 this.loadData() }, selectAll() { this.list.forEach(element => { element.isActive = this.all }) }, submitAction () { this.show = false let arr = [] this.list.forEach(element => { if (element.isActive) { arr.push(element) } }) this.$emit('value', arr) } } } </script> <style lang="scss" scoped> .material-content { display: flex; flex-direction: column; height: 1200rpx; box-sizing: border-box; .scroll-content { height: calc(1100rpx - env(safe-area-inset-bottom)); overflow: scroll; } } .content_total { margin-top: 20rpx; margin-bottom: 20rpx; // padding: 24rpx 30rpx; // background: #F7F7F7; font-size: 24rpx; font-weight: 400; color: #666666; } .page_content_title_top { display: flex; align-items: center; justify-content: space-between; span { &:nth-child(1) { font-size: 30rpx; font-weight: 500; color: #222222; } &:nth-child(2) { flex-shrink: 0; font-size: 24rpx; font-weight: 400; color: #333333; // span { // font-size: 24rpx; // color: $nav-color; // } } } } .page_content_title_bottom { margin-top: 24rpx; span { font-size: 24rpx; font-weight: 400; color: #666666; } } .page_content_title { display: flex; flex-direction: column; margin-bottom: 10rpx; } .bottom { height: 98rpx; .submit { width: 272rpx; height: 98rpx; line-height: 98rpx; } } </style> minipro_standard/pages_adjust/pages/newTransfer/newTransfer.vue
@@ -29,26 +29,25 @@ </view> <view class="zk_wl"> <template v-if="view.MaterialList.length > 0"> <van-swipe-cell v-for="(item, i) in view.MaterialList" :key="i"> <view class="zk_wl_item"> <view class="zk_wl_item" v-for="(item, i) in view.MaterialList" :key="i"> <image class="shanchu" src="@/static/chuku_ic_delete@2x.png" mode="widthFix" @click="dele(i)"></image> <text>{{item.materialName}}ï½{{item.materialCode}}</text> <text> <text class="green" v-if="item.qualityType === '0'">åæ ¼</text> <text class="yellow" v-if="item.qualityType === '1'">ä¸è¯</text> <text class="red" v-if="item.qualityType === '2'">æ¥åº</text> | <text>{{item.procedureName ? item.procedureName : '-'}} | </text> <text class="green" v-if="item.qualityType === '0'">åæ ¼ |</text> <text class="yellow" v-if="item.qualityType === '1'">ä¸è¯ |</text> <text class="red" v-if="item.qualityType === '2'">æ¥åº |</text> <text>{{item.procedureName ? item.procedureName : '-'}} | </text> <text>{{item.batch ? item.batch : '-'}}</text> </text> <text>è´§ä½ï¼{{item.locationName}}</text> <view class="zk_wl_item_num"> <text>è½¬åºæ°é({{item.unitName}})ï¼</text> <text>è´§ä½ï¼{{item.locationName}}</text> <view class="zk_wl_item_input"> <text>æ°éï¼</text> <input type="number" v-model="item.total" placeholder="0" /> <text>{{item.unitName}}</text> </view> </view> <template #right> <van-button square type="danger" style="height: 100%;" text="å é¤" @click="dele(i)" /> </template> </van-swipe-cell> </view> </template> <view class="zk_wl_w" v-else> <text>ææ æ°æ®</text> @@ -63,7 +62,12 @@ <!-- éæ©ä»åº --> <Warehouse :show="view.Warehouse" @close="view.Warehouse = false" @value="getValue" /> <!-- éæ©ç©æ --> <SelectMultipleMaterial ref="SelectMultipleMaterial" /> <multipleMaterial :warehouseId="data.exWarehouseId.toString()" :warehouseQualityType="view.warehouseQualityType" :selected="view.MaterialList.map(item => item.id)" @value="getValueWL" ref="multipleMaterial" /> <!-- åæ®ç±»å --> <u-picker :show="view.type" :columns="view.documentTypeDate" keyName="name" @cancel="onCancel" @confirm="onConfirm"></u-picker> </view> @@ -72,13 +76,13 @@ <script> import { setTime } from '@/util/utils.js' import { documentType } from '@/util/constData.js' import SelectMultipleMaterial from '@/components/SelectMultipleMaterial.vue' import multipleMaterial from '../../components/multipleMaterial.vue' import Warehouse from '../../components/Warehouse.vue' import { createZK } from '@/util/api/agencyAPI' export default { components: { SelectMultipleMaterial, multipleMaterial, Warehouse }, data() { @@ -117,17 +121,21 @@ { name: 'åºåå ¥åº', id: 30 } ] ], warehouseQualityType: '', customFieldName: { text: 'name' } warehouseQualityType: '' } }; }, methods: { // å é¤ç©æ dele(i) { this.view.MaterialList.splice(i, 1) }, // ä»åºåè° getValue(val) { if (this.view.status === 'c') { if (this.data.exWarehouseId !== val.id) { this.view.MaterialList = [] } this.data.exWarehouse = val.name this.data.exWarehouseId = val.id this.data.outUserId = val.managerId @@ -138,6 +146,14 @@ this.view.warehouseQualityType = val.tmodel.label } this.view.Warehouse = false }, // ç©æåè° getValueWL(val) { val.forEach(element => { element.total = element.num }) this.view.MaterialList.push(...val) this.view.Material = false }, // ç¡®è®¤åæ®ç±»å onConfirm(val) { @@ -178,8 +194,8 @@ proceduresId: element.procedureId, inLocationId: null, outLocationId: element.locationId, inWarehouseId: data.exWarehouseId, outWarehouseId: data.warehousingWarehouse inWarehouseId: this.data.exWarehouseId, outWarehouseId: this.data.warehousingWarehouse }) }) createZK({ @@ -194,7 +210,7 @@ wtransferDetailBeanList }).then(res => { if (res.code === 200) { uni.showToast({ title: 'å建æåï¼', icon: 'none', duration: 2000 }); uni.showToast({ title: 'å建æåï¼', icon: 'success', duration: 2000 }); setTimeout(() => { uni.navigateBack({ delta: 1 }); }, 2000) @@ -221,7 +237,7 @@ // const { selected } = Material.value // Material.value.selected = arr // view.Material = true this.$refs.SelectMultipleMaterial.open({}) this.$refs.multipleMaterial.open() } else { uni.showToast({ title: '请å éæ©å ¥åºä»åº', icon: 'none', duration: 2000 }); } @@ -314,6 +330,15 @@ flex-direction: column; padding: 30rpx; border-bottom: 1rpx solid #e2e2e2; position: relative; .shanchu { width: 48rpx; height: 48rpx; position: absolute; top: 0; right: 0; } .zk_wl_item_num { display: flex; @@ -321,15 +346,27 @@ justify-content: space-between; margin-top: 30rpx; .zk_wl_item_input { display: flex; align-items: center; text { font-size: 28rpx; font-size: 26rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #222222; color: #666666; } } text { font-size: 26rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #333333; margin: 0 !important; } input { width: 180rpx; width: 140rpx; height: 60rpx; background: #FFFFFF; border-radius: 8rpx; @@ -384,6 +421,7 @@ position: fixed; bottom: 0; left: 0; z-index: 999; padding-bottom: 68rpx; display: flex; align-items: center;