From 7e460156de73171f9660ce48f80703e79f8b478d Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期六, 14 六月 2025 11:48:26 +0800 Subject: [PATCH] 初始化提交 --- src/views/out_operation/index.vue | 816 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 656 insertions(+), 160 deletions(-) diff --git a/src/views/out_operation/index.vue b/src/views/out_operation/index.vue index f13290b..0a66a7f 100644 --- a/src/views/out_operation/index.vue +++ b/src/views/out_operation/index.vue @@ -1,90 +1,285 @@ <template> - <div class="addOperation"> - <div class="addOperation-main"> - <!-- <el-form v-model="statusType" ref="queryForm" size="small" :inline="true" label-width="68px"> - <el-form-item label="鍏ュ簱鐘舵��"> - <el-radio-group v-model="inStatus"> - <el-radio-button label="鍏ㄩ儴"></el-radio-button> - <el-radio-button label="宸插叆搴�"></el-radio-button> - <el-radio-button label="宸插嚭搴�"></el-radio-button> - </el-radio-group> - </el-form-item> - <el-form-item label="鍏ュ簱绫诲瀷" prop="phonenumber"> - <el-radio-group v-model="inType"> - <el-radio-button label="鏉$爜鎵撳嵃"></el-radio-button> - </el-radio-group> - </el-form-item> - <el-form-item label="鏉$爜鎵撳嵃"> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鏂板鏉$爜鎵撳嵃</el-button> - </el-form-item> - </el-form> --> - <el-row type="flex" align="middle" class="main-top"> - <el-col :span="2"><el-button type="primary">鎵弿鍑哄簱</el-button></el-col> - <el-col :span="20"> - <TableSearch></TableSearch> - </el-col> - <el-col :span="2"><el-button>鎶艰繍鍗曟墦鍗�</el-button></el-col> - </el-row> - <el-table - :stripe="true" - :data="tableData" - :cell-style="{ textAlign: 'center' }" - :header-cell-style="{ textAlign: 'center' }" - :border="true" - header-row-class-name="table-header" - > - <el-table-column - prop="date" - label="搴忓彿"> - </el-table-column> - <el-table-column - prop="name" - label="浜у搧缂栫爜"> - </el-table-column> - <el-table-column - prop="address" - label="浜у搧鍚嶇О"> - </el-table-column> - <el-table-column - prop="date" - label="瑙勬牸鍨嬪彿"> - </el-table-column> - <el-table-column - prop="date" - label="鍗曚綅"> - </el-table-column> - <el-table-column - prop="date" - label="鍏ュ簱鏁伴噺"> - </el-table-column> - <el-table-column - prop="date" - label="鍏ュ簱浜�"> - </el-table-column> - <el-table-column - prop="date" - label="鍏ュ簱鏃ユ湡"> - </el-table-column> - </el-table> - </div> - <div class="addOperation-foot"> - <el-pagination - :current-page="searchModel.pageNo" - :page-sizes="[10, 15, 20, 25]" - :page-size="searchModel.pageSize" - layout="->, total, sizes, prev, pager, next, jumper" - :total="total" - @size-change="handleSizeChange" - @current-change="handleCurrentChange" + <div class="outOperation"> + <div class="outOperation-main"> + <el-row type="flex" align="middle" class="main-top"> + <el-col :span="2"><el-button type="primary" icon="iconfont icon-saoyisao" @click="scan">鏂板鍑哄簱</el-button></el-col> + <el-col :span="20"> + <TableSearch :show="true" :excel-name="'搴撳瓨琛�'" :file="outFile" :get-list="getList" :search-data="searchData" :search-params="searchModel" :options="options" /> + </el-col> + <!-- <el-col :span="2"><el-button type="primary" @click="printOrder ">鎵撳嵃鎶艰繍鍗�</el-button></el-col> --> + <el-col :span="2"><el-button type="primary" :disabled="outTable.length==0" @click="printOrder ">鎵撳嵃鎶艰繍鍗�</el-button></el-col> + </el-row> + <el-table + class="tableData" + :row-class-name="onTableRowClassName" + :row-style="{height:0+'px'}" + :cell-style="{padding:8+'px',textAlign: 'center'}" + :header-cell-style="{borderRight:'0px',textAlign: 'center',background:'#52626F',color:'#fff', height:'10px', padding:'0px'}" + :stripe="true" + :data="tableData" + :border="true" + header-row-class-name="table-header" + @selection-change="handleSelectionChange" > - </el-pagination> + <el-table-column + label="澶氶��" + type="selection" + width="55" + > + <!-- <el-checkbox></el-checkbox> --> + </el-table-column> + <el-table-column + prop="productCode" + label="浜у搧缂栫爜" + /> + <el-table-column + prop="productName" + label="浜у搧鍚嶇О" + /> + <el-table-column + prop="productModel" + label="瑙勬牸鍨嬪彿" + > + <template slot="header" slot-scope="scope"> + <span>瑙勬牸鍨嬪彿</span> + <span :class="isMerge?'el-icon-sort-up':'el-icon-sort-down'" :style="{marginLeft:'5px'}" @click="merge" /> + </template> + </el-table-column> + <el-table-column + prop="unit" + label="鍗曚綅" + /> + <el-table-column + prop="incomingQuantity" + label="鍏ュ簱鏁伴噺" + /> + <el-table-column + prop="addPerson" + label="鍏ュ簱浜�" + /> + <el-table-column + v-if="!isMerge" + prop="createTime" + label="鍑哄簱鏃ユ湡" + /> + </el-table> + <div class="outOperation-foot"> + <el-pagination + :current-page="searchModel.pageNo" + :page-sizes="[10, 15, 20, 25]" + :page-size="searchModel.pageSize" + layout="->, total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> </div> + + <el-dialog title="鎵弿鍑哄簱" :visible.sync="outFormVisible"> + <el-form :model="outParams" label-position="left"> + <el-table + :height="250" + :max-height="250" + :row-class-name="onTableRowClassName" + :row-style="{height:0+'px'}" + :cell-style="{padding:8+'px',textAlign: 'center'}" + :header-cell-style="{borderRight:'0px',textAlign: 'center',background:'#52626F',color:'#fff', height:'10px', padding:'0px'}" + :stripe="true" + :border="true" + header-row-class-name="table-header" + :data="this.outTable.slice(0,outPageParams.length)" + > + <el-table-column property="addPerson" label="搴忓彿" /> + <el-table-column property="productCode" label="浜у搧缂栫爜" /> + <el-table-column property="productNameId" label="浜у搧鍚嶇О" /> + <el-table-column property="productModelId" label="瑙勬牸鍨嬪彿" /> + <el-table-column property="unit" label="鍗曚綅" /> + <el-table-column property="incomingQuantity" label="鍏ュ簱鏁伴噺" /> + <el-table-column property="addPerson" label="鍏ュ簱浜�" /> + <!-- <el-table-column property="address" label="鍏ュ簱鏃ユ湡"></el-table-column> --> + </el-table> + <div :style="{display: 'flex',justifyContent:'center',marginTop: '10px'}"> + <el-pagination + :current-page="outPageParams.pageNo" + :page-sizes="[3, 4, 5, 6]" + :page-size="outPageParams.pageSize" + layout="->, total, sizes, prev, pager, next, jumper" + :total="outTable.length" + @size-change="outHandleSizeChange" + @current-change="outHandleCurrentChange" + /> + </div> + + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="orderFormVisible = true">鐢熸垚鎶艰繍鍗�</el-button> + <el-button @click="outFormVisible = false">鍙� 娑�</el-button> + </div> + </el-dialog> + <el-dialog title="鎶艰繍鍗曟墦鍗�" :visible.sync="orderFormVisible" @close="orderFormClose"> + <div id="order"> + <el-form label-position="right" :model="orderParams"> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="璁㈠崟鍙�:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.orderNumber" autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鎶艰繍鍗曠紪鍙�:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.escortNoteNumber" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="瀹㈡埛璁㈠崟鍙�:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.customerOrderNumber" autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鍙戣揣鏃ユ湡:" :label-width="formLabelWidth"> + <el-date-picker + v-model="orderParams.createTime" + format="yyyy-MM-dd HH:mm" + type="datetime" + placeholder="閫夋嫨鏃ユ湡鏃堕棿" + /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="瀹㈡埛鍚嶇О:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.customerName" autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鍙戣揣浜�:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.consignor" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col> + <el-form-item label="鍒拌揣鍦板潃:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.arrivalAddress" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col> + <el-form-item label="鏀惰揣鑱旂郴浜�:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.receivingContact" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col> + <el-form-item label="鎵嬫満鍙�:" :label-width="formLabelWidth"> + <el-input v-model="orderParams.cellPhoneNumber" autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> + <el-col> + + <el-form-item> + <el-table + :row-class-name="onTableRowClassName" + :row-style="{height:0+'px'}" + :cell-style="{padding:8+'px',textAlign: 'center'}" + :header-cell-style="{borderRight:'0px',textAlign: 'center',background:'#52626F',color:'#fff', height:'10px', padding:'0px'}" + :stripe="true" + :border="true" + :data="outTable" + > + <el-table-column property="productName" label="浜у搧鍚嶇О" /> + <el-table-column property="productModel" label="瑙勬牸鍨嬪彿" /> + <el-table-column property="unit" label="鍗曚綅" /> + <el-table-column property="incomingQuantity" label="鍙戝簱鏁伴噺" /> + </el-table> + </el-form-item> + + </el-col> + </el-row> + </el-form> + </div> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="goToPrint">鎵� 鍗�</el-button> + <el-button @click="orderFormVisible = false">鍙� 娑�</el-button> + </div> + </el-dialog> + <el-dialog title="鎶艰繍鍗曟墦鍗�" :visible.sync="templateOrderVisible" @close="templateOrderClose"> + <div id="templateOrder" class="templateOrder"> + <h3>鎶艰繍鍗�</h3> + <div class="templateOrder-main"> + <div class="main-row"> + <div class="flex-2">璁㈠崟鍙凤細</div> + <div class="flex-8">{{ orderParams.orderNumber }}</div> + <div class="flex-2">鎶艰繍鍗曠紪鍙凤細</div> + <div class="flex-8">{{ orderParams.escortNoteNumber }}</div> + </div> + <div class="main-row"> + <div class="flex-2">瀹㈡埛璁㈠崟鍙凤細</div> + <div class="flex-8">{{ orderParams.customerOrderNumber }}</div> + <div class="flex-2">鍙戣揣鏃ユ湡锛�</div> + <div class="flex-8">{{ orderParams.createTime }}</div> + </div> + <div class="main-row"> + <div class="flex-2">瀹㈡埛鍚嶇О锛�</div> + <div class="flex-8">{{ orderParams.customerName }}</div> + <div class="flex-2">鍙戣揣浜猴細</div> + <div class="flex-8">{{ orderParams.consignor }}</div> + </div> + <div class="main-row"> + <div class="flex-2">鍒拌揣鍦板潃锛�</div> + <div class="flex-18">{{ orderParams.arrivalAddress }}</div> + </div> + <div class="main-row"> + <div class="flex-2">鏀惰揣鑱旂郴浜猴細</div> + <div class="flex-18">{{ orderParams.receivingContact }}</div> + </div> + <div class="main-row"> + <div class="flex-2">鎵嬫満鍙凤細</div> + <div class="flex-18">{{ orderParams.cellPhoneNumber }}</div> + </div> + <div class="main-row"> + <!-- <div class="flex-2">鎵嬫満鍙�</div> --> + <div class="flex-18" :style="{'textAlign': 'center'}"> + <h4>浜у搧鍒楄〃</h4> + </div> + </div> + <div class="main-row"> + <div class="flex-4">浜у搧鍚嶇О</div> + <div class="flex-4">瑙勬牸鍨嬪彿</div> + <div class="flex-4">鍗曚綅</div> + <div class="flex-4">鍙戣揣鏁伴噺</div> + </div> + <div v-for="item in outTable" :key="item.id" class="main-row"> + <div class="flex-4">{{ item.productName }}</div> + <div class="flex-4">{{ item.productModel }}</div> + <div class="flex-4">{{ item.unit }}</div> + <div class="flex-4">{{ item.incomingQuantity }}</div> + </div> + </div> + </div> + <div slot="footer" class="dialog-footer"> + <el-button v-print="printObj" type="primary">鎸夋ā鏉挎墦鍗�</el-button> + <el-button @click="templateOrderVisible = false">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> </template> <script> -import { getList } from '@/api/table' +import { getList, selectCacheOfIn, outOperation, outFile } from '@/api/addOperation' +import { selectAllName } from '@/api/productName' +import { selectAllModel } from '@/api/productModel' import TableSearch from '@/components/TableSearch' +import { mapGetters } from 'vuex' export default { filters: { statusFilter(status) { @@ -96,88 +291,302 @@ return statusMap[status] } }, - data() { - return { - pickerOptions: { - shortcuts: [{ - text: '鏈�杩戜竴鍛�', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', [start, end]); - } - }, { - text: '鏈�杩戜竴涓湀', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit('pick', [start, end]); - } - }, { - text: '鏈�杩戜笁涓湀', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); - picker.$emit('pick', [start, end]); - } - }] - }, - inType: '', - inStatus: '', - deptName: '', - statusType: {}, - queryParams: { - encode: '', - type: '', - depositor: '' - }, - total: 0, - searchModel: { - pageNo: 1, - pageSize: 10 - }, - tableData: [{ - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�' - }, { - date: '2016-05-01', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' - }] - } - }, - created() { - this.fetchData() - }, components: { TableSearch }, + data() { + return { + templateOrderVisible: false, + outFile, + printObj: { + id: 'templateOrder', // 鎵撳嵃鐨勫尯鍩� + // preview: true, // 棰勮宸ュ叿鏄惁鍚敤 + previewTitle: '鎵撳嵃鎶艰繍鍗�', // 棰勮椤甸潰鐨勬爣棰� + previewBeforeOpenCallback(vue) { + console.log('姝e湪鍔犺浇棰勮绐楀彛') + }, + previewOpenCallback(vue) { + console.log('宸茬粡鍔犺浇瀹岄瑙堢獥鍙�') + }, + clickMounted: (vue) => { + console.log('瑙﹀彂鐐瑰嚮鎵撳嵃鍥炶皟') + vue.isShowPrint = true // 寮规鏄剧ず鏉$爜 + }, + beforeOpenCallback(vue) { + console.log('鎵撳紑涔嬪墠', vue.barcodeNum) + }, + openCallback(vue) { + // let time =vue.orderParams.createTime + // vue.orderParams.createTime = `${time.getFullYear()}-${time.getMonth() + 1}-${time.getDate()} ${time.getHours()}:${time.getMinutes()}` + // vue.orderParams.listId = vue.outCodeTable + // vue.orderParams.outPerson = vue.name + // outOperation(vue.orderParams).then((res) => { + // vue.$message.success("鎴愬姛鍑哄簱") + // vue.isShowPrint = false // 鍏抽棴鏉$爜鏄剧ず寮规 + // }) + console.log('鎵ц浜嗘墦鍗�', vue.barcodeNum) + }, + clickMounted(vue) { + console.log(1111) + console.log(vue.orderParams.createTime) + outOperation({ ...vue.orderParams, outPerson: vue.name, listCode: vue.outCodeTable }).then((res) => { + vue.orderFormVisible = false + vue.outCodeTable = [] + vue.outTable = [] + vue.tableData = [] + vue.fetchData() + console.log('娓呯┖鏁版嵁锛屽悓鏃跺埛鏂版暟鎹�') + vue.$message.success('鎴愬姛鍑哄簱') + vue.fetchData() + vue.isShowPrint = false // 鍏抽棴鏉$爜鏄剧ず寮规 + }, () => { + vue.$message.err('璇烽噸鏂版墦鍗�') + }).finally(() => { + vue.templateOrderVisible = false + vue.orderParams = {} + }) + + console.log('鎵ц浜嗘墦鍗�', vue.barcodeNum) + } + }, + outPageParams: { + pageNo: 1, + pageSize: 3 + }, + isMerge: false, + outTable: [], + outCodeTable: [], + outParams: {}, + outFormVisible: false, + getList, + total: 0, + options: [], + searchModel: { + pageNo: 1, + pageSize: 10, + productModel: '', + endTime: '', + startTime: '' + }, + formLabelWidth: '120px', + orderFormVisible: false, + orderParams: { + orderNumber: '', + escortNoteNumber: '', + customerOrderNumber: '', + createTime: '', + customerName: '', + consignor: '', + arrivalAddress: '', + receivingContact: '', + cellPhoneNumber: '' + }, + total: 0, + tableData: [], + contentTable: [], + isScan: false + } + }, + watch: { + isScan(to) { + + } + }, + created() { + + this.fetchData() + this.setOptions() + }, + beforeDestroy() { + window.document.onkeypress = null + }, methods: { + templateOrderClose() { + this.orderFormClose() + }, + orderFormClose() { + // 鍏抽棴鎵撳嵃鎶艰繍鍗曡緭鍏ュ脊绐楁竻绌烘暟鎹� + for (const key in this.orderParams) { + this.orderParams[key] = '' + } + // this.outTable = [] + }, + goToPrint() { + let ok = false + for (const key in this.orderParams) { + if (!this.orderParams[key]) { + ok = true + } + } + if (ok) { + return this.$message.error('璇峰~鍐欏畬鏁村弬鏁�') + } + + console.log('闇�瑕佹墦鍗扮殑鍙傛暟', this.orderParams) + const time = this.orderParams.createTime + this.orderParams.createTime = `${time.getFullYear()}-${time.getMonth() + 1 < 10 ? '0' + (time.getMonth() + 1) : time.getMonth() + 1}-${time.getDate() < 10 ? '0' + time.getDate() : time.getDate()} ${time.getHours() < 10 ? '0' + time.getHours() : time.getHours()}:${time.getMinutes() < 10 ? '0' + time.getMinutes() : time.getMinutes()}` + console.log('闇�瑕佹墦鍗扮殑涓滆タ==>', this.outTable) + // this.orderFormVisible = false + this.templateOrderVisible = true + }, + merge() { + this.isMerge = !this.isMerge + if (this.isMerge) { + this.contentTable = JSON.parse(JSON.stringify(this.tableData)) + } else { + this.tableData = JSON.parse(JSON.stringify(this.contentTable)) + return + } + + this.tableData = this.tableData.reduce((arr, next) => { + for (const item of arr) { + if (item.productModel === next.productModel) { + item.children.push(next.id) + item.incomingQuantity = item.incomingQuantity + next.incomingQuantity + return arr + } + } + next.children = [next.id] + arr.push(next) + return arr + // arr.push(next) + }, []) + console.log(this.tableData) + }, + printOrder() { + console.log(this.outCodeTable, this.outTable) + this.orderFormVisible = true + }, + addScanMonitor() { + window.document.onkeypress = e => { + console.log(e) + if (window.event) { // IE + this.nextCode = e.keyCode + } else if (e.which) { // Netscape/Firefox/Opera + this.nextCode = e.which + } + + if (e.which === 13) { // 閿洏鍥炶溅浜嬩欢 + // if (this.code.length < 3) return // 鎵爜鏋殑閫熷害寰堝揩锛屾墜鍔ㄨ緭鍏ョ殑鏃堕棿涓嶄細璁ヽode鐨勯暱搴﹀ぇ浜�2锛屾墍浠ヨ繖閲屼笉浼氬鎵爜鏋湁鏁� + console.log(new Date().getTime()) + if (new Date().getTime() - this.lastTime > 30) { + return this.$message.error('鎵爜鏃朵笉鍙�氳繃閿洏杈撳叆') + } + // if (this.code.length < 3) return // 鎵爜鏋殑閫熷害寰堝揩锛屾墜鍔ㄨ緭鍏ョ殑鏃堕棿涓嶄細璁ヽode鐨勯暱搴﹀ぇ浜�2锛屾墍浠ヨ繖閲屼笉浼氬鎵爜鏋湁鏁� + console.log('鎵爜缁撴潫,鏉″舰鐮侊細', this.code) + for (const item of this.tableData) { + if (item.id == this.code) { + this.$message.error('璇峰嬁閲嶅鎵弿') + this.handleSubmitScanning() + return + } + } + // 鍙戦�佽姹� + selectCacheOfIn({ code: this.code }).then(res => { + this.$message.success(`${this.code}鎵弿鎴愬姛`) + const { data } = res + if (data) this.tableData.push(data) + }) + this.scanningForm.scanCode = this.code + this.lastCode = '' + this.lastTime = '' + this.handleSubmitScanning() + return + } + + this.nextTime = new Date().getTime() + if (!this.lastTime && !this.lastCode) { + this.code = '' // 娓呯┖涓婃鐨勬潯褰㈢爜 + // 缁х画鎵弿涓�涓嬫潯鍓嶅叧闂脊绐� + // this.handleCloseTipsVisible() + this.code = this.code + '' + e.key + console.log('鎵爜寮�濮�---', this.code) + } + if (this.lastCode && this.lastTime && this.nextTime - this.lastTime > 500) { // 褰撴壂鐮佸墠鏈塳eypress浜嬩欢鏃�,闃叉棣栧瓧缂哄け + this.code = e.key + console.log('闃叉棣栧瓧缂哄け銆傘�傘��', this.code) + } else if (this.lastCode && this.lastTime) { + this.code = this.code + '' + e.key + console.log('鎵爜涓�傘�傘��', this.code) + } + this.lastCode = this.nextCode + this.lastTime = this.nextTime + } + }, + handleSelectionChange(val) { + if (this.isMerge) { + console.log(val) + const arrChildren = val.map((item) => item.children) + console.log(arrChildren) + this.outCodeTable = arrChildren.reduce((arr, next) => { + arr = [...arr, ...next] + return arr + }, []) + console.log(this.contentTable, this.outCodeTable) + this.contentTable.forEach(item => { + if (this.outCodeTable.indexOf(item.id) > -1) { + this.outTable.push(item) + } + }) + } else { + this.outTable = val + this.outCodeTable = this.outTable.map(item => item.id) + } + console.log(this.outTable, this.outCodeTable) + }, + scan(e) { + console.log('寮�濮嬫壂鐮佸嚭搴�') + this.$message.success('璇峰紑濮嬫壂鐮佸嚭搴�') + this.tableData = [] + this.addScanMonitor() + e.srcElement.blur() + }, + async setOptions() { + const { data: nameRes } = await selectAllName() + // console.log(nameRes) + const nameArr = nameRes.productNames.map(item => { + return { value: item.id, label: item.productName } + }) + for (const nameItem of nameArr) { + const { data } = await selectAllModel({ productNameId: nameItem.value }) + + this.options = [...this.options, ...data.models] + /* nameItem.children = data.models.map(item => { + return { value: item.id, label: item.productModel } + }) */ + } + this.options = this.options.map(item => { + return { label: item.productModel, value: item.productModel, productCode: item.productCode } + }) + // console.log(this.options) + }, + searchData(res) { + console.log(res) + const { row, total, productModel, startTime, endTime } = res + this.tableData = row + this.total = total + this.searchModel.productModel = productModel + this.searchModel.startTime = startTime + this.searchModel.endTime = endTime + window.document.onkeypress = undefined + }, + onTableRowClassName({ row, rowIndex }) { + if (rowIndex % 2 != 0) { + return 'onAcitve' + } else { + return '' + } + }, fetchData() { this.listLoading = true - getList().then(response => { - this.list = response.data.items + const obj = {} + const arr = Object.keys(this.searchModel).filter(key => this.searchModel[key]) + arr.forEach(item => obj[item] = this.searchModel[item]) + getList(obj).then(response => { + this.tableData = response.data.row + this.total = response.data.total this.listLoading = false + // console.log(this.tableData) }) }, handleSizeChange(val) { @@ -185,31 +594,118 @@ }, handleCurrentChange(val) { console.log(`褰撳墠椤�: ${val}`) + }, + outHandleSizeChange(val) { + console.log(`姣忛〉 ${val} 鏉) + }, + outHandleCurrentChange(val) { + console.log(`褰撳墠椤�: ${val}`) + this.outPageParams.pageNo = val + // this.fetchData() + // console.log() + + // console.log(this.addTable.slice((this.outPageParams.pageSize * (val - 1)), (this.outPageParams.pageSize * (val - 1)) + this.outPageParams.pageSize)) } + }, + computed: { + ...mapGetters([ + 'sidebar', + 'avatar', + 'name', + 'allTab' + ]) } } </script> <style lang="scss" scoped> @import '../../styles/variables.scss'; -.addOperation { - min-height: calc(100vh - 50px); +::v-deep .el-table__header .el-checkbox{ + display:none; +} +::v-deep .tableData .el-table__header th:nth-child(1) .cell::before{ +content: '澶氶��'; +} +.templateOrder{ + border: 1px solid #000; + padding: 8px; + >h3{ + text-align: center; + } + &-main{ + border-top: 1px solid #000; + border-left: 1px solid #000; + .main-row{ + display: flex; + font-size: 12px; + >div{ + border-bottom: 1px solid #000; + border-right: 1px solid #000; + height: 40px; + line-height: 20px; + padding: 10px; + // margin: 24px; + >h4{ + margin: 0; + } + } + .flex-2{ + min-width: 110px; + max-width: 110px; + text-align: right; + padding: 10px 6px; + } + .flex-4{ + flex: 1; + text-align: center; + } + .flex-8{ + flex: 8; + } + .flex-18{ + flex: 18; + } + } + + } +} + +.outOperation { + min-height: calc(100vh - 100px); padding: 25px; background: $mainBg; - .addOperation-main{ + display: flex; + flex-direction: column; + .dialog-footer{ + text-align: center; + display: flex; + justify-content: space-around; + } + .outOperation-main{ background: #fff; padding: 20px; + flex: 1; + display: flex; + flex-direction: column; .main-top{} .table-header{ background: #6095FB; } - } - .addOperation-foot{ + ::v-deep .el-table{ + flex: 1; + // display: flex; + // flex-direction: column; + ::v-deep .onAcitve td{ + background-color: #F2F2F2 !important; + } + } + .outOperation-foot{ margin-top: 25px; .el-pagination{ display: flex; - justify-content: center; + justify-content: right; } } + } } </style> -- Gitblit v1.9.3