From 2eed507a4dfffda298bcd3de479a66db5a69bbab Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期二, 30 一月 2024 10:42:44 +0800 Subject: [PATCH] 修改订单明细实体类 --- north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue | 166 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 111 insertions(+), 55 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue index 84117ac..c6203f3 100644 --- a/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue +++ b/north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue @@ -5,7 +5,8 @@ import {ElMessage} from "element-plus" import request from "@/utils/request" import deepClone from "@/utils/deepClone" - +import useUserInfoStore from '@/stores/userInfo' +const userStore = useUserInfoStore() const router = useRouter() const xGrid = ref() const gridOptions = reactive({ @@ -13,7 +14,7 @@ keepSource: true,//淇濇寔婧愭暟鎹� align: 'center',//鏂囧瓧灞呬腑 stripe:true,//鏂戦┈绾� - rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒 + rowConfig: {isCurrent: true, isHover: true,height: 30},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒 id: 'OrderList', showFooter: true,//鏄剧ず鑴� printConfig: {}, @@ -168,7 +169,6 @@ ElMessage.error('娌℃湁琛ㄦ牸鏁版嵁锛�') return } - console.log($grid.getTableData().tableData) if ($grid) { const errMap = await $grid.validate(true) if (errMap) { @@ -216,11 +216,29 @@ const titleUploadData = ref({ project:'', orderType:'', - alType:'', + customerId:'', + customerName:'', icon:'', orderClassify:'', packType:'', - deliveryDate:'' + orderId:'', + deliveryDate:'', + batch:'', + calculateType:'', + salesmanId:'', + salesman:'', + alType:'', + money:'', + contractId:'', + customerBatch:'', + contacts:'', + contactNumber:'', + deliveryAddress:'', + otherMoney:'', + otherMoneyRemarks:'', + processingNote:'', + creatorId:userStore.user.userName, + creator:userStore.user.userId, }) //瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁 @@ -230,16 +248,19 @@ icon:[], orderClassify:[], packType:[], + customer:[], + saleMan:[] }) //椤甸潰绗竴娆″姞杞芥墽琛� request.get(`/basicData/orderBasicData`).then((res) => { + if(res.code==200){ titleSelectJson.value=deepClone(res.data) - titleUploadData.value.orderType = titleSelectJson.value.orderType[0].id - titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].id - titleUploadData.value.icon = titleSelectJson.value.icon[0].id - titleUploadData.value.packType = titleSelectJson.value.packType[0].id - titleUploadData.value.alType = titleSelectJson.value.alType[0].id + titleUploadData.value.orderType = titleSelectJson.value.orderType[0].basicName + titleUploadData.value.orderClassify = titleSelectJson.value.orderClassify[0].basicName + titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName + titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName + titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName const today = new Date today.setTime(today.getTime() + (15 * 24 * 60 * 60 * 1000)) titleUploadData.value.deliveryDate = today.getFullYear() + @@ -261,21 +282,36 @@ } - - -const countAmount = (row) => { - return +const changeCustomer = () => { + const changedCustomerId = titleUploadData.value.customerId + const customer = titleSelectJson.value.customer.filter(item => item.id === changedCustomerId) + titleUploadData.value.customerName = customer[0].customerName + //titleSelectJson.value.customer } + +const changeSaleMan = () => { + const changedSaleManId = titleUploadData.value.salesmanId + const SaleMan = titleSelectJson.value.saleMan.filter(item => item.id === changedSaleManId) + titleUploadData.value.salesman = SaleMan[0].basicName +} + const area = (row) => { return parseFloat((row.width * row.height/1000000).toFixed(2)) } const countArea = (row) => { - return parseFloat((row.width * row.height/1000000).toFixed(2))*row.quantity + const area = parseFloat((row.width * row.height/1000000).toFixed(2)) + return parseFloat((area * row.quantity).toFixed(2)) } - +const countMoney = (list) => { + let countMoney = 0 + list.forEach((item)=>{ + countMoney += parseFloat(item.grossAmount) + }) + return countMoney +} //瀵煎叆鍔熻兘 -const impotEvent = async () => { +const importEvent = async () => { const $grid = xGrid.value const { files } = await $grid.readFile({ types: ['xls', 'xlsx'] @@ -290,13 +326,15 @@ return } jsonData.forEach((item,index) => { - //item.computeArea - //console.log() if(item.computeArea === undefined){ item.computeArea = area(item) } - item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toString()) + item.area = area(item) + item.grossArea = countArea(item) + item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2)) + item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) }) + titleUploadData.value.money=countMoney(jsonData).toString() xGrid.value.loadData(jsonData) } @@ -311,11 +349,13 @@ row.grossArea = countArea(row) row.computeArea = row.area row.computeGrossArea = row.grossArea - row.grossAmount=row.price * row.computeGrossArea + row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) }else if(column.property === 'computeArea'){ - row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toString()) - row.grossAmount=row.price * row.computeGrossArea + row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2)) + row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) } + + titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString() } </script> @@ -324,11 +364,19 @@ <div class="order-primary" style="background-color: white"> <el-row> <el-col :span="2"><el-text>*椤圭洰鍚嶇О锛�</el-text></el-col> - <el-col :span="2"><el-input/></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.project"/></el-col> <el-col :span="2"><el-text>*瀹㈡埛閫夋嫨锛�</el-text></el-col> <el-col :span="2"> - <el-select clearable placeholder=" " > - <el-option/> + <el-select v-model="titleUploadData.customerId" + @change="changeCustomer" + filterable + clearable + placeholder="" > + <el-option v-for="item in titleSelectJson['customer']" + :key="item.id" + :label="item.id+' '+item.customerName" + :value="item.id" + /> </el-select> </el-col> <el-col :span="2"><el-text>*璁㈠崟绫诲瀷锛�</el-text></el-col> @@ -338,64 +386,72 @@ v-for="item in titleSelectJson['orderType']" :key="item.id" :label="item.basicName" - :value="item.id" + :value="item.basicName" /> </el-select> </el-col> <el-col :span="2"><el-text>璁㈠崟鍒嗙被锛�</el-text></el-col> <el-col :span="2"> - <el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " > + <el-select v-model="titleUploadData.orderClassify" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['orderClassify']" :key="item.id" :label="item.basicName" - :value="item.id" + :value="item.basicName" /> </el-select> </el-col> <el-col :span="2"><el-text>鍟嗘爣閫夐」锛�</el-text></el-col> <el-col :span="2"> - <el-select v-model="titleUploadData.icon" clearable placeholder=" " > + <el-select v-model="titleUploadData.icon" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['icon']" :key="item.id" :label="item.basicName" - :value="item.id"/> + :value="item.basicName"/> </el-select> </el-col> <el-col :span="2"><el-text>鍖呰鏂瑰紡锛�</el-text></el-col> <el-col :span="2"> - <el-select v-model="titleUploadData.packType" clearable placeholder=" " > + <el-select v-model="titleUploadData.packType" clearable placeholder=" " > <el-option v-for="item in titleSelectJson['packType']" :key="item.id" :label="item.basicName" - :value="item.id"/> + :value="item.basicName"/> </el-select> </el-col> <!-- <el-col :span="2"><el-text /></el-col>--> </el-row> <el-row> <el-col :span="2"><el-text>閿�鍞崟鍙凤細</el-text></el-col> - <el-col :span="2"><el-text /></el-col> + <el-col :span="2"><el-text >{{titleUploadData.orderId}}</el-text></el-col> <el-col :span="2"><el-text>浜よ揣鏃ユ湡锛�</el-text></el-col> <el-col :span="2"> <el-date-picker v-model="titleUploadData.deliveryDate" type="date" - placeholder="Pick a day" + placeholder="" /> </el-col> <el-col :span="2"><el-text>鎵规锛�</el-text></el-col> - <el-col :span="2"><el-input/></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.batch"/></el-col> <el-col :span="2"><el-text>璁$畻鏂瑰紡锛�</el-text></el-col> <el-col :span="2"> - <el-select clearable placeholder=" " > - <el-option/> + <el-select v-model="titleUploadData.calculateType" clearable placeholder=" " > + <el-option value="1" label="1"/> </el-select> </el-col> <el-col :span="2"><el-text>*涓氬姟鍛橈細</el-text></el-col> <el-col :span="2"> - <el-select clearable placeholder=" " > - <el-option/> + <el-select + v-model="titleUploadData.salesmanId" + @change = "changeSaleMan" + clearable + placeholder=" " + > + <el-option v-for="item in titleSelectJson['saleMan']" + :key="item.id" + :label="item.basicName" + :value="item.id"/> </el-select> </el-col> <el-col :span="2"><el-text>閾濇潯鏂瑰紡锛�</el-text></el-col> @@ -404,32 +460,32 @@ <el-option v-for="item in titleSelectJson['alType']" :key="item.id" :label="item.basicName" - :value="item.id"/> + :value="item.basicName"/> </el-select> </el-col> </el-row> <el-row> <el-col :span="2"><el-text>鎬婚噾棰濓細</el-text></el-col> - <el-col :span="2"><el-text /></el-col> + <el-col :span="2"><el-text >{{titleUploadData.money}}</el-text></el-col> <el-col :span="2"><el-text>鍚堝悓缂栧彿锛�</el-text></el-col> - <el-col :span="2"><el-input/></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.contractId"/></el-col> <el-col :span="2"><el-text>瀹㈡埛鎵规锛�</el-text></el-col> - <el-col :span="2"><el-text /></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.customerBatch"/></el-col> <el-col :span="2"><el-text>鑱旂郴浜猴細</el-text></el-col> - <el-col :span="2"><el-input/></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.contacts" /></el-col> <el-col :span="2"><el-text>鑱旂郴鐢佃瘽锛�</el-text></el-col> - <el-col :span="2"><el-input/></el-col> - <el-col :span="2"><el-text>閫佽揣鍦板潃锛�</el-text></el-col> - <el-col :span="2"><el-input/></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.contactNumber"/></el-col> + <el-col :span="2"><el-text >閫佽揣鍦板潃锛�</el-text></el-col> + <el-col :span="2"><el-input v-model="titleUploadData.deliveryAddress"/></el-col> </el-row> - <el-row> - <el-col :span="2"><el-text>鍏朵粬閲戦锛�</el-text></el-col> - <el-col :span="2"><el-text /></el-col> - <el-col :span="2"><el-text>鍏朵粬閲戦澶囨敞锛�</el-text></el-col> - <el-col :span="2"><el-text /></el-col> +<!-- <el-row>--> +<!-- <el-col :span="2"><el-text>鍏朵粬閲戦锛�</el-text></el-col>--> +<!-- <el-col :span="2"><el-text /></el-col>--> +<!-- <el-col :span="2"><el-text>鍏朵粬閲戦澶囨敞锛�</el-text></el-col>--> +<!-- <el-col :span="2"><el-text /></el-col>--> - </el-row> +<!-- </el-row>--> </div> <div class="order-detail"> <vxe-grid @@ -448,7 +504,7 @@ </div> </template> <template #toolbar_buttons> - <vxe-button @click="impotEvent">瀵煎叆</vxe-button> + <vxe-button @click="importEvent">瀵煎叆</vxe-button> </template> -- Gitblit v1.8.0