minipro_standard/common/config.js
@@ -1,6 +1,4 @@ module.exports = { // baseUrl: 'http://106.14.20.42/test_hfznzz/', // baseUrl: 'https://hefei.dtkey.cn/test_hfznzz/', // baseUrl: '/doumeeplant_api', baseUrl: 'https://dmtest.ahapp.net/doumeeplant_api', // baseUrl: 'http://192.168.0.15:10021', minipro_standard/components/SelectTraMultipleMaterial.vue
@@ -1,12 +1,12 @@ <template> <u-popup :show="show" :round="10" closeable @close="show=false"> <u-popup :show="show" :round="10" closeable @close="close()"> <view class="material-content bbox p30 rp"> <view class="tc b f24 c2 mb20">éæ©ç©æ</view> <view class="tc b f32 c2 mb20">éæ©ç©æ</view> <!-- <v-Search ref="V" @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="æç´¢ç©æåç§°/ç¼ç "> </v-Search> --> <div class="content_total">å ±{{pages.total}}æ¡æ°æ®</div> <view class="scroll-content"> <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing" @scrolltolower="loadMore" <scroll-view style="height: 100%;" scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing" @scrolltolower="loadMore" @refresherrefresh="onRefresh"> <view v-for="(item1, index) in list" :key="index" class="flex mb20" @click="selectMaterialAction(index)"> <view class="img36 mr20 pt10"> @@ -162,7 +162,11 @@ }, selectAll() { this.selectIndex = [] this.isAll = !this.isAll if (this.isAll) { this.selectIndex = [...new Array(this.list.length).keys()] } }, submitAction () { this.show = false @@ -171,6 +175,10 @@ selectValue.push(this.list[item]) }) this.$emit('selectes', { materials: selectValue }) }, close() { this.show = false this.$emit('close') } } } @@ -241,15 +249,10 @@ display: flex; flex-direction: column; margin-bottom: 10rpx; } .bottom { height: 98rpx; // bottom: calc(env(safe-area-inset-bottom) + 20rpx); .submit { width: 272rpx; height: 98rpx; minipro_standard/components/workOrderInfo.vue
@@ -118,7 +118,7 @@ border: 8rpx; } // .order-info { // border-bottom: 20rpx #f7f7f7 solid; // } .order-info { border-bottom: 20rpx #f7f7f7 solid; } </style> minipro_standard/pages/selectWorkOrder/selectWorkOrder.vue
@@ -380,7 +380,7 @@ width: 80%; span { font-size: 24rpx; font-size: 32rpx; font-weight: 500; color: #333333; overflow: hidden; minipro_standard/pages_adjust/components/multipleMaterial.vue
@@ -1,7 +1,7 @@ <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> <view class="tc b f32 c2 mb20">éæ©ç©æ</view> <v-Search @searchInput="searchInput" @submit="submit" :isShow="false" placeholder="æç´¢ç©æåç§°/ç¼ç " /> <div class="content_total">å ±{{form.total}}æ¡æ°æ®</div> <view class="scroll-content"> minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
@@ -15,7 +15,7 @@ </div> <template v-if="feedingData && feedingData.length > 0"> <view class="plr30"> <view class="plr30 bg_w"> <view > <div v-for="(item, index) in feedingData" :key="index" class="bg_list_item_h"> <div class="bg_list_item_num"> @@ -24,11 +24,11 @@ <span> {{ item.materialName || 'å¢ä½ç ' }}{{ item.procedureName ? ` | ${item.procedureName}` : '' }}</span> <div class="bg_list_item_num_item_wl_lx"> <span class="green" v-if="item.qualityType == 0">åæ ¼ / </span> <span class="orange" v-if="item.qualityType == 1">ä¸è¯ / </span> <span class="red" v-if="item.qualityType == 2">æ¥åº / </span> <span class="green" v-if="item.qualityType == 0">åæ ¼<text class="c6" decode>{{ split }}</text></span> <span class="orange" v-if="item.qualityType == 1">ä¸è¯<text class="c6" decode>{{ split }}</text></span> <span class="red" v-if="item.qualityType == 2">æ¥åº<text class="c6" decode>{{ split }}</text></span> <span>{{ item.locationName }}</span> <span>{{ item.batch ? ` / ${item.batch}` : '' }}</span> <span v-if="item.batch"><text class="c6" decode>{{ split }}</text>{{ item.batch }}</span> </div> </div> <div class="bg_list_item_num_item_sr"> @@ -102,47 +102,13 @@ {{ performance.salaryType == 0 ? '计件' : '计æ¶' }} | {{ (performance.salaryPrice / 10 / 10).toFixed(2) }}å /{{ performance.salaryType == 0 ? 'ä»¶' : 'æ¶' }} | {{ complianceRate }}% è¾¾æ çï¼{{ complianceRate }}% </div> </div> <!-- <div class="bg_list_item_num"> <div class="bg_list_item_num_item"> <span>计件æ¹å¼</span> <div class="bg_list_item_num_item_list"> {{ performance.salaryType == 0 ? '计件' : '计æ¶' }} </div> </div> </div> --> <!-- <div class="bg_list_item_num"> <div class="bg_list_item_num_item"> <span>å·¥èµåä»·</span> <div class="bg_list_item_num_item_sr"> <span class="color1">{{ (performance.salaryPrice / 10 / 10).toFixed(2) }}å /{{ performance.salaryType == 0 ? 'ä»¶' : 'æ¶' }}</span> </div> </div> </div> <div class="bg_list_item_num"> <div class="bg_list_item_num_item"> <span>è¾¾æ ç</span> <div class="bg_list_item_num_item_sr"> <span class="color1">{{ complianceRate }}%</span> </div> </div> </div> --> </div> </div> </div> <div v-else class="bg_list"> <!-- <div class="bg_list_item"> <div class="bg_list_item_top"> <div class="bg_list_item_top_left"> <div class="bg_list_item_top_left_x bg_m"></div> <span>çäº§ç¹æ£</span> </div> </div> --> <template v-if="djData && djData.length > 0"> <div class="details_dj"> <div class="details_dj_list"> @@ -209,6 +175,7 @@ name: 'ç¹æ£' } ], split: ' / ', workorderId: '', form: { time: '', @@ -266,23 +233,21 @@ computed: { complianceRate() { if (!this.performance) return 0; if (!this.performance.duration) return 0; if (!this.performance.salaryNum || this.performance.salaryTimes) return 0 let {duration, salaryNum, salaryTimes, qualifiedNum, unqualifiedNum, salaryUnqualified} = this.performance // æ¥å·¥æ¶é¿ if (!duration) return 0; // æ¥å·¥æ°é if (!qualifiedNum && !unqualifiedNum) return 0; // æ åæ°éãæ¶é¿ if (!salaryNum || !salaryTimes) return 0 if (!this.performance.qualifiedNum && !this.performance.unqualifiedNum) return 0; if (this.performance.salaryUnqualified == 1) { // æ¯å¦è®¡å ¥ä¸è¯å let a = ((Number(this.performance.qualifiedNum) + Number(this.performance.unqualifiedNum)) / (this.performance .duration / 3600)).toFixed(2) let b = (this.performance.salaryNum / (this.performance.salaryTimes / 3600)).toFixed(2) debugger if (salaryUnqualified == 1) { // æ¯å¦è®¡å ¥ä¸è¯å let a = ((Number(qualifiedNum) + Number(unqualifiedNum)) / (duration / 3600)).toFixed(2) let b = (salaryNum / (salaryTimes / 3600)).toFixed(2) return ((Number(a) / Number(b)) * 100).toFixed(2) // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / ) // return total * infoBox.value.salary; } else { let a = (this.performance.qualifiedNum / (this.performance.duration / 3600)).toFixed(2) // let b = (this.arrType[this.form.index].num / (this.arrType[this.form.index].times / 3600)).toFixed(2) let b = (this.performance.salaryNum / (this.performance.salaryTimes / 3600)).toFixed(2) debugger let a = (qualifiedNum / (duration / 3600)).toFixed(2) let b = (salaryNum / (salaryTimes / 3600)).toFixed(2) return ((Number(a) / Number(b)) * 100).toFixed(2) } } @@ -506,6 +471,7 @@ getWorkorderRecordListStandard({ workorderId: this.workorderId }).then(res => { debugger // console.log(res.data[0]); if (res.data.length > 0) { this.produceFrom.qualified = res.data[0].qualifiedNum @@ -535,7 +501,7 @@ background: #FFFFFF; display: flex; align-items: center; border-top: 20rpx solid #f7f7f7; // border-top: 20rpx solid #f7f7f7; .active { box-sizing: border-box; color: #305ED5 !important; minipro_standard/pages_adjust/pages/addReceipt/addReceipt.vue
@@ -179,6 +179,7 @@ if (!this.list[i].locationId) return uni.showToast({ title: `第${i+1}é¡¹å ¥åºè´§ä½ä¸è½ä¸ºç©º`, icon: 'none', duration: 2000 }); if (!this.list[i].materialId) return uni.showToast({ title: `第${i+1}é¡¹å ¥åºç©æä¸è½ä¸ºç©º`, icon: 'none', duration: 2000 }); if (!this.list[i].qualityType) return uni.showToast({ title: `第${i+1}项质é屿§ä¸è½ä¸ºç©º`, icon: 'none', duration: 2000 }); if (!this.list[i].batch) return uni.showToast({ title: `第${i+1}é¡¹æ¹æ¬¡å·ä¸è½ä¸ºç©º`, icon: 'none', duration: 2000 }); if (this.list[i].num <= 0) { return uni.showToast({ title: `第${i + 1}é¡¹å ¥åºæ°éå¿ é¡»å¤§äº0`, icon: 'none', duration: 2000 }); } minipro_standard/pages_adjust/pages/newTransfer/newTransfer.vue
@@ -31,8 +31,8 @@ <template v-if="view.MaterialList.length > 0"> <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="material-title">{{item.materialName}}ï½{{item.materialCode}}</text> <text class="material-att"> <text class="green" v-if="item.qualityType === '0'" decode>åæ ¼<text class="c6" decode>{{ division }}</text></text> <text class="yellow" v-if="item.qualityType === '1'" decode>ä¸è¯<text class="c6" decode>{{ division }}</text></text> <text class="red" v-if="item.qualityType === '2'" decode>æ¥åº<text class="c6" decode>{{ division }}</text></text> @@ -272,13 +272,11 @@ &:last-child { border: none !important; } text { font-size: 24rpx; font-size: 30rpx; font-weight: 400; color: #222222; } .zk_list_item_n { display: flex; align-items: center; @@ -346,7 +344,7 @@ display: flex; align-items: center; justify-content: space-between; margin-top: 30rpx; margin-top: 10rpx; .zk_wl_item_input { display: flex; @@ -360,7 +358,8 @@ } text { font-size: 26rpx; height: 42rpx; font-size: 30rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #333333; @@ -383,30 +382,24 @@ color: #999999; } } .material-title { height: 42rpx; font-size: 30rpx; font-weight: 500; color: #222222; margin-bottom: 10rpx; } .material-att { font-size: 28rpx; font-weight: 400; color: #333333; } text { &:nth-child(1) { font-size: 24rpx; font-weight: 500; color: #222222; margin-bottom: 24rpx; } &:nth-child(2) { font-size: 24rpx; font-weight: 400; color: #666666; margin-bottom: 30rpx; text { font-size: 24rpx; } } &:nth-child(3) { font-size: 28rpx; font-weight: 400; color: #333333; } } } minipro_standard/pages_adjust/pages/reportingForWork/reportingForWork.vue
@@ -5,7 +5,8 @@ <text><text>*</text>å·¥åºç产计å</text> </view> <view class="bg_plan_nr" v-else> <text>{{ from.processPlan.materialName }} | {{ from.processPlan.materialCode }} | {{ from.processPlan.produceName }}</text> <text>{{ from.processPlan.materialName }} | {{ from.processPlan.materialCode }} | {{ from.processPlan.produceName }}</text> <text>{{ from.processPlan.batch }}{{ from.processPlan.salesOrder ? ` / ${from.processPlan.salesOrder}` : '' }}</text> <text>è®¡åæ¶é´ï¼{{ from.processPlan.workPlanStartDate }} ~ {{ from.processPlan.workPlanEndDate }}</text> <text>计åè¿åº¦ï¼{{from.processPlan.num}}/{{from.processPlan.workorderDistributNum}}{{ from.processPlan.unitName }}</text> @@ -15,7 +16,8 @@ <image src="@/static/ic_ar@2x.png" alt="" /> </view> </view> <template v-if="plansId"> <!-- v-if="plansId" --> <template> <view class="bg_list"> <view class="bg_list_item"> <view class="bg_list_item_top"> @@ -29,7 +31,8 @@ <view class="bg_list_item_num_item"> <text>ç产设å¤</text> <view class="bg_list_item_num_item_sr"> <text :style="{color: from.deviceName ? '#333' : ''}">{{from.deviceName ? from.deviceName : 'è¯·éæ©'}}</text> <text :style="{color: from.deviceName ? '#333' : ''}">{{from.deviceName ? from.deviceName : 'è¯·éæ©'}}</text> <image src="@/static/ic_ar@2x.png" alt="" /> </view> </view> @@ -38,7 +41,8 @@ <view class="bg_list_item_num_item"> <text>ç产人å</text> <view class="bg_list_item_num_item_sr"> <text :style="{color: from.userName ? '#333' : ''}">{{from.userName ? from.userName : 'è¯·éæ©'}}</text> <text :style="{color: from.userName ? '#333' : ''}">{{from.userName ? from.userName : 'è¯·éæ©'}}</text> <image src="@/static/ic_ar@2x.png" alt="" /> </view> </view> @@ -51,7 +55,8 @@ <view class="bg_list_item_top_left_x"></view> <text>ç产ææ</text> </view> <view class="bg_list_item_top_right" @click="openMaterial" v-if="(hasBom == 1 && bomType != 1) || hasBom == 0"> <view class="bg_list_item_top_right" @click="openMaterial" v-if="(hasBom == 1 && bomType != 1) || hasBom == 0"> <image src="@/static/gongdan_ic_shoudong@2x.png" alt="" /> <text>æ°å¢ææ</text> </view> @@ -72,14 +77,9 @@ </view> </view> <view class="bg_list_item_num_item_sr"> <u--input placeholder="请è¾å ¥" border="surround" type="number" :customStyle="{width: '100%'}" v-model="item.num" @input="inputwl(index)" ></u--input> <u--input placeholder="请è¾å ¥" border="surround" type="number" :customStyle="{width: '100%'}" v-model="item.num" @input="inputwl(index)"></u--input> <!-- <input type="number" v-model="item.num" @input="inputwl(index)" /> --> <text>{{ item.unitName }}</text> </view> @@ -87,7 +87,8 @@ </view> </view> <template #right> <van-button style="height: 100%;" @click="deleItem(index)" square text="å é¤" type="danger" /> <van-button style="height: 100%;" @click="deleItem(index)" square text="å é¤" type="danger" /> </template> </van-swipe-cell> </template> @@ -112,15 +113,10 @@ <view class="bg_list_item_num_item"> <text><text>*</text>è¯åæ°</text> <view class="bg_list_item_num_item_sr"> <u--input placeholder="请è¾å ¥" border="surround" type="number" :customStyle="{width: '180rpx'}" v-model="from.qualified" @input="changeNum(1)" ></u--input> <!-- <input type="number" v-model="from.qualified" @input="changeNum(1)" placeholder="请è¾å ¥" /> --> <!-- <u--input placeholder="请è¾å ¥" border="surround" type="number" :customStyle="{width: '180rpx'}" v-model="from.qualified" @input="changeNum(1)"> </u--input> --> <input type="number" v-model="from.qualified" @input="changeNum(1)" placeholder="请è¾å ¥" /> <text v-if="from.processPlan">{{from.processPlan.unitName}}</text> </view> </view> @@ -129,15 +125,10 @@ <view class="bg_list_item_num_item"> <text>ä¸è¯æ°</text> <view class="bg_list_item_num_item_sr"> <u--input placeholder="请è¾å ¥" border="surround" type="number" :customStyle="{width: '180rpx'}" v-model="from.undesirable" @input="changeNum(2)" ></u--input> <!-- <input type="number" v-model="from.undesirable" @input="changeNum(2)" placeholder="请è¾å ¥" /> --> <!-- <u--input placeholder="请è¾å ¥" border="surround" type="number" :customStyle="{width: '180rpx'}" v-model="from.undesirable" @input="changeNum(2)"></u--input> --> <input type="number" v-model="from.undesirable" @input="$event => changeNum( 2)" placeholder="请è¾å ¥" /> <text v-if="from.processPlan">{{from.processPlan.unitName}}</text> </view> </view> @@ -147,7 +138,8 @@ <!-- <text>*</text> --> <text>ä¸è¯é¡¹</text> <view class="bg_list_item_num_item_sr"> <text class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '设置'}}</text> <text class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '设置'}}</text> <image src="@/static/ic_ar@2x.png" alt="" /> </view> </view> @@ -159,7 +151,8 @@ <text>æ¥å·¥æ¶é¿</text> </view> <view class="bg_plan_label_val"> <text :style="{color: from.durationName ? '#333' : ''}">{{from.durationName ? from.durationName : 'è¯·éæ©'}}</text> <text :style="{color: from.durationName ? '#333' : ''}">{{from.durationName ? from.durationName : 'è¯·éæ©'}}</text> <image src="@/static/ic_ar@2x.png" alt="" /> </view> </view> @@ -175,7 +168,10 @@ <view class="bg_list_item_num_item"> <text>计件æ¹å¼</text> <view class="bg_list_item_num_item_list"> <view :class="item.active ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'" v-for="(item, index) in arrType" :key="index" @click="clickPerformanceType(index)">{{ item.name }}</view> <view :class="item.active ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'" v-for="(item, index) in arrType" :key="index" @click="clickPerformanceType(index)">{{ item.name }}</view> </view> </view> </view> @@ -183,7 +179,8 @@ <view class="bg_list_item_num_item"> <text>å·¥èµåä»·</text> <view class="bg_list_item_num_item_sr"> <text class="color1">{{(arrType[from.index].salary / 10 / 10).toFixed(2)}}å /{{arrType[from.index].type == 0 ? 'ä»¶' : 'æ¶'}}</text> <text class="color1">{{(arrType[from.index].salary / 10 / 10).toFixed(2)}}å /{{arrType[from.index].type == 0 ? 'ä»¶' : 'æ¶'}}</text> </view> </view> </view> @@ -217,11 +214,13 @@ <!-- ç产人å --> <user :show="userShow" @close="userShow = false" @value="onConfirm1" /> <!-- çäº§è®¾å¤ --> <u-picker :show="deviceShow" :columns="deviceList" keyName="name" @confirm="onConfirm" @cancel="deviceShow = false"></u-picker> <u-picker :show="deviceShow" :columns="deviceList" keyName="name" @confirm="onConfirm" @cancel="deviceShow = false"></u-picker> <!-- æ¶é´ --> <u-picker :show="TimeShow" :columns="columns" @confirm="onConfirm2" @cancel="TimeShow = false"></u-picker> <!-- ç©æ --> <MaterialSelect ref="MaterialSelect" :plansId="String(plansId)" :selected="ids" :deviceId="String(deviceId)" @value="getValue" /> <MaterialSelect ref="MaterialSelect" :plansId="String(plansId)" :selected="ids" :deviceId="String(deviceId)" @value="getValue" /> <!-- ä¸è¯é¡¹ --> <u-popup :show="show" @close="show = false" :round="8" closeable zIndex="20000"> <view class="rp p40 contanir"> @@ -249,8 +248,18 @@ <script> import user from '../../components/user.vue' import MaterialSelect from '../../components/MaterialSelect.vue' import { mapState } from 'vuex' import { getDeviceByCondition, getFindAll, queryOne, queryList, autoWorkReport, getIdPlansExt, categoryExtList } from '@/util/api/PlanningAPI' import { mapState } from 'vuex' import { getDeviceByCondition, getFindAll, queryOne, queryList, autoWorkReport, getIdPlansExt, categoryExtList } from '@/util/api/PlanningAPI' export default { components: { user, @@ -284,13 +293,11 @@ userShow: false, wuList: [], deviceList: [], cateList: [ { cateList: [{ active: false, num: '', name: 'æççµ' } ], }], total: 0, // 坿æ°é ids: '', plansId: '', @@ -306,7 +313,12 @@ expectedSalary() { if (this.arrType.length === 0) return 0; let { index, qualified, undesirable, duration } = this.from let { index, qualified, undesirable, duration } = this.from let temp = this.arrType[index] if (temp.type == 0) { if (!qualified) return 0 @@ -325,7 +337,12 @@ // è¾¾æ ç complianceRate() { if (this.arrType.length === 0) return 0; let { index, qualified, undesirable, duration } = this.from let { index, qualified, undesirable, duration } = this.from let temp = this.arrType[index] if (!qualified && !undesirable) return 0; if (!duration) return 0; @@ -371,7 +388,9 @@ // this.from.userName = '' // this.from.userId = '' // è·åè®¾å¤ getDeviceByCondition({ procedureId: data.obj.procedureId }) getDeviceByCondition({ procedureId: data.obj.procedureId }) .then(res1 => { if (res1.code === 200) { if (res1.data && res1.data.length > 0) { @@ -481,21 +500,33 @@ isOpen = true } }) if (!isOpen) return uni.showToast({ title: 'è¯·éæ©ä¸è¯é¡¹', icon: 'none', duration: 2000 }); if (!isOpen) return uni.showToast({ title: 'è¯·éæ©ä¸è¯é¡¹', icon: 'none', duration: 2000 }); let arr = [] let total = 0 let name = '' for (let i = 0; i < this.cateList.length; i++) { if (this.cateList[i].active) { if (Number(this.cateList[i].num) <= 0) { return uni.showToast({ title: 'ä¸è¯æ°éå¿ é¡»å¤§äº0', icon: 'none', duration: 2000 }); return uni.showToast({ title: 'ä¸è¯æ°éå¿ é¡»å¤§äº0', icon: 'none', duration: 2000 }); } total = total += Number(this.cateList[i].num) arr.push(this.cateList[i]) name += this.cateList[i].name + this.cateList[i].num + 'ï¼' } } if (total !== Number(this.from.undesirable)) return uni.showToast({ title: 'ä¸è¯æ°å¿ é¡»çäºäº§åºä¸è¯æ°', icon: 'none', duration: 2000 }); if (total !== Number(this.from.undesirable)) return uni.showToast({ title: 'ä¸è¯æ°å¿ é¡»çäºäº§åºä¸è¯æ°', icon: 'none', duration: 2000 }); this.from.defective = arr this.from.defectiveName = name this.show = false @@ -528,38 +559,55 @@ }); }, openDev() { if (!this.from.processPlan) return uni.showToast({ title: '请å 鿩工åºç产计å', icon: 'none', duration: 2000 }); if (!this.from.processPlan) return uni.showToast({ title: '请å 鿩工åºç产计å', icon: 'none', duration: 2000 }); this.deviceShow = true }, openMaterial() { if (!this.plansId) return uni.showToast({ title: '请å 鿩工åºç产计å', icon: 'none', duration: 2000 }); if (!this.deviceId) return uni.showToast({ title: '请å éæ©ç产设å¤', icon: 'none', duration: 2000 }); if (!this.plansId) return uni.showToast({ title: '请å 鿩工åºç产计å', icon: 'none', duration: 2000 }); if (!this.deviceId) return uni.showToast({ title: '请å éæ©ç产设å¤', icon: 'none', duration: 2000 }); this.$refs.MaterialSelect.open() }, inputwl(i) { if (this.wuList[i].num > this.wuList[i].total) { this.wuList[i].num = '' uni.showToast({ title: 'æææ°éä¸è½å¤§äºåºåæ°é', icon: 'none', duration: 2000 }); uni.showToast({ title: 'æææ°éä¸è½å¤§äºåºåæ°é', icon: 'none', duration: 2000 }); } }, deleItem(index) { if (this.wuList.length === 1) return uni.showToast({ title: 'è³å°ä¿çä¸é¡¹å 容', icon: 'none', duration: 2000 }); if (this.wuList.length === 1) return uni.showToast({ title: 'è³å°ä¿çä¸é¡¹å 容', icon: 'none', duration: 2000 }); this.wuList.splice(index, 1) }, // äº§åºæ°ééªè¯ changeNum(type) { let num = this.total - (Number(this.from.qualified) + Number(this.from.undesirable)) if (type == 2) { this.from.defective = [] this.from.defectiveName = '' } if (num < 0) { uni.showToast({ title: 'äº§åºæ°éä¸è½å¤§äºå¯äº§åºæ°éï¼', icon: 'none', duration: 2000 }); if (type == 1) { this.from.qualified = '' } else { this.from.undesirable = '' this.from.qualified = event } let num = this.total - (Number(this.from.qualified) + Number(this.from.undesirable)) if (num < 0) { uni.$u.toast('äº§åºæ°éä¸è½å¤§äºå¯äº§åºæ°éï¼') } }, openBL() { @@ -575,26 +623,58 @@ }, // ç»§ç»æ¥å·¥ continueSubmit() { if (!this.from.processPlan) return uni.showToast({ title: '计åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.deviceId) return uni.showToast({ title: '设å¤ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.userId) return uni.showToast({ title: 'ç产人åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.processPlan) return uni.showToast({ title: '计åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.deviceId) return uni.showToast({ title: '设å¤ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.userId) return uni.showToast({ title: 'ç产人åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (this.hasBom == 1 && this.bomType == 1) { console.log('ä¸éè¦ææ') } else { if (!this.wuList.length === 0) return uni.showToast({ title: 'ææä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.wuList.length === 0) return uni.showToast({ title: 'ææä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); } if (!this.from.qualified && !this.from.undesirable) { return uni.showToast({ title: 'è¯åæ°ä¸ä¸è¯æ°ä¸è½åæ¶ä¸ºç©º', icon: 'none', duration: 2000 }); return uni.showToast({ title: 'è¯åæ°ä¸ä¸è¯æ°ä¸è½åæ¶ä¸ºç©º', icon: 'none', duration: 2000 }); } if (this.from.qualified && this.from.qualified <= 0) { return uni.showToast({ title: 'è¯åæ°å¿ 须大äº0', icon: 'none', duration: 2000 }); return uni.showToast({ title: 'è¯åæ°å¿ 须大äº0', icon: 'none', duration: 2000 }); } if (this.from.undesirable && this.from.undesirable <= 0) { return uni.showToast({ title: 'ä¸è¯åæ°å¿ 须大äº0', icon: 'none', duration: 2000 }); return uni.showToast({ title: 'ä¸è¯åæ°å¿ 须大äº0', icon: 'none', duration: 2000 }); } // æä¸è¯æ° if (this.from.undesirable > 0) { if (this.from.defective.length === 0) return uni.showToast({ title: 'ä¸è¯é¡¹ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (this.from.defective.length === 0) return uni.showToast({ title: 'ä¸è¯é¡¹ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); } let type = '' this.arrType.forEach(item => { @@ -626,7 +706,11 @@ }) }).then(res => { if (res.code === 200) { uni.showToast({ title: 'æ¥å·¥æåï¼', icon: 'success', duration: 2000 }); uni.showToast({ title: 'æ¥å·¥æåï¼', icon: 'success', duration: 2000 }); this.arrType = [] this.from.processPlan = null this.from.deviceId = '' @@ -644,26 +728,50 @@ this.deviceId = '' this.plansId = '' this.ids = '' this.total = '' this.total = 0 } }) }, // æ¥å·¥ submit() { if (!this.from.processPlan) return uni.showToast({ title: '计åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.deviceId) return uni.showToast({ title: '设å¤ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.userId) return uni.showToast({ title: 'ç产人åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.processPlan) return uni.showToast({ title: '计åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.deviceId) return uni.showToast({ title: '设å¤ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.from.userId) return uni.showToast({ title: 'ç产人åä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (this.hasBom == 1 && this.bomType == 1) { console.log('ä¸éè¦ææ') } else { if (!this.wuList.length === 0) return uni.showToast({ title: 'ææä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (!this.wuList.length === 0) return uni.showToast({ title: 'ææä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); } if (!this.from.qualified && !this.from.undesirable) { return uni.showToast({ title: 'è¯åæ°ä¸ä¸è¯æ°ä¸è½åæ¶ä¸ºç©º', icon: 'none', duration: 2000 }); return uni.showToast({ title: 'è¯åæ°ä¸ä¸è¯æ°ä¸è½åæ¶ä¸ºç©º', icon: 'none', duration: 2000 }); } // æä¸è¯æ° if (this.from.undesirable > 0) { if (this.from.defective.length === 0) return uni.showToast({ title: 'ä¸è¯é¡¹ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); if (this.from.defective.length === 0) return uni.showToast({ title: 'ä¸è¯é¡¹ä¸è½ä¸ºç©º', icon: 'none', duration: 2000 }); } let type = '' this.arrType.forEach(item => { @@ -695,9 +803,15 @@ }) }).then(res => { if (res.code === 200) { uni.showToast({ title: 'æ¥å·¥æåï¼', icon: 'success', duration: 2000 }); uni.showToast({ title: 'æ¥å·¥æåï¼', icon: 'success', duration: 2000 }); setTimeout(() => { uni.navigateBack({ delta: 1 }); uni.navigateBack({ delta: 1 }); }, 2000); } }) @@ -711,16 +825,20 @@ width: 100%; position: absolute; background: #F7F7F7; .contanir { height: calc(env(safe-area-inset-bottom) + 720rpx); .content { margin-top: 20rpx; .type-style { width: 325rpx; margin-bottom: 20rpx; } } } .bg_plan { width: 100%; // height: 98rpx; @@ -731,24 +849,29 @@ display: flex; align-items: center; justify-content: space-between; text { font-size: 30rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #222222; text { color: red; } } .bg_plan_nr { display: flex; flex-direction: column; text { font-size: 24rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #666666; margin-top: 20rpx; &:first-child { font-size: 32rpx; font-family: PingFangSC-Medium, PingFang SC; @@ -758,15 +881,18 @@ } } } .bg_plan_label_val { display: flex; align-items: center; text { font-size: 28rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #999999; } image { width: 12rpx; height: 24rpx; @@ -774,26 +900,32 @@ } } } .bg_list { width: 100%; display: flex; flex-direction: column; .bottomval { margin-bottom: 20rpx !important; } .bg_list_item { display: flex; flex-direction: column; margin-bottom: 40rpx; .kong { text-align: center; padding: 30rpx 0; background: #ffffff; font-size: 25rpx; text { color: #474747; } } .bg_list_item_top { display: flex; align-items: center; @@ -801,13 +933,16 @@ padding-left: 30rpx; padding-right: 30rpx; margin-bottom: 30rpx; .bg_list_item_top_left { display: flex; align-items: center; .left { margin-left: 12rpx; font-size: 28rpx; } .warning { width: 8rpx; height: 30rpx; @@ -815,6 +950,7 @@ margin-right: 12rpx; background: $nav-stateColor5 !important; } .error { width: 8rpx; height: 30rpx; @@ -822,6 +958,7 @@ margin-right: 12rpx; background: $nav-stateColor4 !important; } .bg_list_item_top_left_x { width: 8rpx; height: 30rpx; @@ -829,6 +966,7 @@ border-radius: 2rpx; margin-right: 12rpx; } text { font-size: 32rpx; font-weight: 500; @@ -837,14 +975,17 @@ align-items: center; } } .bg_list_item_top_right { display: flex; align-items: center; image { width: 28rpx; height: 28rpx; margin-right: 12rpx; } text { font-size: 28rpx; font-weight: 400; @@ -852,14 +993,17 @@ } } } .top { margin-top: 20rpx !important; } .bg_list_item_h { width: 100%; padding: 0 30rpx; box-sizing: border-box; background: white; .bg_list_item_num { width: 100%; min-height: 98rpx; @@ -868,15 +1012,18 @@ justify-content: center; align-items: center; border-bottom: 1rpx solid #E5E5E5; &:last-child { border: none !important; } .kong { text-align: center; font-size: 25rpx; padding: 30rpx 0; background: #ffffff; } .bg_list_item_num_item { width: 100%; height: 100%; @@ -887,16 +1034,20 @@ box-sizing: border-box; justify-content: space-between; border-bottom: 1rpx solid #E5E5E5; &:last-child { border: none; } .bg_list_item_num_item_list { display: flex; align-items: center; .active { background: #305ED5 !important; color: #FFFFFF !important; } .bg_list_item_num_item_list_item { width: 116rpx; height: 62rpx; @@ -909,61 +1060,75 @@ font-weight: 400; color: #333333; margin-right: 20rpx; &:last-child { margin: 0 !important; } } } .bg_list_item_num_item_wl { flex: 1; display: flex; flex-direction: column; text { font-size: 34rpx; color: #222222; } .bg_list_item_num_item_wl_lx { margin-top: 10rpx; text { color: #222222; font-size: 28rpx; } } } .warning { color: $nav-stateColor5 !important; } .err { color: $nav-stateColor4 !important; } image { width: 12rpx; height: 24rpx; margin-left: 20rpx; } text { flex-shrink: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text { font-size: 30rpx; color: red !important; margin-right: 5rpx; } .warning { color: $nav-stateColor5 !important; margin-right: 5rpx; } .err { color: $nav-stateColor4 !important; margin-right: 5rpx; } &:nth-child(1) { font-size: 30rpx; font-weight: 400; color: #222222; } &:nth-child(2) { font-size: 28rpx; font-weight: 400; @@ -971,6 +1136,7 @@ flex-shrink: 0; } } .bg_list_item_num_item_sr { // flex: 1; flex-shrink: 0; @@ -978,15 +1144,18 @@ display: flex; align-items: center; justify-content: flex-end; .color1 { font-size: 28rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #333333; } input::-webkit-input-placeholder { font-size: 28rpx; } input { text-align: right; width: 180rpx; @@ -1000,6 +1169,7 @@ padding: 0 30rpx; margin-right: 20rpx; } .wulll { width: 400rpx; text-align: right; @@ -1007,6 +1177,7 @@ white-space: nowrap; text-overflow: ellipsis; } text { font-size: 28rpx; font-family: PingFangSC-Regular, PingFang SC; @@ -1019,9 +1190,11 @@ } } } .bh_zw { height: 160rpx; } .bg_footer { position: fixed; bottom: 0; @@ -1033,6 +1206,7 @@ display: flex; align-items: center; justify-content: space-between; .bg_footer_submit1 { width: 334rpx; height: 88rpx; @@ -1046,6 +1220,7 @@ font-weight: 500; color: #305ED5; } .bg_footer_submit { width: 334rpx; height: 88rpx; @@ -1060,6 +1235,7 @@ justify-content: center; } } .bl { width: 100%; height: 800rpx; @@ -1067,24 +1243,29 @@ box-sizing: border-box; display: flex; flex-direction: column; .bl_head { width: 100%; height: 50rpx; display: flex; align-items: center; justify-content: space-between; text { font-size: 28rpx; color: #222222; &:nth-child(2) { font-size: 32rpx !important; } } image { width: 28rpx; height: 28rpx; } } .bl_footer { width: 100%; height: 88rpx; @@ -1098,11 +1279,13 @@ color: #FFFFFF; margin-top: 30rpx; } .bl_list { width: 100%; height: calc(100% - 168rpx); overflow-y: scroll; margin-top: 30rpx; .bl_list_item { width: 100%; height: 96rpx; @@ -1110,30 +1293,36 @@ align-items: center; justify-content: space-between; border-bottom: 1rpx solid #E5E5E5; &:last-child { border: none !important; } .bl_list_item_left { flex: 1; display: flex; align-items: center; input { width: 30rpx; height: 30rpx; border: 1rpx solid #CCCCCC; margin: 0 !important; } text { font-size: 30rpx; color: #222222; margin-left: 10rpx; } } .bl_list_item_right { width: 200rpx; flex-shrink: 0; height: 50rpx; text-align: right; input { padding-left: 5rpx; width: 160rpx; @@ -1145,6 +1334,7 @@ color: #333333; border-radius: 10rpx; border: 1rpx solid #CCCCCC; &::-webkit-input-placeholder { font-size: 28rpx; font-family: PingFangSC-Regular, PingFang SC; @@ -1156,6 +1346,7 @@ } } } .bl_list { width: 100%; height: calc(100% - 168rpx); @@ -1223,6 +1414,7 @@ } } } .bottom-view { left: 40rpx; right: 40rpx; minipro_standard/pages_adjust/pages/workOrder/workOrder.vue
@@ -22,9 +22,10 @@ <v-LableSelection :TagList="tagList" :isShow="true" @change="clickTag"></v-LableSelection> </div> <div class="content_total mt20">å ±{{page.total}}æ¡æ°æ®</div> <scroll-view scroll-y="true" :style="{height:height}" refresher-enabled="true" :refresher-triggered="triggered" @scrolltolower="getLists" @refresherrefresh="onRefresh"> <div class="content_list"> <scroll-view scroll-y="true" :style="{height:height}" refresher-enabled="true" :refresher-triggered="triggered" @scrolltolower="getLists" @refresherrefresh="onRefresh"> <div class="content_list_item" v-for="(item, i) in list" :key="i" @click="jump(item)"> <div class="content_list_item_top"> <div class="content_list_item_top_left"> @@ -77,8 +78,9 @@ </div> </div> </div> </div> </scroll-view> </div> <view class="fx1"> </view> @@ -96,7 +98,9 @@ getList, pageCount } from '@/util/api/WorkOrderAPI.js' import { gsdate } from '@/util/utils.js' import { gsdate } from '@/util/utils.js' export default { components: { vSearch, @@ -258,6 +262,7 @@ display: flex; flex-direction: column; height: 100vh; .content_search { background: white; z-index: 9; @@ -372,7 +377,7 @@ width: 80%; span { font-size: 24rpx; font-size: 32rpx; font-weight: 500; color: #333333; overflow: hidden; minipro_standard/pages_adjust/pages/workOrderReporting/workOrderReporting.vue
@@ -1,6 +1,6 @@ <template> <page-meta :page-style="(badShow||statistics) ?'overflow: hidden;': ''"/> <view> <view class="content"> <view class="tips-label">å½åä»»å¡éè¦è´¨æ£ï¼äº§åºåï¼è¯·èå¿çå¾ è´¨æ£åæ£éªï¼å¹¶æ ¹æ®æ£éªç»æè°æ´äº§åºæ°æ®å忥工ã</view> <workOrderInfo :orederMessage="info" /> <!-- <u-tabs :list="tab" lineColor="#305ED5" :activeStyle="{color:'#305ED5'}" lineWidth="50%" :itemStyle="{width: '50%', boxSizing: 'border-box', height: '88rpx'}" @click="click"></u-tabs> --> @@ -22,7 +22,7 @@ <!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> --> <!-- <img src="@/static/gongdan_ic_shoudong@2x.ong" alt="" /> --> <image src="../../static/gongdan_ic_shoudong@2x.png" class="img28" mode=""></image> <span class="cm">æå¨å½å ¥</span> <span class="cm">æå¨ææ</span> </div> </div> @@ -38,11 +38,11 @@ <span> {{ item.materialName || 'å¢ä½ç ' }}{{ item.procedureName ? ` | ${item.procedureName}` : '' }}</span> <div class="bg_list_item_num_item_wl_lx"> <span class="green" v-if="item.qualityType == 0">åæ ¼ / </span> <span class="orange" v-if="item.qualityType == 1">ä¸è¯ / </span> <span class="red" v-if="item.qualityType == 2">æ¥åº / </span> <span class="green" v-if="item.qualityType == 0">åæ ¼<text class="c6" decode>{{split}}</text></span> <span class="orange" v-if="item.qualityType == 1">ä¸è¯<text class="c6" decode>{{split}}</text></span> <span class="red" v-if="item.qualityType == 2">æ¥åº<text class="c6" decode>{{split}}</text></span> <span>{{ item.locationName }}</span> <span>{{ item.batch ? ` / ${item.batch}` : '' }}</span> <span v-if="item.batch"><text class="c6" decode>{{split}}</text>{{ item.batch }}</span> </div> </div> <div class="bg_list_item_num_item_sr"> @@ -306,6 +306,7 @@ name: 'ç¹æ£' } ], split: ' / ', form: { time: '', defective: [], @@ -367,41 +368,44 @@ }, computed: { expectedSalary() { let { qualified, undesirable } = this.produceFrom if (this.arrType.length === 0) return 0; let temp = this.arrType[this.form.index] // æä»¶è®¡ç® if (this.arrType[this.form.index].type == 0) { if (!this.produceFrom.qualified) return 0 if (this.arrType[this.form.index].unqualified == 1) { // æ¯å¦è®¡å ¥ä¸è¯å let total = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable) return (total * (this.arrType[this.form.index].salary / 100)).toFixed(2) || 0 if (temp.type == 0) { if (!qualified) return 0 if (temp.unqualified == 1) { // æ¯å¦è®¡å ¥ä¸è¯å let total = Number(qualified) + Number(undesirable) return (total * (temp.salary / 100)).toFixed(2) || 0 } else { return (Number(this.produceFrom.qualified) * (this.arrType[this.form.index].salary / 100)).toFixed( return (Number(qualified) * (temp.salary / 100)).toFixed( 2) || 0 } } else { if (!this.form.duration) return 0; let h = (this.form.duration / 60 / 60).toFixed(2) return (Number(h) * (this.arrType[this.form.index].salary / 10 / 10)).toFixed(2) || 0 return (Number(h) * (temp.salary / 10 / 10)).toFixed(2) || 0 } }, complianceRate() { let { index, duration } = this.form let { qualified, undesirable } = this.produceFrom if (this.arrType.length === 0) return 0; let temp = this.arrType[index] if (!qualified && !undesirable) return 0; if (!duration) return 0; if (!this.arrType[index].num) return 0; if (!temp.num || !temp.times) return 0; // æä»¶è®¡ç® // if (infoBox.value.type == 0) { if (this.arrType[index].unqualified == 1) { // æ¯å¦è®¡å ¥ä¸è¯å let a = ((Number(qualified) + Number(undesirable)) / (duration / 3600)).toFixed(2) let b = (this.arrType[index].num / (this.arrType[index].times / 3600)).toFixed(2) if (temp.unqualified == 1) { // æ¯å¦è®¡å ¥ä¸è¯å let a = ((Number(qualified) + Number(undesirable)) / (Number(duration) / 3600)).toFixed(2) let b = (temp.num / (temp.times / 3600)).toFixed(2) return ((Number(a) / Number(b)) * 100).toFixed(2) // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / ) // return total * infoBox.value.salary; } else { let a = (qualified / (duration / 3600)).toFixed(2) let b = (this.arrType[index].num / (this.arrType[index].times / 3600)).toFixed(2) let a = (Number(qualified) / (Number(duration) / 3600)).toFixed(2) let b = (temp.num / (temp.times / 3600)).toFixed(2) return ((Number(a) / Number(b)) * 100).toFixed(2) // return Number(from.qualified) * infoBox.value.salary; } @@ -653,8 +657,6 @@ }) this.isSubmit = Number(this.produceFrom.qualified) + Number(this.produceFrom.undesirable) <= this .info.planNum; console.log(this.isSubmit); debugger } } else { @@ -779,36 +781,6 @@ } }) }, // => { // // if (!from.duration || from.duration <= 0) { // // return Toast('æ¥å·¥æ¶é¿ä¸è½ä¸ºç©º') // // } // let createUnqualifiedDTOList = from.defective.map(item => { // return { // categoryId: item.id, // unQualifiedNum: item.num // } // }) // let createWorkorderRecordDTO = { // workorderId: route.query.id, // duration: from.duration ? from.duration : 0, // qualifiedNum: produceFrom.qualified ? produceFrom.qualified : 0, // unQualifiedNum: produceFrom.undesirable ? produceFrom.undesirable : 0 // } // // id: route.query.id // comfirmDoneStandard({ // createUnqualifiedDTOList, // createWorkorderRecordDTO // }).then(res => { // if (res.code === 200) { // Toast.success({ message: 'æ¥å·¥æå', forbidClick: true, duration: 2000 }) // setTimeout(() => { // router.go(-2) // }, 2000) // } // }) // } jumpdj() { uni.navigateTo({ url: `/pages_adjust/pages/spotCheck/spotCheck?id=${this.workorderId}` @@ -1076,7 +1048,6 @@ padding: 30rpx 0; background: #ffffff; } .bg_list_item_num_item { width: 100%; height: 100%; @@ -1086,11 +1057,7 @@ padding: 15rpx 0; box-sizing: border-box; justify-content: space-between; border-bottom: 1rpx solid #E5E5E5; &:last-child { border: none; } .bg_list_item_num_item_list { display: flex; @@ -1605,4 +1572,8 @@ color: #FFFFFF; } } .content { height: 100vh; background-color: #f7f7f7; } </style> minipro_standard/pages_inspect/pages/InOperation/InOperation.vue
@@ -25,14 +25,11 @@ <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 class="green" v-if="item.qualityType === 0">åæ ¼<text class="c6" decode>{{ split}}</text></span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯<text class="c6" decode>{{ split}}</text></span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº<text class="c6" decode>{{ split}}</text></span> <span v-else>-<text class="c6" decode>{{ split}}</text></span> <span>{{item.procedureName ? item.procedureName : '-'}}<text class="c6" decode>{{ split}}</text></span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> @@ -72,10 +69,10 @@ </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 class="green" v-if="item.qualityType === 0">åæ ¼<text class="c6" decode>{{ split}}</text></span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯<text class="c6" decode>{{ split}}</text></span> <span class="red" v-else-if="item.qualityType === 2">æ¥åº<text class="c6" decode>{{ split}}</text></span> <span>{{item.procedureName ? item.procedureName : '-'}}<text class="c6" decode>{{ split}}</text></span> <span>{{item.batch ? item.batch : '-'}}</span> </div> <div class="page_yxwl_list_item_num"> @@ -115,10 +112,10 @@ </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 class="green" v-if="item1.qualityType === 0">åæ ¼<text class="c6" decode>{{ split}}</text></span> <span class="yellow" v-else-if="item1.qualityType === 1">ä¸è¯<text class="c6" decode>{{ split}}</text></span> <span class="red" v-else-if="item1.qualityType === 2">æ¥åº<text class="c6" decode>{{ split}}</text></span> <span>{{item1.procedureName ? item1.procedureName : '-'}}<text class="c6" decode>{{ split}}</text></span> <span>{{item1.batch ? item1.batch : '-'}}</span> </div> <div class="page_yxwl_list_item_num"> @@ -200,6 +197,7 @@ }, data() { return { split: ' / ', type: '', id: '', wareHouseId: '', @@ -301,17 +299,42 @@ }, 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('ç¸åè´§ä½ï¼åä¸ä¸ªç©æåªè½æä¸ä¸ª') let repetition = false this.seleMateriaList.forEach(item => { if (item.locationId == this.location) { if (item.id == material.id) { repetition = true return } } }) if (repetition) { uni.$u.toast('ç¸åè´§ä½ï¼åä¸ä¸ªç©æåªè½æä¸ä¸ª') return } // let tempMaterial = this.seleMateriaList.find(item => item.locationId == this.location) // debugger // if (tempMaterial) { // /* // tempMaterial.qualityType == material.qualityType // && tempMaterial.procedureId == material.procedureId // &&tempMaterial.batch == material.batch // &&tempMaterial.oldLocationId == material.locationId // && tempMaterial.materialId == material.materialId // */ // if (tempMaterial.id == material.id) { // uni.$u.toast('ç¸åè´§ä½ï¼åä¸ä¸ªç©æåªè½æä¸ä¸ª') // return // } // } // if (tempMaterial && tempMaterial.id == material.id) { // uni.$u.toast('ç¸åè´§ä½ï¼åä¸ä¸ªç©æåªè½æä¸ä¸ª') // return // } let materialNum = 0 let num = 0 // let selectedM = this.seleMateriaList.find(item => item.id == material.id) // let waitMaterial = this.MateriaList.find(item => item.id === material.id) this.seleMateriaList.forEach(item => { if (item.id === material.id) { materialNum += Number(item.outActnum) @@ -322,9 +345,11 @@ num = item.outActnum - materialNum } }) material.outActnum = num this.seleMateriaList.push({ ...material, oldLocationId: material.locationId, locationId: this.location, locationName: this.locationName }) minipro_standard/pages_inspect/pages/OutOperation/OutOperation.vue
@@ -1,4 +1,5 @@ <template> <page-meta :page-style="ban ?'overflow: hidden;': ''"/> <view> <InOutInfo :info="info" /> <uni-collapse @change="change" @close="close" @open="open"> @@ -23,14 +24,11 @@ <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 class="green" v-if="item.qualityType === 0">åæ ¼<text class="c6" decode>{{ split}}</text></span> <span class="warning" v-else-if="item.qualityType === 1">ä¸è¯<text class="c6" decode>{{ split}}</text></span> <span class="error" v-else-if="item.qualityType === 2">æ¥åº<text class="c6" decode>{{ split}}</text></span> <span v-else>-<text class="c6" decode>{{ split}}</text></span> <span>{{item.procedureName || '-'}}<text class="c6" decode>{{ split}}</text></span> <span>{{item.batch ? item.batch : '-'}}</span> </div> </div> @@ -80,7 +78,7 @@ </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">æ¹æ¬¡å·1ï¼</div> <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"> @@ -118,7 +116,7 @@ </div> <div class="page_yxwl_list_item_sx"> <span class="green" v-if="item.qualityType == 0">åæ ¼t<text class="c6" decode>{{ split}}</text></span> <span class="green" v-if="item.qualityType == 0">åæ ¼<text class="c6" decode>{{ split}}</text></span> <span class="yellow" v-else-if="item.qualityType == 1">ä¸è¯<text class="c6" decode>{{ split}}</text></span> <span class="red" v-else-if="item.qualityType == 2">æ¥åº<text class="c6" decode>{{ split}}</text></span> <span v-else>-<text class="c6" decode>{{ split}}</text></span> @@ -156,7 +154,7 @@ <span>确认åºåº</span> </div> </div> <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" @selectes="selectMaterail" /> <SelectTraMultipleMaterial ref="selectTraMultipleMaterial" @close="ban = false" @selectes="selectMaterail" /> </view> </template> @@ -183,7 +181,9 @@ SelectTraMultipleMaterial }, data() { return { ban: false, type: '', id: '', dbid: '', @@ -262,12 +262,14 @@ close() {}, open() {}, openxz() { this.ban = true this.$refs.selectTraMultipleMaterial.open({ transferId: this.id, warehouseId: this.warehouseId }) }, selectMaterail(v) { this.ban = false let tempList = this.warehouseList[0].wtransferDetailList let materials = JSON.parse(JSON.stringify(v.materials)) tempList.forEach(item => { @@ -279,29 +281,44 @@ } }) if (!isOutList) { item.wstockExtListVOList.forEach(hw => { materials.forEach((materail, index) => { if (item.batch) { // 精确å¹é if (materail.materialId == item.materialId && materail.procedureId == item.procedureId && materail.qualityType == item.qualityType && materail.batch == item.batch if (hw.materialId == materail.materialId && hw.procedureId == materail.procedureId && hw.qualityType == materail.qualityType && hw.locationId == materail.locationId && hw.batch == materail.batch ) { this.addToOutList(materail, item) materials.splice(index, 1) return } } else { if (materail.materialId == item.materialId && materail.procedureId == item.procedureId && materail.qualityType == item.qualityType ) { this.addToOutList(materail, item) materials.splice(index, 1) return } } }) }) // if (item.batch) { // // 精确å¹é // if (materail.materialId == item.materialId && // materail.procedureId == item.procedureId && // materail.qualityType == item.qualityType && // materail.batch == item.batch // ) { // this.addToOutList(materail, item) // materials.splice(index, 1) // return // } // } else { // if (materail.materialId == item.materialId && // materail.procedureId == item.procedureId && // materail.qualityType == item.qualityType // ) { // this.addToOutList(materail, item) // materials.splice(index, 1) // return // } // } } }) }, minipro_standard/store/index.js
@@ -81,7 +81,7 @@ let res = await getTreeList({ type: type }) if (res.code === 200) { if (res && res.code === 200) { content.commit('SETMENU', res.data) } }, @@ -105,7 +105,8 @@ }, async getUpcomingNum(context) { let res = await pageCount({}) if (res.code === 200) { if (res && res.code === 200) { context.commit('SETNUM', { d: res.data.startNum, y: res.data.endNum @@ -115,7 +116,7 @@ // åå端è·åä¸ªäººä¿¡æ¯ async getUserInfos(content) { let res = await getUserInfo() if (res.code === 200) { if (res && res.code === 200) { content.commit('SETUSERINFO', res.data) return true; } minipro_standard/util/request/responseInterceptors.js
@@ -6,15 +6,15 @@ uni.$u.http.interceptors.response.use((response) => { uni.hideLoading(); const data = response.data if (response.data.code === 401) { // å¤çç»å½è¿æ if (data.code === 401) { // å¤çç»å½è¿æ uni.showToast({ title: 'ç»å½è¿æï¼åå¤èªå¨éæ°ç»å½', icon: 'none', duration: 2000, mask: true }); setTimeout(() => { uni.reLaunch({ url: '/pages/login/login' }); }, 2000) return } if (response.data.code !== 200) { // è¯·æ±æ¥é uni.showToast({ title: response.data.message, icon: 'none', duration: 2000 }); if (data.code !== 200) { // è¯·æ±æ¥é uni.showToast({ title: data.message, icon: 'none', duration: 2000 }); } return data || {} }, (error) => { screen_standard/.env.development
@@ -6,11 +6,9 @@ #VITE_BASE_URL='http://192.168.0.35:10021' # VITE_BASE_PATH='/doumeeplant_api' <<<<<<< HEAD # VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api/' VITE_BASE_URL = 'https://www.mes.red/doumeeplant' ======= VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api' # VITE_BASE_URL = 'https://www.mes.red/doumeeplant' >>>>>>> 7550fb636fec7a84dbdea55196d97ed635d7ab10 VITE_BASE_URL='https://dmtest.ahapp.net/doumeeplant_api' VITE_BASE_URL = 'https://www.mes.red/doumeeplant' screen_standard/src/stores/counter.js
@@ -1,4 +1,3 @@ import { computed } from 'vue'; import { defineStore } from 'pinia'; export const useCounterStore = defineStore('enterprise', { screen_standard/src/views/index.vue
@@ -714,14 +714,17 @@ scrollDom = scrollContainer1.value } else { // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ if (scrollDom.children.length < 6) { if (scrollDom.children.length <= 6) { clearTimeout(timer1.value) return } // console.log(data.plannedProgress); // ç»ä»¶è¿è¡æ»å¨ scrollDom.scrollTop += 2 // scrollDom.scrollTo(0, scrollDom.scrollTop + 3) // console.log('2-----',scrollDom.scrollTop, scrollDom.scrollHeight, scrollDom.clientHeight ); // 夿æ¯å¦æ»å¨å°åºé¨ if (scrollDom.scrollTop+2 >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ let first = scrollDom.children[0] // å é¤èç¹ @@ -739,16 +742,17 @@ scrollDom = scrollContainer2.value } else { // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ if (scrollDom.children.length < 10) { if (scrollDom.children.length <= 10) { clearTimeout(timer2.value) return } // ç»ä»¶è¿è¡æ»å¨ scrollDom.scrollTop += 1 scrollDom.scrollTo(0, scrollDom.scrollTop + 1) // += 1 // scrollDom.scrollTop(scrollDom.scrollTop + 1) // console.log('scrollDom.scrollTop', scrollDom.scrollTop); // console.log('scrollDom.scrollHeight - scrollDom.clientHeight', scrollDom.scrollHeight - scrollDom.clientHeight); // 夿æ¯å¦æ»å¨å°åºé¨ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { if (scrollDom.scrollTop &&scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ let first = scrollDom.children[0] // å é¤èç¹ @@ -776,7 +780,7 @@ // ç»ä»¶è¿è¡æ»å¨ scrollDom.scrollTop = scrollDom.scrollTop+2 // 夿æ¯å¦æ»å¨å°åºé¨ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ let first = scrollDom.children[0] // å é¤èç¹ @@ -790,18 +794,12 @@ let scrollDom = scrollContainer4.value if (!scrollDom) return // å¤è¯»ç»ä»¶æ¯å¦æ¸²æå®æ if (scrollDom.offsetHeight == 0) { if (scrollDom.scrollTop && scrollDom.offsetHeight == 0) { scrollDom = scrollContainer4.value } else { // console.log(scrollDom.offsetHeight); let num = scrollDom.offsetHeight / 35; num = num + (scrollDom.offsetHeight % 35 > 0 ? 1 : 0) // console.log('----------'); // console.log('scrollDom.children.length', scrollDom.children.length) // console.log('scrollDom.offsetHeight % 35', scrollDom.offsetHeight % 35) // console.log('num', num) // console.log('----------'); // // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ if (scrollDom.children.length <= num) { clearTimeout(timer4.value) return @@ -810,10 +808,7 @@ scrollDom.scrollTop += 1 // 夿æ¯å¦æ»å¨å°åºé¨ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { console.log('scrollDom.scrollTop', scrollDom.scrollTop); console.log('scrollDom.scrollHeight', scrollDom.scrollHeight); console.log('scrollDom.clientHeight', scrollDom.clientHeight ); if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { // if (scrollDom.scrollTop >= 35) { // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ @@ -835,7 +830,7 @@ console.log('onMounted'); init() timer5.value = setInterval(init, 60000) timer.value = setInterval(scrillAction, 100) // timer.value = setInterval(scrillAction, 100) } window.addEventListener('resize', () => { setTypeChart() screen_standard/src/views/process.vue
@@ -251,8 +251,12 @@ data.planScroll = false return } // scrollTopæçæ¯âå ç´ ä¸çå 容âè¶ åºâå ç´ ä¸è¾¹çâçé£é¨åçé«åº¦ // scrollHeightææ´ä¸ªå ç´ çé«åº¦ï¼ä¸å ç´ æ¬èº«æå ³ï¼æ¯å ç´ æ¬èº«çé«åº¦ä¸ä½ æè®¾ç½®çstyle屿§ç¸å çç»æï¼ä½ä¸overflow:hiddenç屿§æ å ³ï¼ä¸æ¯å¦å¨å¯è§èå´å æ å ³ // clientHeightå«ä¹ï¼å ç´ çåç´ é«åº¦ï¼å å«å ç´ çé«åº¦+å è¾¹è·ï¼ä¸å 嫿°´å¹³æ»å¨æ¡ï¼è¾¹æ¡åå¤è¾¹è· // ç»ä»¶è¿è¡æ»å¨ scrollDom.scrollTop += 2 console.log(scrollDom.scrollTop); // 夿æ¯å¦æ»å¨å°åºé¨ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ @@ -276,14 +280,15 @@ scrollDom = reportLogContainer.value } else { // 妿å表æ°éè¿å°ä¸è¿è¡æ»å¨ if (scrollDom.children.length < 10) { if (scrollDom.children.length <= 10) { data.reportScroll = false return } // ç»ä»¶è¿è¡æ»å¨ scrollDom.scrollTop += 2 scrollDom.scrollTop += 1 console.log(scrollDom.scrollTop); // 夿æ¯å¦æ»å¨å°åºé¨ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { if (scrollDom.scrollTop && scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { // è·åç»ä»¶ç¬¬ä¸ä¸ªèç¹ let first = scrollDom.children[0] // å é¤èç¹ @@ -412,7 +417,6 @@ */ function setTypeChart() { let dayChartDom = document.getElementById('type-distribution'); console.log(dayChartDom); let myChart = echarts.init(dayChartDom); let legendData = [] let seriesData = [] web_standard/.env.development
@@ -24,5 +24,5 @@ # VUE_APP_BASE_URL = 'http://192.168.0.35:10021/' # æµè¯æå¡å¨ VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' # VUE_APP_BASE_URL = 'https://dmtest.ahapp.net/doumeeplant_api/' web_standard/src/components/ext/OperaWrollOutStore.vue
@@ -617,6 +617,7 @@ stockNum: item.num, unitName: item.unitName, locationName: item.locationName, locationId: item.locationId, procedureName: item.procedureName, id: item.id, // éä¼ åæ° @@ -631,7 +632,7 @@ }) } } // console.log('ç¡®å®', this.form.woutBoundDetailBeans) // console.log('ç¡®å®', this.form.wtransferDetailBeanList) this.isSelectMaterial = false this.pagination.pageIndex = 1 }, web_standard/yarn.lock
ÎļþÌ«´ó