From 5b7bc2b1d4b2bad72a64651be0607de5cce578e3 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期四, 20 三月 2025 14:54:33 +0800
Subject: [PATCH] 1.新增报工记录页面
---
src/views/workOrder/workOrderList.vue | 338 +++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 260 insertions(+), 78 deletions(-)
diff --git a/src/views/workOrder/workOrderList.vue b/src/views/workOrder/workOrderList.vue
index af688a1..a559944 100644
--- a/src/views/workOrder/workOrderList.vue
+++ b/src/views/workOrder/workOrderList.vue
@@ -8,6 +8,8 @@
<el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>
</div>
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+
<!-- <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>-->
</div>
@@ -168,6 +170,113 @@
fixed
/>
<el-table-column
+ prop="injectnumber"
+ label="娉ㄥ鏈哄彿"
+ show-tooltip-when-overflow
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">{{ row.injectnumber?row.injectnumber:'/' }}</template>
+ </el-table-column>
+ <el-table-column
+ prop="customername"
+ label="瀹㈡埛鍚嶇О"
+ show-tooltip-when-overflow
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">{{ row.customername?row.customername:'/' }}</template>
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="120"
+ />
+ <el-table-column
+ prop="partname"
+ min-width="150"
+ label="浜у搧鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="colour"
+ label="棰滆壊"
+ show-tooltip-when-overflow
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">{{ row.colour?row.colour:'/' }}</template>
+ </el-table-column>
+
+ <el-table-column
+ prop="weight"
+ label="閲嶉噺"
+ show-tooltip-when-overflow
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">{{ row.weight?row.weight:'/' }}</template>
+ </el-table-column>
+
+ <el-table-column
+ prop="totalnumber"
+ label="鎬绘枡"
+ show-tooltip-when-overflow
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">{{ row.totalnumber?row.totalnumber:'/' }}</template>
+ </el-table-column>
+
+ <el-table-column
+ prop="plan_qty"
+ label="宸ュ崟鏁�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="100"
+ />
+ <el-table-column
+ prop="saleOrderCode"
+ label="閿�鍞鍗�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="clerkuser"
+ label="閿�鍞笟鍔″憳"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
prop="status"
label="宸ュ崟鐘舵��"
sortable="custom"
@@ -185,6 +294,21 @@
<div v-if="row.status==='SCHED'">宸叉帓绋�</div>
</template>
</el-table-column>
+
+ <el-table-column
+ prop="wotype"
+ label="鍗曟嵁绫诲瀷"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
+ <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+
<el-table-column
prop="wo_code"
label="宸ュ崟缂栧彿"
@@ -204,76 +328,7 @@
<div v-else>/</div>
</template>
</el-table-column>
- <el-table-column
- prop="saleOrderCode"
- label="閿�鍞鍗�"
- sortable="custom"
- show-tooltip-when-overflow
- min-width="160"
- >
- <template slot-scope="{row}">
- <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="wotype"
- label="鍗曟嵁绫诲瀷"
- sortable="custom"
- show-tooltip-when-overflow
- min-width="120"
- >
- <template slot-scope="{row}">
- <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
- <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="partcode"
- label="浜у搧缂栫爜"
- show-tooltip-when-overflow
- sortable="custom"
- min-width="120"
- />
- <el-table-column
- prop="partname"
- min-width="150"
- label="浜у搧鍚嶇О"
- show-tooltip-when-overflow
- sortable="custom"
- />
- <el-table-column
- prop="partspec"
- label="浜у搧瑙勬牸"
- sortable="custom"
- width="110"
- show-tooltip-when-overflow
- >
- <template slot-scope="{row}">
- <div v-if="row.partspec">{{ row.partspec }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="plan_qty"
- label="宸ュ崟鏁�"
- sortable="custom"
- show-tooltip-when-overflow
- width="100"
- />
- <el-table-column
- prop="clerkuser"
- label="閿�鍞笟鍔″憳"
- sortable="custom"
- show-tooltip-when-overflow
- width="150"
- >
- <template slot-scope="{row}">
- <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
+
<el-table-column
prop="wkshp_name"
label="鐢熶骇杞﹂棿"
@@ -348,7 +403,7 @@
:style="{color:$store.state.settings.theme}"
class="el-icon-printer"
style="cursor: pointer;margin-right: 15px"
- @click.stop="handlePrint(row.wo_code)"
+ @click.stop="handlePrint(row)"
/>
</el-tooltip>
@@ -503,7 +558,7 @@
:title="operation==='add'?'鏂板':(operation==='edit'?'淇敼':'璇︽儏')"
:visible.sync="dialogVisible"
width="1200px"
- top="8vh"
+ top="3vh"
:close-on-click-modal="false"
@closed="handleClose"
@close="handleClose"
@@ -655,6 +710,35 @@
placeholder="閫夋嫨鏃ユ湡"
/>
<!-- :disabled="dialogForm.deliverydate"-->
+ </el-form-item>
+
+ <el-form-item label="娉ㄥ鏈哄彿">
+ <el-input v-model="dialogForm.injectnumber" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瀹㈡埛鍚嶇О">
+ <el-select
+ v-model="dialogForm.customercode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨瀹㈡埛"
+ >
+ <el-option
+ v-for="item in customerArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="棰滆壊">
+ <el-input v-model="dialogForm.colour" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閲嶉噺">
+ <el-input v-model="dialogForm.weight" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鎬绘枡">
+ <el-input v-model="dialogForm.totalnumber" style="width: 200px" />
</el-form-item>
<el-divider content-position="left">宸ュ簭淇℃伅</el-divider>
@@ -1273,6 +1357,23 @@
</el-form-item>
<el-form-item label="宸ュ崟鏁伴噺:" class="formContent">
{{ formApprove.plan_qty }}
+ </el-form-item>
+
+ <el-form-item label="娉ㄥ鏈哄彿:" class="formContent">
+ {{ formApprove.injectnumber }}
+ </el-form-item>
+ <el-form-item label="瀹㈡埛鍚嶇О:" class="formContent">
+ {{ formApprove.customername }}
+ </el-form-item>
+ <el-form-item label="棰滆壊:" class="formContent">
+ {{ formApprove.colour }}
+ </el-form-item>
+
+ <el-form-item label="閲嶉噺:" class="formContent">
+ {{ formApprove.weight }}
+ </el-form-item>
+ <el-form-item label="鎬绘枡:" class="formContent">
+ {{ formApprove.totalnumber }}
</el-form-item>
<!-- <el-form-item label="宸ヨ壓璺嚎:" class="formContent">-->
<!-- {{ formApprove.routename }}-->
@@ -1981,15 +2082,16 @@
import {
AddMesOrderCodeSearch,
AddUpdateMesOrder, DeleteMesOrder,
- MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent,
+ MesBadOrderSearch, MesOrderDistribution, MesOrderExcelSearch, MesOrderNewStepContent,
MesOrderSearch,
UpdateMesOrderStepSearch
} from '@/api/WorkOrder'
import { PartSelect } from '@/api/ProductModel'
-import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
+import { CustomerPermissions, PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
import Sortable from 'sortablejs'
import ElDragSelect from '@/components/DragSelect'
-import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
+import { MesOrderPrintSearch } from '@/api/GridReport'
+import { GroupSalaryReportExcelSearch } from '@/api/ReportManager' // base on element-ui
export default {
name: 'WorkOrderList',
@@ -2055,8 +2157,17 @@
deliverydate: '', // 浜や粯鏃堕棿
data_sources: '', // 鏁版嵁鏉ユ簮
+ injectnumber: '', // 娉ㄥ鏈哄彿
+ customercode: '', // 瀹㈡埛缂栫爜
+ customername: '', // 瀹㈡埛鍚嶇О
+ colour: '', // 棰滆壊
+
+ weight: '', // 閲嶉噺
+ totalnumber: '', // 鎬绘枡
+
mesmaxqty: 0// 宸ュ崟鐨勬渶澶у��
},
+ customerArr: [],
ordertypeArr: [// 宸ュ崟绫诲瀷
{ code: 'PO', name: '鏍囧噯宸ュ崟' },
{ code: 'FO', name: '鎶ュ簾琛ュ崟' }
@@ -2103,6 +2214,21 @@
],
bomId: [
{ required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] }
+ ],
+ injectnumber: [
+ { required: true, message: '璇疯緭鍏ユ敞濉戞満鍙�', trigger: ['blur', 'change'] }
+ ],
+ customercode: [
+ { required: true, message: '璇烽�夋嫨瀹㈡埛', trigger: ['blur', 'change'] }
+ ],
+ colour: [
+ { required: true, message: '璇疯緭鍏ラ鑹�', trigger: ['blur', 'change'] }
+ ],
+ weight: [
+ { required: true, message: '璇疯緭鍏ラ噸閲�', trigger: ['blur', 'change'] }
+ ],
+ totalnumber: [
+ { required: true, message: '璇疯緭鍏ユ�绘枡', trigger: ['blur', 'change'] }
]
},
@@ -2276,6 +2402,32 @@
// })
},
methods: {
+ async download() {
+ // let tempDate = this.form.operdate
+ // if (tempDate.length > 0) {
+ // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ // }
+ const data = {
+ wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜
+ mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜
+ mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿
+ partcode: this.form.partcode, // 浜у搧缂栫爜
+ ordertype: this.form.ordertype, // ordertype
+ sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿
+ saleordercode: this.form.saleordercode, // 閿�鍞鍗�
+ partname: this.form.partname, // 浜у搧鍚嶇О
+ partspec: this.form.partspec, // 浜у搧瑙勬牸
+ creatuser: this.form.creatuser, // 鍒涘缓浜哄憳
+ createdate: this.form.createdate ? handleDatetime(this.form.createdate) : '' // 鍒涘缓鏃堕棿
+ }
+
+ const { data: res } = await MesOrderExcelSearch(data)
+ window.location.href = res
+ },
+ async getCustomerPermissions() {
+ const { data: res } = await CustomerPermissions()
+ this.customerArr = res
+ },
setSort() {
const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
this.sortable = Sortable.create(el, {
@@ -2304,6 +2456,7 @@
if (res.code === '200') {
this.getSelect()
this.getPrentOrganizationNoCompany()
+ this.getCustomerPermissions()
}
})
},
@@ -2401,6 +2554,7 @@
this.form.sourceorder = ''
this.form.ordertype = ''
this.form.createdate = ''
+ this.form.saleordercode = ''
this.getMesOrderSearch()
},
// 鏂板鎸夐挳
@@ -2504,6 +2658,13 @@
this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
this.dialogForm.mesqty = row.plan_qty
+ this.dialogForm.injectnumber = row.injectnumber
+ this.dialogForm.customercode = row.customercode
+ this.dialogForm.colour = row.colour
+
+ this.dialogForm.weight = row.weight
+ this.dialogForm.totalnumber = row.totalnumber
+
const data = {
sourceid: this.dialogForm.sourceorderid,
sourcewo: this.dialogForm.sourceorder,
@@ -2601,7 +2762,13 @@
wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
deliverydate: '', // 浜や粯鏃堕棿
- data_sources: '' // 鏁版嵁鏉ユ簮
+ data_sources: '', // 鏁版嵁鏉ユ簮
+
+ injectnumber: '',
+ customercode: '',
+ colour: '',
+ weight: '',
+ totalnumber: ''
}
this.stepSelectedValue = []
this.stepTableData = []
@@ -2650,6 +2817,15 @@
wkshopcode: this.dialogForm.wkshopcode,
woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺
deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿
+
+ injectnumber: this.dialogForm.injectnumber,
+ customercode: this.dialogForm.customercode,
+ customername: this.customerArr.find(i => i.code === this.dialogForm.customercode).name,
+ colour: this.dialogForm.colour,
+
+ weight: this.dialogForm.weight,
+ totalnumber: this.dialogForm.totalnumber,
+
data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮
isstep: workListSub.length > 0 ? 'Y' : 'N', //
workListSub
@@ -2717,13 +2893,13 @@
this.dialogVisibleSearch = false
},
// 澶勭悊鎵撳嵃
- handlePrint(wo_code) {
+ handlePrint(row) {
// const number = Math.random() * Math.random()
// this.number = number === 0 ? (10 + Math.random()) : number
// console.log(number)
const data2 = {
- mesordercode: wo_code || this.dialogForm.mesordercode
+ mesordercode: row.wo_code || this.dialogForm.mesordercode
}
MesOrderPrintSearch(data2).then(res2 => {
if (res2.code === '200') {
@@ -2739,6 +2915,12 @@
this.formApprove.routename = localStorage.getItem('username') // 鎵撳嵃浜哄憳
this.formApprove.lm_date = res3[0].lm_date
+ this.formApprove.injectnumber = row.injectnumber || '/'
+ this.formApprove.customername = row.customername || '/'
+ this.formApprove.colour = row.colour || '/'
+ this.formApprove.weight = row.weight || '/'
+ this.formApprove.totalnumber = row.totalnumber || '/'
+
this.$nextTick(() => {
res3.forEach(i => {
this.bindQRCode(i.seq, i.stepqrcode, 'small')
--
Gitblit v1.9.3