minipro_standard/common/css/iconfont.css | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages/index/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages_adjust/components/multipleMaterial.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages_inspect/pages/InOperation/InOperation.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
minipro_standard/pages_inspect/pages/OutOperation/OutOperation.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
minipro_standard/common/css/iconfont.css
ÎļþÒÑɾ³ý minipro_standard/main.js
@@ -5,7 +5,7 @@ // å¼å ¥å ¨å±uView import uView from '@/uni_modules/uview-ui' Vue.use(uView) // vuex // vuex import store from './store' Vue.prototype.$store = store store.dispatch('getHeight') minipro_standard/pages.json
@@ -108,20 +108,6 @@ "enablePullDownRefresh": false } }, { "path": "pages/OutOperation/OutOperation", "style": { "navigationBarTitleText": "åºåºæä½", "enablePullDownRefresh": false } }, { "path": "pages/InOperation/InOperation", "style": { "navigationBarTitleText": "å ¥åºæä½", "enablePullDownRefresh": false } } ], "subPackages": [{ @@ -259,6 +245,19 @@ "root": "pages_inspect", "pages": [ { "path": "pages/OutOperation/OutOperation", "style": { "navigationBarTitleText": "åºåºæä½", "enablePullDownRefresh": false } }, { "path": "pages/InOperation/InOperation", "style": { "navigationBarTitleText": "å ¥åºæä½", "enablePullDownRefresh": false } }, { "path": "pages/InspectionRecords/InspectionRecords", "style": { "navigationBarTitleText": "æ£éªè®°å½", minipro_standard/pages/index/index.vue
@@ -237,7 +237,7 @@ case 0: case 2: case 5: { if (item.status === 0) { uni.navigateTo({ url: `/pages/OutOperation/OutOperation?id=${item.objId}&dbid=${item.id}&type=7` url: `/pages_inspect/pages/OutOperation/OutOperation?id=${item.objId}&dbid=${item.id}&type=7` }) } else { uni.navigateTo({ @@ -262,7 +262,7 @@ case 1: case 6: { if (item.status === 0) { uni.navigateTo({ url: `/pages/InOperation/InOperation?id=${item.objId}&dbid=${item.id}&type=7` url: `/pages_inspect/pages/InOperation/InOperation?id=${item.objId}&dbid=${item.id}&type=7` }) } else { uni.navigateTo({ @@ -274,7 +274,7 @@ case 9: { if (item.status === 0) { uni.navigateTo({ url: `/pages/InOperation/InOperation?id=${item.objId}&dbid=${item.id}&type=9` url: `/pages_inspect/pages/InOperation/InOperation?id=${item.objId}&dbid=${item.id}&type=9` }) } else{ uni.navigateTo({ minipro_standard/pages_adjust/components/multipleMaterial.vue
@@ -5,20 +5,12 @@ <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)"> <<<<<<< HEAD <view class="img36 mr20 pt10" style="position: relative;"> <u-checkbox-group style="display: block;" name=""> ======= <view class="img36 mr20 pt10"> <u-checkbox-group style="display: block;" name="" @change="jump(index)"> >>>>>>> 041c81a20c93a6b8238e810fe9a1adfee9c9d86f <u-checkbox :checked="item1.isActive"></u-checkbox> </u-checkbox-group> <view style="width: 18px; height: 18px; position: absolute; top: 0; left: 0; z-index: 99;"></view> minipro_standard/pages_inspect/pages/InOperation/InOperation.vue
ÎļþÃû´Ó minipro_standard/pages/InOperation/InOperation.vue ÐÞ¸Ä @@ -1,389 +1,389 @@ <template> <view> <InOutInfo :info="info" /> <uni-collapse @change="change" @close="close" @open="open"> <uni-collapse-item v-if="type==7" v-for="(item1, index) in wtransferWarehouseList" :key="index" :open="item1.wtransferDetailList.length"> <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title"> <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image> <view>{{ item1.warehouseName }}</view> </view> <view class="p30"> <div class="page_dck"> <div class="page_dck_title"> <div class="page_dck_title_x"></div> <span>å¾ å ¥åºç©æ</span> </div> </div> <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" :key="index" :name="index"> <div class="page_content_title"> <div class="page_content_title_top"> <span v-if="item.batch">{{ item.materialName + ' | ' + item.materialCode }}</span> <template> <view> <InOutInfo :info="info" /> <uni-collapse @change="change" @close="close" @open="open"> <uni-collapse-item v-if="type==7" v-for="(item1, index) in wtransferWarehouseList" :key="index" :open="item1.wtransferDetailList.length"> <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title"> <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image> <view>{{ item1.warehouseName }}</view> </view> <view class="p30"> <div class="page_dck"> <div class="page_dck_title"> <div class="page_dck_title_x"></div> <span>å¾ å ¥åºç©æ</span> </div> </div> <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" :key="index" :name="index"> <div class="page_content_title"> <div class="page_content_title_top"> <span v-if="item.batch">{{ item.materialName + ' | ' + item.materialCode }}</span> <span v-else>{{ item.materialName + ' | ' + item.materialCode }}</span> <span>{{item.outActnum}}{{item.unitName}}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span class="black">/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span class="black">/</span> </span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº <span class="black">/</span> </span> <span v-else>- / </span> <span>{{item.procedureName ? item.procedureName : '-'}} / </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> <!-- <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" :key="idxs"> <div class="page_content_list_item"> <div class="page_content_list_item_label">å ¥åºè´§ä½ï¼</div> <div class="page_content_list_item_nr">{{ childer.locationName }}</div> </div> <div class="page_content_list_items"> <div class="page_content_list_item_label">æ°éï¼</div> <div class="page_content_list_item_nr">{{ childer.num }}{{ childer.unitName }}</div> </div> </div> --> </div> </view> </uni-collapse-item> </uni-collapse> <div class="page_h"></div> <div class="page_yxwl"> <div class="page_yxwl_title"> <div class="left"> <div class="page_yxwl_title_x"></div> <span>å·²éæ©ç©æ</span> </div> <div class="right" v-if="isZKD" @click="openxz"> <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>æå¨å ¥åº</span> <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""> --> </div> </div> <!-- å ¥åºåï¼å个ä»åºï¼ --> <template v-if="type == 9 && woScanMaterialBeanList && woScanMaterialBeanList.length > 0"> <div class="page_yxwl_list"> <div class="page_yxwl_list_item" v-for="(item, index) in woScanMaterialBeanList" :key="index"> <div class="page_yxwl_list_item_top"> <!-- <div class="page_yxwl_list_item_top_left" v-if="item.batch">{{item.materialName}} | {{item.materialCode}}ï½{{item.batch}}</div>--> <div class="page_yxwl_list_item_top_left">{{item.materialName}} | {{item.materialCode}} </div> </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span>/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span>/</span> </span> <span class="red" v-else-if="item.qualityType === 2">æ¥åº <span>/</span> </span> <span>{{item.procedureName ? item.procedureName : '-'}} <span>/</span> </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> <div class="page_yxwl_list_item_num"> <div class="dis"> <div class="item"> <div class="label">å ¥åºè´§ä½ï¼</div> <div class="nr"> <span>{{item.locationName ? item.locationName : '-'}}</span> </div> </div> <div class="items"> <div class="label">æ°éï¼</div> <div class="nr"> <input type="text" v-model="item.scanNum" placeholder="请è¾å ¥" /> <span>{{item.unitName}}</span> </div> </div> </div> <div class="itemy" v-for="(item1, idx) in item.woutboundRedisCodeBeanList" :key="idx"> <div class="label">å·¥è£ {{item1.scanCode}}ï¼</div> <div class="nr">{{item1.num}}{{item1.unitName}}</div> <div class="dele" @click="dele(item1)"> <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image> </div> </div> </div> </div> </div> </template> <!-- 转åºåï¼å¤ä¸ªä»åºï¼ --> <template v-else-if="type == 7 && seleMateriaList.length > 0"> <!-- <template v-for="(item, index) in info.wtransferWarehouseList" :key="index"> --> <div class="page_yxwl_list"> <div class="page_yxwl_list_item" v-for="(item1, idx) in seleMateriaList" :key="idx"> <div class="page_yxwl_list_item_top"> <!-- <div class="page_yxwl_list_item_top_left" v-if="item1.batch">{{item1.materialName}} | {{item1.materialCode}}ï½{{item1.batch}}</div>--> <div class="page_yxwl_list_item_top_left">{{item1.materialName}} | {{item1.materialCode}} </div> </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item1.qualityType === 0">åæ ¼ <span>/</span> </span> <span class="yellow" v-else-if="item1.qualityType === 1">ä¸è¯ <span>/</span> </span> <span class="red" v-else-if="item1.qualityType === 2">æ¥åº <span>/</span> </span> <span>{{item1.procedureName ? item1.procedureName : '-'}} <span>/</span> </span> <span>{{item1.batch ? item1.batch : '-'}}</span> </div> <div class="page_yxwl_list_item_num"> <div class="itemy"> <div class="itemy_item"> <div class="label">å ¥åºè´§ä½ï¼</div> <div class="nr"> <span>{{item1.locationName}}</span> </div> </div> <div class="itemy_item"> <div class="label">æ°éï¼</div> <div class="nr"> <!-- @input="inputNum(item1)" --> <input type="number" v-model="item1.outActnum" placeholder="请è¾å ¥" /> <span>{{item1.unitName}}</span> </div> </div> <!-- @click="dele()" --> <div class="dele" @click="dele(idx)"> <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image> </div> </div> </div> </div> </div> <!-- </template> --> </template> <div class="page_yxwl_kong" v-else>ææ æ°æ®</div> </div> <div class="page_zw"></div> <!-- æäº¤æé® --> <div class="page_footer"> <div class="page_footer_ck" @click="submit"> <span>ç¡®è®¤å ¥åº</span> </div> </div> <SelectLoaction ref="selectLoaction" @selected="selectLocation" /> <MaterialIn ref="materialIn" @selected="selectMaterial" /> </view> </template> <script> import InOutInfo from '@/components/InOutInfo.vue' import SelectLoaction from '@/components/SelectLoaction.vue' import MaterialIn from '@/components/materialIn.vue' import { QRCodeType } from '@/common/config.js' import { getList, outScanAppliances, getLocationInfo, saveIn, getInByWTransferId, wTransferForInOut, wOutBoundForInOut, wOutBoundForUpload, transferToInNew } from '@/util/api/ExWarehouse' import { wTransferForInOutUpload } from '@/util/api/ExWarehouse' import { getBarcodeContent, getListByCondition, getListByWarehouseId } from '@/util/api/WorkOrderAPI' import { getDB } from '@/util/api/agencyAPI' export default { components: { InOutInfo, SelectLoaction, MaterialIn }, data() { return { type: '', id: '', wareHouseId: '', isZKD: false, show: false, info: {}, <span>{{item.outActnum}}{{item.unitName}}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span class="black">/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span class="black">/</span> </span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº <span class="black">/</span> </span> <span v-else>- / </span> <span>{{item.procedureName ? item.procedureName : '-'}} / </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> <!-- <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" :key="idxs"> <div class="page_content_list_item"> <div class="page_content_list_item_label">å ¥åºè´§ä½ï¼</div> <div class="page_content_list_item_nr">{{ childer.locationName }}</div> </div> <div class="page_content_list_items"> <div class="page_content_list_item_label">æ°éï¼</div> <div class="page_content_list_item_nr">{{ childer.num }}{{ childer.unitName }}</div> </div> </div> --> </div> </view> </uni-collapse-item> </uni-collapse> <div class="page_h"></div> <div class="page_yxwl"> <div class="page_yxwl_title"> <div class="left"> <div class="page_yxwl_title_x"></div> <span>å·²éæ©ç©æ</span> </div> <div class="right" v-if="isZKD" @click="openxz"> <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>æå¨å ¥åº</span> <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""> --> </div> </div> <!-- å ¥åºåï¼å个ä»åºï¼ --> <template v-if="type == 9 && woScanMaterialBeanList && woScanMaterialBeanList.length > 0"> <div class="page_yxwl_list"> <div class="page_yxwl_list_item" v-for="(item, index) in woScanMaterialBeanList" :key="index"> <div class="page_yxwl_list_item_top"> <!-- <div class="page_yxwl_list_item_top_left" v-if="item.batch">{{item.materialName}} | {{item.materialCode}}ï½{{item.batch}}</div>--> <div class="page_yxwl_list_item_top_left">{{item.materialName}} | {{item.materialCode}} </div> </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span>/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span>/</span> </span> <span class="red" v-else-if="item.qualityType === 2">æ¥åº <span>/</span> </span> <span>{{item.procedureName ? item.procedureName : '-'}} <span>/</span> </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> <div class="page_yxwl_list_item_num"> <div class="dis"> <div class="item"> <div class="label">å ¥åºè´§ä½ï¼</div> <div class="nr"> <span>{{item.locationName ? item.locationName : '-'}}</span> </div> </div> <div class="items"> <div class="label">æ°éï¼</div> <div class="nr"> <input type="text" v-model="item.scanNum" placeholder="请è¾å ¥" /> <span>{{item.unitName}}</span> </div> </div> </div> <div class="itemy" v-for="(item1, idx) in item.woutboundRedisCodeBeanList" :key="idx"> <div class="label">å·¥è£ {{item1.scanCode}}ï¼</div> <div class="nr">{{item1.num}}{{item1.unitName}}</div> <div class="dele" @click="dele(item1)"> <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image> </div> </div> </div> </div> </div> </template> <!-- 转åºåï¼å¤ä¸ªä»åºï¼ --> <template v-else-if="type == 7 && seleMateriaList.length > 0"> <!-- <template v-for="(item, index) in info.wtransferWarehouseList" :key="index"> --> <div class="page_yxwl_list"> <div class="page_yxwl_list_item" v-for="(item1, idx) in seleMateriaList" :key="idx"> <div class="page_yxwl_list_item_top"> <!-- <div class="page_yxwl_list_item_top_left" v-if="item1.batch">{{item1.materialName}} | {{item1.materialCode}}ï½{{item1.batch}}</div>--> <div class="page_yxwl_list_item_top_left">{{item1.materialName}} | {{item1.materialCode}} </div> </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item1.qualityType === 0">åæ ¼ <span>/</span> </span> <span class="yellow" v-else-if="item1.qualityType === 1">ä¸è¯ <span>/</span> </span> <span class="red" v-else-if="item1.qualityType === 2">æ¥åº <span>/</span> </span> <span>{{item1.procedureName ? item1.procedureName : '-'}} <span>/</span> </span> <span>{{item1.batch ? item1.batch : '-'}}</span> </div> <div class="page_yxwl_list_item_num"> <div class="itemy"> <div class="itemy_item"> <div class="label">å ¥åºè´§ä½ï¼</div> <div class="nr"> <span>{{item1.locationName}}</span> </div> </div> <div class="itemy_item"> <div class="label">æ°éï¼</div> <div class="nr"> <!-- @input="inputNum(item1)" --> <input type="number" v-model="item1.outActnum" placeholder="请è¾å ¥" /> <span>{{item1.unitName}}</span> </div> </div> <!-- @click="dele()" --> <div class="dele" @click="dele(idx)"> <image src="../../static/chuku_ic_delete@2x.png" class="img36" mode=""></image> </div> </div> </div> </div> </div> <!-- </template> --> </template> <div class="page_yxwl_kong" v-else>ææ æ°æ®</div> </div> <div class="page_zw"></div> <!-- æäº¤æé® --> <div class="page_footer"> <div class="page_footer_ck" @click="submit"> <span>ç¡®è®¤å ¥åº</span> </div> </div> <SelectLoaction ref="selectLoaction" @selected="selectLocation" /> <MaterialIn ref="materialIn" @selected="selectMaterial" /> </view> </template> <script> import InOutInfo from '@/components/InOutInfo.vue' import SelectLoaction from '@/components/SelectLoaction.vue' import MaterialIn from '@/components/materialIn.vue' import { QRCodeType } from '@/common/config.js' import { getList, outScanAppliances, getLocationInfo, saveIn, getInByWTransferId, wTransferForInOut, wOutBoundForInOut, wOutBoundForUpload, transferToInNew } from '@/util/api/ExWarehouse' import { wTransferForInOutUpload } from '@/util/api/ExWarehouse' import { getBarcodeContent, getListByCondition, getListByWarehouseId } from '@/util/api/WorkOrderAPI' import { getDB } from '@/util/api/agencyAPI' export default { components: { InOutInfo, SelectLoaction, MaterialIn }, data() { return { type: '', id: '', wareHouseId: '', isZKD: false, show: false, info: {}, ids: [], mainOrder: '', location: '', locationName: '', wtransferWarehouseList: [], MateriaList: [], woScanMaterialBeanList: [], seleMateriaList: [] // å·²éç©æ }; }, onLoad(option) { this.type = option.type this.id = option.id this.isZKD = this.type == QRCodeType.ZKD if (option.dbid) { this.getDBs(option.dbid) } else { this.getInfo() } }, methods: { getDBs(dbid) { getDB(dbid) .then(res => { let { data } = res if (data.status == 1) { // 已宿 } else { this.getInfo() } }) .catch(err => {}) }, getInfo() { let infoAction let data = { id: this.id } // console.log(this.type, QRCodeType.CKD); if (this.type == QRCodeType.RKD) { infoAction = wOutBoundForInOut data.wOutboundType = '1' } else if (this.type == QRCodeType.ZKD) { infoAction = wTransferForInOut data.wTransferType = '1' } mainOrder: '', location: '', locationName: '', wtransferWarehouseList: [], MateriaList: [], woScanMaterialBeanList: [], seleMateriaList: [] // å·²éç©æ }; }, onLoad(option) { this.type = option.type this.id = option.id this.isZKD = this.type == QRCodeType.ZKD if (option.dbid) { this.getDBs(option.dbid) } else { this.getInfo() } }, methods: { getDBs(dbid) { getDB(dbid) .then(res => { let { data } = res if (data.status == 1) { // 已宿 } else { this.getInfo() } }) .catch(err => {}) }, getInfo() { let infoAction let data = { id: this.id } // console.log(this.type, QRCodeType.CKD); if (this.type == QRCodeType.RKD) { infoAction = wOutBoundForInOut data.wOutboundType = '1' } else if (this.type == QRCodeType.ZKD) { infoAction = wTransferForInOut data.wTransferType = '1' } infoAction(data).then(res => { this.mainOrder = res.data.id if (this.isZKD) { this.info = res.data.wtransfer this.wareHouseId = res.data.wtransfer.inWarehouseId this.wtransferWarehouseList = res.data.wtransferWarehouseList this.MateriaList = res.data.wtransferWarehouseList[0].wtransferDetailList } else { this.info = res.data.woutbound this.woutboundDetailsWait = res.data.woutboundDetailsWait this.woScanMaterialBeanList = res.data.woScanMaterialBeanList } }).catch(err => { uni.$u.toast(err) uni.navigateBack() }) }, change() {}, close() {}, open() {}, openxz() { getListByWarehouseId({ wareHouseId: this.wareHouseId }) .then(res => { if (res.data.length === 1) { this.location = res.data[0].id this.locationName = res.data[0].unionName this.$refs.materialIn.open({ list: this.MateriaList }) } else { this.$refs.selectLoaction.open({ wareHouseId: this.wareHouseId }) } }) }, selectLocation(item) { this.location = item.id this.locationName = item.unionName this.$refs.materialIn.open({ list: this.MateriaList }) }, selectMaterial(val) { let material = JSON.parse(JSON.stringify(val)) let tempMaterial = this.seleMateriaList.find(item => item.locationId == this.location) if (tempMaterial) { if (tempMaterial.qualityType == material.qualityType && tempMaterial.procedureId == material .procedureId && tempMaterial.batch == material.batch && tempMaterial.materialId == material.materialId) { uni.$u.toast('ç¸åè´§ä½ï¼åä¸ä¸ªç©æåªè½æä¸ä¸ª') return } } let materialNum = 0 let num = 0 this.seleMateriaList.forEach(item => { if (item.id === material.id) { materialNum += Number(item.outActnum) } }) this.MateriaList.forEach(item => { if (item.id === material.id) { num = item.outActnum - materialNum } }) material.outActnum = num this.seleMateriaList.push({ ...material, locationId: this.location, locationName: this.locationName }) }, submit() { if (this.type == QRCodeType.ZKD) { if (!this.seleMateriaList.length) { uni.$u.toast('è½¬å ¥ç©æä¸è½ä¸ºç©º') return } let result = this.seleMateriaList.reduce((a, b) => { if (a[b.id]) { a[b.id].push(b); } else { a[b.id] = [b]; } return a; }, {}); for (let i = 0; i < this.MateriaList.length; i++) { for (let a in result) { if (this.MateriaList[i].id == a) { let total = 0 for (let b = 0; b < result[a].length; b++) { total = Number(total) + Number(result[a][b].outActnum) } this.mainOrder = res.data.id if (this.isZKD) { this.info = res.data.wtransfer this.wareHouseId = res.data.wtransfer.inWarehouseId this.wtransferWarehouseList = res.data.wtransferWarehouseList this.MateriaList = res.data.wtransferWarehouseList[0].wtransferDetailList } else { this.info = res.data.woutbound this.woutboundDetailsWait = res.data.woutboundDetailsWait this.woScanMaterialBeanList = res.data.woScanMaterialBeanList } }).catch(err => { uni.$u.toast(err) uni.navigateBack() }) }, change() {}, close() {}, open() {}, openxz() { getListByWarehouseId({ wareHouseId: this.wareHouseId }) .then(res => { if (res.data.length === 1) { this.location = res.data[0].id this.locationName = res.data[0].unionName this.$refs.materialIn.open({ list: this.MateriaList }) } else { this.$refs.selectLoaction.open({ wareHouseId: this.wareHouseId }) } }) }, selectLocation(item) { this.location = item.id this.locationName = item.unionName this.$refs.materialIn.open({ list: this.MateriaList }) }, selectMaterial(val) { let material = JSON.parse(JSON.stringify(val)) let tempMaterial = this.seleMateriaList.find(item => item.locationId == this.location) if (tempMaterial) { if (tempMaterial.qualityType == material.qualityType && tempMaterial.procedureId == material .procedureId && tempMaterial.batch == material.batch && tempMaterial.materialId == material.materialId) { uni.$u.toast('ç¸åè´§ä½ï¼åä¸ä¸ªç©æåªè½æä¸ä¸ª') return } } let materialNum = 0 let num = 0 this.seleMateriaList.forEach(item => { if (item.id === material.id) { materialNum += Number(item.outActnum) } }) this.MateriaList.forEach(item => { if (item.id === material.id) { num = item.outActnum - materialNum } }) material.outActnum = num this.seleMateriaList.push({ ...material, locationId: this.location, locationName: this.locationName }) }, submit() { if (this.type == QRCodeType.ZKD) { if (!this.seleMateriaList.length) { uni.$u.toast('è½¬å ¥ç©æä¸è½ä¸ºç©º') return } let result = this.seleMateriaList.reduce((a, b) => { if (a[b.id]) { a[b.id].push(b); } else { a[b.id] = [b]; } return a; }, {}); for (let i = 0; i < this.MateriaList.length; i++) { for (let a in result) { if (this.MateriaList[i].id == a) { let total = 0 for (let b = 0; b < result[a].length; b++) { total = Number(total) + Number(result[a][b].outActnum) } if (!total || total <= 0) { uni.$u.toast('å ¥åºæ°éä¸è½å°äº0') uni.$u.toast('å ¥åºæ°éä¸è½å°äº0') return // Toast.fail({ // message: 'å ¥åºæ°éä¸è½å°äº0', // forbidClick: true, // duration: 2000 // }) } // Toast.fail({ // message: 'å ¥åºæ°éä¸è½å°äº0', // forbidClick: true, // duration: 2000 // }) } if (total > this.MateriaList[i].outActnum) { uni.$u.toast('å ¥åºæ°éä¸è½å¤§äºå¾ å ¥åºæ°é') uni.$u.toast('å ¥åºæ°éä¸è½å¤§äºå¾ å ¥åºæ°é') return // Toast.fail({ // message: 'å ¥åºæ°éä¸è½å¤§äºå¾ å ¥åºæ°é', // forbidClick: true, // duration: 2000 // }) } } } } let submitTransferInDetailDTOList = [] this.seleMateriaList.forEach(item => { submitTransferInDetailDTOList.push({ inNum: item.outActnum, locationId: item.locationId, wtransferDetailId: item.id }) }) transferToInNew({ submitTransferInDetailDTOList, wtransferId: this.id }).then(res => { if (res.code === 200) { // Toast.fail({ // message: 'å ¥åºæ°éä¸è½å¤§äºå¾ å ¥åºæ°é', // forbidClick: true, // duration: 2000 // }) } } } } let submitTransferInDetailDTOList = [] this.seleMateriaList.forEach(item => { submitTransferInDetailDTOList.push({ inNum: item.outActnum, locationId: item.locationId, wtransferDetailId: item.id }) }) transferToInNew({ submitTransferInDetailDTOList, wtransferId: this.id }).then(res => { if (res.code === 200) { this.$store.dispatch('getUpcomingNum') uni.$u.toast('æä½æå') if (this.type == '4') { // 跳转å®å·¥å ¥åºè¯¦æ @@ -404,530 +404,530 @@ uni.redirectTo({ url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.id}` }) // setTimeout(() => { // if (route.query.Type == '4') { // 跳转å®å·¥å ¥åºè¯¦æ // router.push({ // name: 'completionDetails', // query: { // id: route.query.id, // dbid: route.query.dbid, // type: 7, // isShow: 2 // } // }) // return // } // router.replace({ // name: 'wTransferDetail', // query: { // id: route.query.id // } // }) // }, 2000) } }) } else if (this.type === QRCodeType.RKD) { wOutBoundForUpload({ id: this.info.id, wOutboundType: 1 }).then(res => { if (res.code === 200) { // setTimeout(() => { // if (route.query.Type == '4') { // 跳转å®å·¥å ¥åºè¯¦æ // router.push({ // name: 'completionDetails', // query: { // id: route.query.id, // dbid: route.query.dbid, // type: 7, // isShow: 2 // } // }) // return // } // router.replace({ // name: 'wTransferDetail', // query: { // id: route.query.id // } // }) // }, 2000) } }) } else if (this.type === QRCodeType.RKD) { wOutBoundForUpload({ id: this.info.id, wOutboundType: 1 }).then(res => { if (res.code === 200) { this.$store.dispatch('getUpcomingNum') uni.$u.toast('æä½æå') uni.redirectTo({ url: `/pages_adjust/pages/warehousingDetails1/warehousingDetails1?id=${this.id}` }) // Toast.success({ // message: 'æä½æå', // forbidClick: true, // duration: 2000 // }) // setTimeout(() => { // // router.go(-1) // router.replace({ // name: 'wInboundDetail', // query: { // id: this.id // } // }) // }, 2000) } }) } } } } </script> <style lang="scss"> .page_dck { .page_dck_title { display: flex; align-items: center; .page_dck_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } } .page_content { margin-top: 36rpx; .page_content_title { display: flex; flex-direction: column; margin-bottom: 10rpx; .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 { .green { color: $nav-stateColor7 !important; .black { color: black !important; } } .warning { color: $nav-stateColor5 !important; .black { color: black !important; } } .error { color: $nav-stateColor4 !important; .black { color: black !important; } } span { font-size: 24rpx; font-weight: 400; color: #666666; } } } .lineBorder { border: none !important; padding-bottom: 0 !important; margin-bottom: 24rpx; } .page_content_list { width: 100%; display: flex; align-items: center; flex-wrap: wrap; &:first-child { margin: 0; } &:last-child { border: none; } .page_content_list_nums { width: 30%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_num { width: 70%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_items { width: 30%; display: flex; margin-top: 24rpx; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_item { width: 70%; display: flex; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } } } .page_h { height: 20rpx; } .page_yxwl { padding: 30rpx; background: #ffffff; .page_yxwl_title { display: flex; align-items: center; justify-content: space-between; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } .left { display: flex; align-items: center; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } .right { display: flex; align-items: center; img { width: 28rpx; height: 28rpx; margin-right: 14rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .page_yxwl_list { display: flex; flex-direction: column; padding-bottom: 30rpx; border-bottom: 1rpx solid #ececec; &:last-child { margin-bottom: 0; border: none; } .page_yxwl_list_item { margin-top: 28rpx; .page_yxwl_list_item_top { display: flex; align-items: center; justify-content: space-between; .page_yxwl_list_item_top_left { font-size: 30rpx; font-weight: 500; color: #222222; } } .page_yxwl_list_item_sx { display: flex; align-items: center; margin-top: 15rpx; } .page_yxwl_list_item_num { display: flex; flex-direction: column; // margin-top: 30rpx; &:first-child { margin-top: 0; } .dis { display: flex; } .itemy { margin-top: 20rpx; width: 100%; display: flex; align-items: center; position: relative; .itemy_item { flex: 1; display: flex; align-items: center; .label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .nr { display: flex; font-size: 26rpx; font-weight: 400; color: #222222; input { width: 100rpx; height: 35rpx; border-radius: 8rpx; border: 1rpx solid #E5E5E5; margin-right: 10rpx; margin-left: 5rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .dele { position: absolute; right: -30rpx; width: 48rpx; height: 48rpx; img { width: 100%; height: 100%; } } } .items { width: 50%; display: flex; align-items: center; .label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .nr { font-size: 26rpx; font-weight: 400; color: #222222; input { width: 100rpx; height: 40rpx; margin-right: 10rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .item { width: 70%; display: flex; align-items: center; .label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .nr { font-size: 26rpx; font-weight: 400; color: #222222; input { width: 100rpx; height: 40rpx; margin-right: 10rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } } } } .page_yxwl_kong { padding: 50rpx 0; font-size: 25rpx; display: flex; align-items: center; justify-content: center; } } .page_zw { height: 160rpx; } .page_footer { width: calc(100% - 60rpx); background: #F7F7F7; display: flex; align-items: center; justify-content: space-between; position: fixed; bottom: 0; left: 30rpx; padding-bottom: 68rpx; .page_footer_qr { flex: 1; height: 88rpx; background: #fff; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: $nav-color; display: flex; align-items: center; justify-content: center; img { width: 30rpx; height: 30rpx; margin-right: 12rpx; } } .page_footer_ck { flex: 1; height: 88rpx; background: $nav-color; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: #FFFFFF; display: flex; align-items: center; justify-content: center; } } }) // Toast.success({ // message: 'æä½æå', // forbidClick: true, // duration: 2000 // }) // setTimeout(() => { // // router.go(-1) // router.replace({ // name: 'wInboundDetail', // query: { // id: this.id // } // }) // }, 2000) } }) } } } } </script> <style lang="scss"> .page_dck { .page_dck_title { display: flex; align-items: center; .page_dck_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } } .page_content { margin-top: 36rpx; .page_content_title { display: flex; flex-direction: column; margin-bottom: 10rpx; .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 { .green { color: $nav-stateColor7 !important; .black { color: black !important; } } .warning { color: $nav-stateColor5 !important; .black { color: black !important; } } .error { color: $nav-stateColor4 !important; .black { color: black !important; } } span { font-size: 24rpx; font-weight: 400; color: #666666; } } } .lineBorder { border: none !important; padding-bottom: 0 !important; margin-bottom: 24rpx; } .page_content_list { width: 100%; display: flex; align-items: center; flex-wrap: wrap; &:first-child { margin: 0; } &:last-child { border: none; } .page_content_list_nums { width: 30%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_num { width: 70%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_items { width: 30%; display: flex; margin-top: 24rpx; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_item { width: 70%; display: flex; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } } } .page_h { height: 20rpx; } .page_yxwl { padding: 30rpx; background: #ffffff; .page_yxwl_title { display: flex; align-items: center; justify-content: space-between; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } .left { display: flex; align-items: center; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } .right { display: flex; align-items: center; img { width: 28rpx; height: 28rpx; margin-right: 14rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .page_yxwl_list { display: flex; flex-direction: column; padding-bottom: 30rpx; border-bottom: 1rpx solid #ececec; &:last-child { margin-bottom: 0; border: none; } .page_yxwl_list_item { margin-top: 28rpx; .page_yxwl_list_item_top { display: flex; align-items: center; justify-content: space-between; .page_yxwl_list_item_top_left { font-size: 30rpx; font-weight: 500; color: #222222; } } .page_yxwl_list_item_sx { display: flex; align-items: center; margin-top: 15rpx; } .page_yxwl_list_item_num { display: flex; flex-direction: column; // margin-top: 30rpx; &:first-child { margin-top: 0; } .dis { display: flex; } .itemy { margin-top: 20rpx; width: 100%; display: flex; align-items: center; position: relative; .itemy_item { flex: 1; display: flex; align-items: center; .label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .nr { display: flex; font-size: 26rpx; font-weight: 400; color: #222222; input { width: 100rpx; height: 35rpx; border-radius: 8rpx; border: 1rpx solid #E5E5E5; margin-right: 10rpx; margin-left: 5rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .dele { position: absolute; right: -30rpx; width: 48rpx; height: 48rpx; img { width: 100%; height: 100%; } } } .items { width: 50%; display: flex; align-items: center; .label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .nr { font-size: 26rpx; font-weight: 400; color: #222222; input { width: 100rpx; height: 40rpx; margin-right: 10rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .item { width: 70%; display: flex; align-items: center; .label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .nr { font-size: 26rpx; font-weight: 400; color: #222222; input { width: 100rpx; height: 40rpx; margin-right: 10rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } } } } .page_yxwl_kong { padding: 50rpx 0; font-size: 25rpx; display: flex; align-items: center; justify-content: center; } } .page_zw { height: 160rpx; } .page_footer { width: calc(100% - 60rpx); background: #F7F7F7; display: flex; align-items: center; justify-content: space-between; position: fixed; bottom: 0; left: 30rpx; padding-bottom: 68rpx; .page_footer_qr { flex: 1; height: 88rpx; background: #fff; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: $nav-color; display: flex; align-items: center; justify-content: center; img { width: 30rpx; height: 30rpx; margin-right: 12rpx; } } .page_footer_ck { flex: 1; height: 88rpx; background: $nav-color; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: #FFFFFF; display: flex; align-items: center; justify-content: center; } } </style> minipro_standard/pages_inspect/pages/OutOperation/OutOperation.vue
ÎļþÃû´Ó minipro_standard/pages/OutOperation/OutOperation.vue ÐÞ¸Ä @@ -1,281 +1,278 @@ <template> <view> <InOutInfo :info="info" /> <uni-collapse @change="change" @close="close" @open="open"> <uni-collapse-item :open="item1.wtransferDetailList.length" v-if="type==7" v-for="(item1, index) in warehouseList" :key="index"> <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title"> <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image> <view>{{ item1.warehouseName }}</view> </view> <view class="p30"> <div class="page_dck"> <div class="page_dck_title"> <div class="page_dck_title_x"></div> <span>å¾ åºåºç©æ</span> </div> </div> <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" :key="index" :name="index"> <div class="page_content_title"> <div class="page_content_title_top"> <span>{{ item.materialName + ' | ' + item.materialCode }}</span> <span>å¾ åº<span>{{ item.outPlannum }}</span> {{ item.unitName }}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span class="black">/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span class="black">/</span> </span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº <span class="black">/</span> </span> <span v-else>- / </span> <span>{{item.procedureName ? item.procedureName : '-'}} / </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" :key="idxs"> <div class="page_content_list_item"> <div class="page_content_list_item_label">åºåºè´§ä½ï¼</div> <div class="page_content_list_item_nr">{{ childer.locationName }}</div> </div> <div class="page_content_list_items"> <div class="page_content_list_item_label">æ°éï¼</div> <div class="page_content_list_item_nr">{{ childer.num }}{{ childer.unitName }}</div> </div> <div class="page_content_list_item"> <div class="page_content_list_item_label">æ¹æ¬¡å·ï¼</div> <div class="page_content_list_item_nr">{{ childer.batch ? childer.batch : '-' }}</div> </div> </div> </div> </view> </uni-collapse-item> <uni-collapse-item v-if="type==8"> <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title"> <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image> <view>{{ info.warehouseName }}</view> </view> <view class="p30"> <div class="page_dck"> <div class="page_dck_title"> <div class="page_dck_title_x"></div> <span>å¾ åºåºç©æ</span> </div> </div> <div class="page_content" v-for="(item, index) in woutboundDetailsWait" :key="index" :name="index"> <div class="page_content_title"> <div class="page_content_title_top"> <span>{{ item.materialName + ' | ' + item.materialCode }}</span> <span>å¾ åº <span>{{ item.num }}</span> {{ item.unitName }}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span class="black">/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span class="black">/</span> </span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº <span class="black">/</span> </span> <span v-else>- / </span> <span>{{item.procedureName ? item.procedureName : '-'}} / </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind"> <div class="page_content_list_item"> <div class="page_content_list_item_label">æ¹æ¬¡å·ï¼</div> <div class="page_content_list_item_nr">{{ items.batch ? items.batch : '-' }}</div> </div> <div class="page_content_list_items"> <div class="page_content_list_item_label">æ°éï¼</div> <div class="page_content_list_item_nr">{{ items.num }}{{ items.umodel.name }}</div> </div> <div class="page_content_list_item" v-if="items.lmodel"> <div class="page_content_list_item_label">åºåºè´§ä½ï¼</div> <div class="page_content_list_item_nr">{{ items.lmodel.unionName }}</div> </div> </div> </div> </view> </uni-collapse-item> </uni-collapse> <div class="page_h"></div> <div class="page_yxwl"> <div class="page_yxwl_title"> <div class="left"> <div class="page_yxwl_title_x"></div> <span>å·²éæ©ç©æ</span> </div> <div class="right" v-if="isZKD" @click="openxz"> <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>æå¨åºåº</span> </div> </div> <div class="page_yxwl_list" v-if="outboundList.length > 0"> <div class="page_yxwl_list_item" v-for="(item, index) in outboundList" :key="index"> <div class="page_yxwl_list_item_top"> <div class="page_yxwl_list_item_top_left">{{ item.materialName }} | {{ item.materialCode }} </div> </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item.qualityType == 0">åæ ¼ <span>/</span></span> <span class="yellow" v-else-if="item.qualityType == 1">ä¸è¯ <span>/</span></span> <span class="red" v-else-if="item.qualityType == 2">æ¥åº <span>/</span></span> <span v-else>- / </span> <span> {{ item.procedureName ? item.procedureName : '-' }} / </span> <span> {{ item.batch ? item.batch : '-' }}</span> </div> <div class="page_yxwl_list_item_num"> <div class="item"> <div class="label">åºåºè´§ä½ï¼</div> <div class="nr"> <span>{{ item.locationName }}</span> </div> </div> <div class="item"> <div class="label">æ°éï¼</div> <div class="nr"> <!-- @input="changeNum(item)" --> <input type="number" v-model="item.num" placeholder="请è¾å ¥"> <span>{{ item.unitName }}</span> </div> </div> <div class="dele" @click="dele(index)"> <!-- <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> --> <image src="../../static/chuku_ic_delete@2x.png" class="img24" mode=""></image> </div> </div> </div> </div> <div class="page_yxwl_kong" v-else>ææ æ°æ®</div> </div> <div class="page_zw"></div> <!-- æäº¤æé® --> <div class="page_footer"> <div class="page_footer_ck" @click="submit"> <span>确认åºåº</span> </div> </div> <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" @selectes="selectMaterail" /> </view> </template> <script> import InOutInfo from '@/components/InOutInfo.vue' import SelectTraMultipleMaterial from '@/components/SelectTraMultipleMaterial.vue' import { QRCodeType } from '@/common/config.js' import { outScanAppliances, wTransferForInOut, wTransferForInOutUpload, wOutBoundForInOut, wOutBoundForUpload, transferToOutNew } from '@/util/api/ExWarehouse' import { getDB } from '@/util/api/agencyAPI' import { logout } from '../../util/api' export default { components: { InOutInfo, SelectTraMultipleMaterial }, data() { return { type: '', id: '', dbid: '', isZKD: false, show: false, info: { <template> <view> <InOutInfo :info="info" /> <uni-collapse @change="change" @close="close" @open="open"> <uni-collapse-item :open="item1.wtransferDetailList.length" v-if="type==7" v-for="(item1, index) in warehouseList" :key="index"> <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title"> <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image> <view>{{ item1.warehouseName }}</view> </view> <view class="p30"> <div class="page_dck"> <div class="page_dck_title"> <div class="page_dck_title_x"></div> <span>å¾ åºåºç©æ</span> </div> </div> <div class="page_content" v-for="(item, index) in item1.wtransferDetailList" :key="index" :name="index"> <div class="page_content_title"> <div class="page_content_title_top"> <span>{{ item.materialName + ' | ' + item.materialCode }}</span> <span>å¾ åº<span>{{ item.outPlannum }}</span> {{ item.unitName }}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span class="black">/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span class="black">/</span> </span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº <span class="black">/</span> </span> <span v-else>- / </span> <span>{{item.procedureName ? item.procedureName : '-'}} / </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> <div class="page_content_list" v-for="(childer, idxs) in item.wstockExtListVOList" :key="idxs"> <div class="page_content_list_item"> <div class="page_content_list_item_label">åºåºè´§ä½ï¼</div> <div class="page_content_list_item_nr">{{ childer.locationName }}</div> </div> <div class="page_content_list_items"> <div class="page_content_list_item_label">æ°éï¼</div> <div class="page_content_list_item_nr">{{ childer.num }}{{ childer.unitName }}</div> </div> <div class="page_content_list_item"> <div class="page_content_list_item_label">æ¹æ¬¡å·ï¼</div> <div class="page_content_list_item_nr">{{ childer.batch ? childer.batch : '-' }}</div> </div> </div> </div> </view> </uni-collapse-item> <uni-collapse-item v-if="type==8"> <view class="p30 cY" style="border-bottom: 4rpx solid #f7f7f7;" slot="title"> <image src="../../static/chuku_ic_cangku@2x.png" class="img36 mr10" mode=""></image> <view>{{ info.warehouseName }}</view> </view> <view class="p30"> <div class="page_dck"> <div class="page_dck_title"> <div class="page_dck_title_x"></div> <span>å¾ åºåºç©æ</span> </div> </div> <div class="page_content" v-for="(item, index) in woutboundDetailsWait" :key="index" :name="index"> <div class="page_content_title"> <div class="page_content_title_top"> <span>{{ item.materialName + ' | ' + item.materialCode }}</span> <span>å¾ åº <span>{{ item.num }}</span> {{ item.unitName }}</span> </div> <div class="page_content_title_bottom"> <span class="green" v-if="item.qualityType === 0">åæ ¼ <span class="black">/</span> </span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯ <span class="black">/</span> </span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº <span class="black">/</span> </span> <span v-else>- / </span> <span>{{item.procedureName ? item.procedureName : '-'}} / </span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind"> <div class="page_content_list_item"> <div class="page_content_list_item_label">æ¹æ¬¡å·ï¼</div> <div class="page_content_list_item_nr">{{ items.batch ? items.batch : '-' }}</div> </div> <div class="page_content_list_items"> <div class="page_content_list_item_label">æ°éï¼</div> <div class="page_content_list_item_nr">{{ items.num }}{{ items.umodel.name }}</div> </div> <div class="page_content_list_item" v-if="items.lmodel"> <div class="page_content_list_item_label">åºåºè´§ä½ï¼</div> <div class="page_content_list_item_nr">{{ items.lmodel.unionName }}</div> </div> </div> </div> </view> </uni-collapse-item> </uni-collapse> <div class="page_h"></div> <div class="page_yxwl"> <div class="page_yxwl_title"> <div class="left"> <div class="page_yxwl_title_x"></div> <span>å·²éæ©ç©æ</span> </div> <div class="right" v-if="isZKD" @click="openxz"> <image src="../../static/gongdan_ic_shoudong@2x.png" class="img36" mode=""></image><span>æå¨åºåº</span> </div> </div> <div class="page_yxwl_list" v-if="outboundList.length > 0"> <div class="page_yxwl_list_item" v-for="(item, index) in outboundList" :key="index"> <div class="page_yxwl_list_item_top"> <div class="page_yxwl_list_item_top_left">{{ item.materialName }} | {{ item.materialCode }} </div> </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item.qualityType == 0">åæ ¼ <span>/</span></span> <span class="yellow" v-else-if="item.qualityType == 1">ä¸è¯ <span>/</span></span> <span class="red" v-else-if="item.qualityType == 2">æ¥åº <span>/</span></span> <span v-else>- / </span> <span> {{ item.procedureName ? item.procedureName : '-' }} / </span> <span> {{ item.batch ? item.batch : '-' }}</span> </div> <div class="page_yxwl_list_item_num"> <div class="item"> <div class="label">åºåºè´§ä½ï¼</div> <div class="nr"> <span>{{ item.locationName }}</span> </div> </div> <div class="item"> <div class="label">æ°éï¼</div> <div class="nr"> <!-- @input="changeNum(item)" --> <input type="number" v-model="item.num" placeholder="请è¾å ¥"> <span>{{ item.unitName }}</span> </div> </div> <div class="dele" @click="dele(index)"> <!-- <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> --> <image src="../../static/chuku_ic_delete@2x.png" class="img24" mode=""></image> </div> </div> </div> </div> <div class="page_yxwl_kong" v-else>ææ æ°æ®</div> </div> <div class="page_zw"></div> <!-- æäº¤æé® --> <div class="page_footer"> <div class="page_footer_ck" @click="submit"> <span>确认åºåº</span> </div> </div> <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" @selectes="selectMaterail" /> </view> </template> <script> import InOutInfo from '@/components/InOutInfo.vue' import SelectTraMultipleMaterial from '@/components/SelectTraMultipleMaterial.vue' import { QRCodeType } from '@/common/config.js' import { outScanAppliances, wTransferForInOut, wTransferForInOutUpload, wOutBoundForInOut, wOutBoundForUpload, transferToOutNew } from '@/util/api/ExWarehouse' import { getDB } from '@/util/api/agencyAPI' export default { components: { InOutInfo, SelectTraMultipleMaterial }, data() { return { type: '', id: '', dbid: '', isZKD: false, show: false, info: { }, mainOrder: '', warehouseId: '', ids: [], warehouseList: [{ }], woutboundDetailsWait: [], outboundList: [] }; }, onLoad(option) { this.type = option.type this.id = option.id mainOrder: '', warehouseId: '', ids: [], warehouseList: [{ }], woutboundDetailsWait: [], outboundList: [] }; }, onLoad(option) { this.type = option.type this.id = option.id this.isZKD = this.type == QRCodeType.ZKD this.dbid = option.dbid if (option.dbid) { this.getDBs(option.dbid) } else { this.getInfo() } }, methods: { // 夿æ¯å¦å®æ getDBs(dbid) { getDB(dbid) .then(res => { let { data } = res if (data.status == 1) { // 已宿 } else { this.getInfo() } }) .catch(err => {}) }, getInfo() { let infoAction let data = { id: this.id } if (this.type == QRCodeType.CKD) { infoAction = wOutBoundForInOut data.wOutboundType = '0' } else if (this.type == QRCodeType.ZKD) { infoAction = wTransferForInOut data.wTransferType = '0' this.dbid = option.dbid if (option.dbid) { this.getDBs(option.dbid) } else { this.getInfo() } }, methods: { // 夿æ¯å¦å®æ getDBs(dbid) { getDB(dbid) .then(res => { let { data } = res if (data.status == 1) { // 已宿 } else { this.getInfo() } }) .catch(err => {}) }, getInfo() { let infoAction let data = { id: this.id } if (this.type == QRCodeType.CKD) { infoAction = wOutBoundForInOut data.wOutboundType = '0' } else if (this.type == QRCodeType.ZKD) { infoAction = wTransferForInOut data.wTransferType = '0' } infoAction(data).then(res => { this.mainOrder = res.data.id this.mainOrder = res.data.id if (this.isZKD) { this.info = res.data.wtransfer this.info = res.data.wtransfer this.warehouseList = res.data.wtransferWarehouseList this.warehouseId = this.warehouseList[0].warehouseId } else { this.info = res.data.woutbound this.warehouseId = this.warehouseList[0].warehouseId } else { this.info = res.data.woutbound this.woutboundDetailsWait = res.data.woutboundDetailsWait this.warehouseId = this.woutboundDetailsWait[0].warehouseId } }).catch(err => { uni.$u.toast(err) uni.navigateBack() }) }, change() {}, close() {}, open() {}, openxz() { this.$refs.selectTraMultipleMaterial.open({ transferId: this.id, warehouseId: this.warehouseId }) }, selectMaterail(v) { let tempList = this.warehouseList[0].wtransferDetailList let materials = v.materials this.warehouseId = this.woutboundDetailsWait[0].warehouseId } }).catch(err => { uni.$u.toast(err) uni.navigateBack() }) }, change() {}, close() {}, open() {}, openxz() { this.$refs.selectTraMultipleMaterial.open({ transferId: this.id, warehouseId: this.warehouseId }) }, selectMaterail(v) { let tempList = this.warehouseList[0].wtransferDetailList let materials = v.materials materials.forEach(materail => { tempList.forEach(item => { item.wstockExtListVOList.forEach(hw => { if (materail.materialId == hw.materialId && materail.procedureId == hw @@ -297,380 +294,380 @@ this.outboundList.push(obj) } }) }) }) }) }) }, dele(index) { this.outboundList.splice(index, 1) }, }, submit() { if (this.type == QRCodeType.ZKD) { if (this.outboundList.length > 0) { let result = this.outboundList.reduce((a, b) => { if (a[b.newId]) { a[b.newId].push(b); } else { a[b.newId] = [b]; } return a; }, {}); let tempList = this.warehouseList[0].wtransferDetailList for (let i = 0; i < tempList.length; i++) { let item = tempList[i] for (let a in result) { if (item.id == a) { let total = 0 for (let b = 0; b < result[a].length; b++) { total = Number(total) + Number(result[a][b].num) } if (!total || total <= 0) { uni.$u.toast('åºåºç©ææ°éå¿ é¡»å¤§äº0') return } console.log(total, item.outPlannum); if (total > item.outPlannum) { uni.$u.toast('åºåºæ°éä¸è½å¤§äºå¾ åºåºæ°é') return } } } } let submitTransferOutDetailDTOList = [] this.outboundList.forEach(item => { tempList.forEach(child => { if (item.newId == child.id) { submitTransferOutDetailDTOList.push({ outNum: item.num, wstockId: item.id, wtransferDetailId: child.id }) } }) }) transferToOutNew({ submitTransferOutDetailDTOList, wtransferId: this.id }).then(res => { if (res.code === 200) { this.$store.dispatch('getUpcomingNum') if (this.type == QRCodeType.ZKD) { if (this.outboundList.length > 0) { let result = this.outboundList.reduce((a, b) => { if (a[b.newId]) { a[b.newId].push(b); } else { a[b.newId] = [b]; } return a; }, {}); let tempList = this.warehouseList[0].wtransferDetailList for (let i = 0; i < tempList.length; i++) { let item = tempList[i] for (let a in result) { if (item.id == a) { let total = 0 for (let b = 0; b < result[a].length; b++) { total = Number(total) + Number(result[a][b].num) } if (!total || total <= 0) { uni.$u.toast('åºåºç©ææ°éå¿ é¡»å¤§äº0') return } console.log(total, item.outPlannum); if (total > item.outPlannum) { uni.$u.toast('åºåºæ°éä¸è½å¤§äºå¾ åºåºæ°é') return } } } } let submitTransferOutDetailDTOList = [] this.outboundList.forEach(item => { tempList.forEach(child => { if (item.newId == child.id) { submitTransferOutDetailDTOList.push({ outNum: item.num, wstockId: item.id, wtransferDetailId: child.id }) } }) }) transferToOutNew({ submitTransferOutDetailDTOList, wtransferId: this.id }).then(res => { if (res.code === 200) { this.$store.dispatch('getUpcomingNum') uni.$u.toast('æä½æå') uni.redirectTo({ url: `/pages/warehousingDetails/warehousingDetails?id=${this.id}&dbid=${this.dbid}` }) // uni.redirectTo({ // url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.info.id}&dbid=${this.dbid}` // }) // setTimeout(() => { // router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) // }, 2000) } }) } else { uni.$u.toast('è¯·éæ©åºåºç©æ') } } else if (this.type === QRCodeType.CKD) { wOutBoundForUpload({ id: this.id, wOutboundType: 0 }).then(res => { if (res.code === 200) { this.$store.dispatch('getUpcomingNum') // }) // setTimeout(() => { // router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) // }, 2000) } }) } else { uni.$u.toast('è¯·éæ©åºåºç©æ') } } else if (this.type === QRCodeType.CKD) { wOutBoundForUpload({ id: this.id, wOutboundType: 0 }).then(res => { if (res.code === 200) { this.$store.dispatch('getUpcomingNum') uni.$u.toast('æä½æå') uni.redirectTo({ url: `/pages_adjust/pages/outboundDetails/outboundDetails?id=${this.id}` }) // setTimeout(() => { // // router.go(-1) // router.replace({ name: 'wOutboundDetail', query: { id: info.value.wtransfer.id } }) // }, 2000) } }) } } } } </script> <style lang="scss"> .page_dck { .page_dck_title { display: flex; align-items: center; .page_dck_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } } .page_content { margin-top: 36rpx; .page_content_title { display: flex; flex-direction: column; margin-bottom: 10rpx; .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 { .green { color: $nav-stateColor7 !important; .black { color: black !important; } } .warning { color: $nav-stateColor5 !important; .black { color: black !important; } } .error { color: $nav-stateColor4 !important; .black { color: black !important; } } span { font-size: 24rpx; font-weight: 400; color: #666666; } } } .lineBorder { border: none !important; padding-bottom: 0 !important; margin-bottom: 24rpx; } .page_content_list { width: 100%; display: flex; align-items: center; flex-wrap: wrap; &:first-child { margin: 0; } &:last-child { border: none; } .page_content_list_nums { width: 30%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_num { width: 70%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_items { width: 30%; display: flex; margin-top: 24rpx; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_item { width: 70%; display: flex; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } } } .page_h { height: 20rpx; } .page_yxwl { padding: 30rpx; background: #ffffff; .page_yxwl_title { display: flex; align-items: center; justify-content: space-between; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } .left { display: flex; align-items: center; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } .right { display: flex; align-items: center; img { width: 28rpx; height: 28rpx; margin-right: 14rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .page_yxwl_list { display: flex; flex-direction: column; padding-bottom: 30rpx; border-bottom: 1rpx solid #ececec; &:last-child { margin-bottom: 0; border: none; } .page_yxwl_list_item { margin-top: 28rpx; .page_yxwl_list_item_top { display: flex; align-items: center; justify-content: space-between; .page_yxwl_list_item_top_left { font-size: 30rpx; font-weight: 500; color: #222222; } } .page_yxwl_list_item_sx { display: flex; align-items: center; margin-top: 15rpx; } }) // setTimeout(() => { // // router.go(-1) // router.replace({ name: 'wOutboundDetail', query: { id: info.value.wtransfer.id } }) // }, 2000) } }) } } } } </script> <style lang="scss"> .page_dck { .page_dck_title { display: flex; align-items: center; .page_dck_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } } .page_content { margin-top: 36rpx; .page_content_title { display: flex; flex-direction: column; margin-bottom: 10rpx; .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 { .green { color: $nav-stateColor7 !important; .black { color: black !important; } } .warning { color: $nav-stateColor5 !important; .black { color: black !important; } } .error { color: $nav-stateColor4 !important; .black { color: black !important; } } span { font-size: 24rpx; font-weight: 400; color: #666666; } } } .lineBorder { border: none !important; padding-bottom: 0 !important; margin-bottom: 24rpx; } .page_content_list { width: 100%; display: flex; align-items: center; flex-wrap: wrap; &:first-child { margin: 0; } &:last-child { border: none; } .page_content_list_nums { width: 30%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_num { width: 70%; display: flex; .page_content_list_num_label { font-size: 26rpx; font-weight: 400; color: #666666; } .page_content_list_num_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_items { width: 30%; display: flex; margin-top: 24rpx; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } .page_content_list_item { width: 70%; display: flex; .page_content_list_item_label { font-size: 26rpx; font-weight: 400; color: #666666; flex-shrink: 0; } .page_content_list_item_nr { font-size: 26rpx; font-weight: 400; color: #222222; } } } } .page_h { height: 20rpx; } .page_yxwl { padding: 30rpx; background: #ffffff; .page_yxwl_title { display: flex; align-items: center; justify-content: space-between; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } .left { display: flex; align-items: center; .page_yxwl_title_x { width: 8rpx; height: 30rpx; background: #4275FC; border-radius: 2rpx; margin-right: 16rpx; } span { font-size: 32rpx; font-weight: 500; color: #222222; } } .right { display: flex; align-items: center; img { width: 28rpx; height: 28rpx; margin-right: 14rpx; } span { font-size: 26rpx; font-weight: 400; color: #222222; } } } .page_yxwl_list { display: flex; flex-direction: column; padding-bottom: 30rpx; border-bottom: 1rpx solid #ececec; &:last-child { margin-bottom: 0; border: none; } .page_yxwl_list_item { margin-top: 28rpx; .page_yxwl_list_item_top { display: flex; align-items: center; justify-content: space-between; .page_yxwl_list_item_top_left { font-size: 30rpx; font-weight: 500; color: #222222; } } .page_yxwl_list_item_sx { display: flex; align-items: center; margin-top: 15rpx; } .page_yxwl_list_item_num { display: flex; position: relative; @@ -725,66 +722,66 @@ } } } } } } .page_yxwl_kong { padding: 50rpx 0; font-size: 25rpx; display: flex; align-items: center; justify-content: center; } } .page_zw { height: 160rpx; } .page_footer { width: calc(100% - 60rpx); background: #F7F7F7; display: flex; align-items: center; justify-content: space-between; position: fixed; bottom: 0; left: 30rpx; padding-bottom: 68rpx; z-index: 9999; .page_footer_qr { flex: 1; height: 88rpx; background: #fff; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: $nav-color; display: flex; align-items: center; justify-content: center; img { width: 30rpx; height: 30rpx; margin-right: 12rpx; } } .page_footer_ck { flex: 1; height: 88rpx; background: $nav-color; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: #FFFFFF; display: flex; align-items: center; justify-content: center; } } } } } .page_yxwl_kong { padding: 50rpx 0; font-size: 25rpx; display: flex; align-items: center; justify-content: center; } } .page_zw { height: 160rpx; } .page_footer { width: calc(100% - 60rpx); background: #F7F7F7; display: flex; align-items: center; justify-content: space-between; position: fixed; bottom: 0; left: 30rpx; padding-bottom: 68rpx; z-index: 9999; .page_footer_qr { flex: 1; height: 88rpx; background: #fff; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: $nav-color; display: flex; align-items: center; justify-content: center; img { width: 30rpx; height: 30rpx; margin-right: 12rpx; } } .page_footer_ck { flex: 1; height: 88rpx; background: $nav-color; box-shadow: 0 0 12rpx 0 rgba(0, 0, 0, 0.08); border-radius: 8rpx; font-size: 32rpx; font-weight: 500; color: #FFFFFF; display: flex; align-items: center; justify-content: center; } } </style>