| src/api/ReportManager.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/materialManager/inventoryList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/produce/productWarehouse.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/produce/productWarehouse2.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/produce/stepReport.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/statistic/storageRecord.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/statistic/storageRecordBack.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/ReportManager.js
@@ -207,3 +207,30 @@ }) } // T8å ¥åºè®°å½è¡¨å¤´ export function StorageRecordMainSearch(data) { return request({ url: 'ReportManager/StorageRecordMainSearch', method: 'get', params: data }) } // T8å ¥åºè®°å½è¡¨ä½ export function StorageRecordSubSearch(data) { return request({ url: 'ReportManager/StorageRecordSubSearch', method: 'get', params: data }) } // T8å ¥åºè®°å½å é¤ export function StorageRecordDelete(data) { return request({ url: 'ReportManager/StorageRecordDelete', method: 'post', data }) } src/views/materialManager/inventoryList.vue
@@ -1266,10 +1266,10 @@ async getTMaterielClassTree() { const res = await TMaterielClassTree() res.data.forEach(i => { i.code = i.code === '0' ? '-1' : i.code i.idparent = i.idparent === '0' ? '-1' : i.idparent }) // res.data.forEach(i => { // i.code = i.code === '0' ? '-1' : i.code // i.idparent = i.idparent === '0' ? '-1' : i.idparent // }) this.treeLeftArr = res.data // this.treeLeftArr.forEach(e => { @@ -1281,7 +1281,7 @@ childrenProperty: 'children' }) this.$nextTick(() => { this.$refs.treeLeftRef.setCurrentKey('-1') this.$refs.treeLeftRef.setCurrentKey(this.treeLeftArr[0].code) this.getTMaterielData(this.$refs.treeLeftRef.getCurrentNode()) }) }, @@ -1398,7 +1398,7 @@ this.form.partcode = '' this.form.partname = '' this.form.partspec = '' this.$refs.treeLeftRef.setCurrentKey('-1') this.$refs.treeLeftRef.setCurrentKey(this.treeLeftArr[0].code) this.getTMaterielData(this.$refs.treeLeftRef.getCurrentNode()) }, // å¯¹è¯æ¡å ³éäºä»¶ src/views/produce/productWarehouse.vue
@@ -32,6 +32,24 @@ > <div class="elForm" style="display: flex;flex-direction: column;justify-content: flex-start"> <div style="display: flex"> <el-form-item label="å ¥åºé¨é¨" required style="display: flex;"> <el-select v-model="form.deptno" :popper-append-to-body="false" filterable style="width: 200px" placeholder="è¯·éæ©" > <!-- @change="getProductInHouseOrderSearch"--> <el-option v-for="item in departmentArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item label="ç产车é´" style=" display: flex;"> <el-select v-model="form.wkshopcode" @@ -68,6 +86,10 @@ style="width: 200px" /> </el-form-item> </div> <div style="display: flex"> <el-form-item label="éå®è®¢å" style="display: flex;" @@ -78,9 +100,6 @@ style="width: 200px" /> </el-form-item> </div> <div style="display: flex"> <el-form-item label="产åç¼ç " style=" display: flex;"> <el-input v-model="form.partcode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> @@ -155,23 +174,6 @@ </el-select> </el-form-item> <el-form-item label="å ¥åºé¨é¨" required style=" display: flex;"> <el-select v-model="form.deptno" :popper-append-to-body="false" filterable style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in departmentArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> </div> <div class="bodySearchReset" @@ -236,39 +238,6 @@ label="åºå·" /> <!-- <el-table-column--> <!-- prop="stockcode"--> <!-- label="ä»åº"--> <!-- width="160"--> <!-- show-tooltip-when-overflow--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div>{{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}</div>--> <!-- <!– <div–>--> <!-- <!– v-if="!(row.index === tabClickIndex && tabClickLabel === 'ä»åº')"–>--> <!-- <!– >–>--> <!-- <!– {{ row.stockcode ? stockcodeArr.find(i => i.code === row.stockcode).name : '/' }}–>--> <!-- <!– </div>–>--> <!-- <!– <el-select–>--> <!-- <!– v-if="row.index === tabClickIndex && tabClickLabel === 'ä»åº'"–>--> <!-- <!– v-model="row.stockcode"–>--> <!-- <!– placeholder="è¯·éæ©"–>--> <!-- <!– >–>--> <!-- <!– <el-option–>--> <!-- <!– v-for="item in stockcodeArr"–>--> <!-- <!– :key="item.code"–>--> <!-- <!– :label="item.name"–>--> <!-- <!– :value="item.code"–>--> <!-- <!– />–>--> <!-- <!– </el-select>–>--> <!-- </template>--> <!-- </el-table-column>--> <!-- <el-table-column--> <!-- prop="inbarcode"--> <!-- label="å ¥åºæ¡ç "--> <!-- width="160"--> <!-- show-tooltip-when-overflow--> <!-- />--> <el-table-column prop="stockcode" label="å ¥åºä»åº" @@ -429,131 +398,94 @@ </div> </el-tab-pane> <el-tab-pane label="æ±æ»"> <div class="elTableDiv" style="margin: 0 auto 10px;"> <el-table ref="tableDataRef" class="tableFixed" :data="tableDataSummary" :height="(tableHeight-25)+'px'" border :row-class-name="tableRowClassName2" :style="{width: 100+'%',height:(tableHeight-25)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <el-table-column type="index" width="50" fixed label="åºå·" /> <!-- <el-table-column--> <!-- prop="stockcode"--> <!-- label="ä»åº"--> <!-- width="110"--> <!-- <el-tab-pane label="æ±æ»">--> <!-- <div class="elTableDiv" style="margin: 0 auto 10px;">--> <!-- <el-table--> <!-- ref="tableDataRef"--> <!-- class="tableFixed"--> <!-- :data="tableDataSummary"--> <!-- :height="(tableHeight-25)+'px'"--> <!-- border--> <!-- :row-class-name="tableRowClassName2"--> <!-- :style="{width: 100+'%',height:(tableHeight-25)+'px',}"--> <!-- highlight-current-row--> <!-- :header-cell-style="this.$headerCellStyle"--> <!-- :cell-style="this.$cellStyle"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div>{{ stockcodeArr.find(i => i.code === row.stockcode).name }}</div>--> <!-- </template>--> <!-- </el-table-column>--> <!-- <el-table-column--> <!-- type="index"--> <!-- width="50"--> <!-- fixed--> <!-- label="åºå·"--> <!-- />--> <!-- <el-table-column--> <!-- prop="partcode"--> <!-- label="产åç¼ç "--> <!-- min-width="160"--> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="partname"--> <!-- label="产ååç§°"--> <!-- min-width="160"--> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="partspec"--> <!-- label="产åè§æ ¼"--> <!-- min-width="160"--> <!-- show-tooltip-when-overflow--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div v-if="row.stockname">{{ row.stockname }}</div>--> <!-- <div v-else>/</div>--> <!-- </template>--> <!-- </el-table-column>--> <!-- <el-table-column--> <!-- prop="inbarcode"--> <!-- label="å ¥åºæ¡ç "--> <!-- width="160"--> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="m_po"--> <!-- label="订åç¼å·"--> <!-- width="160"--> <!-- prop="qty"--> <!-- label="è®¢åæ°é"--> <!-- min-width="95"--> <!-- show-tooltip-when-overflow--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div v-if="row.m_po">{{ row.m_po }}</div>--> <!-- <div v-if="row.qty">{{ row.qty }}</div>--> <!-- <div v-else>/</div>--> <!-- </template>--> <!-- </el-table-column>--> <!-- <!– <el-table-column–>--> <!-- <!– prop="plan_qty"–>--> <!-- <!– label="工忰é"–>--> <!-- <!– min-width="95"–>--> <!-- <!– fixed="right"–>--> <!-- <!– show-tooltip-when-overflow–>--> <!-- <!– />–>--> <!-- <el-table-column--> <!-- prop="wo_code"--> <!-- label="å·¥åç¼å·"--> <!-- width="160"--> <!-- show-tooltip-when-overflow--> <!-- />--> <el-table-column prop="partcode" label="产åç¼ç " min-width="160" show-tooltip-when-overflow /> <el-table-column prop="partname" label="产ååç§°" min-width="160" show-tooltip-when-overflow /> <el-table-column prop="partspec" label="产åè§æ ¼" min-width="160" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.stockname">{{ row.stockname }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="qty" label="è®¢åæ°é" min-width="95" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.qty">{{ row.qty }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- prop="plan_qty"--> <!-- label="工忰é"--> <!-- prop="good_qty"--> <!-- label="å®å·¥æ°é"--> <!-- min-width="95"--> <!-- fixed="right"--> <!-- show-tooltip-when-overflow--> <!-- />--> <el-table-column prop="good_qty" label="å®å·¥æ°é" min-width="95" <!-- <el-table-column--> <!-- prop="inhouseqty"--> <!-- label="å·²å ¥åºæ°é"--> <!-- min-width="95"--> show-tooltip-when-overflow /> <el-table-column prop="inhouseqty" label="å·²å ¥åºæ°é" min-width="95" <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="stinhouseqty"--> <!-- label="å¯å ¥åºæ°é"--> <!-- min-width="95"--> show-tooltip-when-overflow /> <el-table-column prop="stinhouseqty" label="å¯å ¥åºæ°é" min-width="95" show-tooltip-when-overflow /> </el-table> </div> </el-tab-pane> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- </el-table>--> <!-- </div>--> <!-- </el-tab-pane>--> </el-tabs> </div> @@ -627,7 +559,7 @@ this.getProductInHouseOrderCodeSearch() this.getDeptSelectData() this.getProductInHouseOrderSearch() // this.getProductInHouseOrderSearch() }, methods: { // è·åå ¥åºé¨é¨ @@ -653,6 +585,9 @@ }, // è·å大å表æ¥è¯¢ async getProductInHouseOrderSearch() { if (this.form.deptno === '') { return this.$message.info('å ¥åºé¨é¨ä¸è½ä¸ºç©ºï¼') } const data = { saleordercode: this.form.saleordercode, // éå®åå· wkshopcode: this.form.wkshopcode, // çäº§è½¦é´ @@ -660,7 +595,8 @@ mesordercode: this.form.mesordercode, // å·¥åç¼å· partcode: this.form.partcode, // 产åç¼ç partname: this.form.partname, // 产ååç§° partspec: this.form.partspec // è§æ ¼åå· partspec: this.form.partspec, // è§æ ¼åå· deptno: this.form.deptno// å ¥åºé¨é¨ } const { data: res } = await ProductInHouseOrderSearch(data) @@ -738,14 +674,16 @@ TableDetailData// è¡¨ä½ ] } this.$store.state.app.buttonIsDisabled = true const res = await ProductInHouseOrderSeave(data) this.$store.state.app.buttonIsDisabled = false if (res.code === '200') { this.$message.success('å ¥åºæåï¼') this.multipleSelection = [] this.form.deptno = '' this.form.stockcode = '' await this.getProductInHouseOrderSearch() // this.form.deptno = '' // this.form.stockcode = '' // await this.getProductInHouseOrderSearch() this.reset() await this.getProductInHouseOrderCodeSearch() } }, @@ -758,6 +696,8 @@ this.form.partcode = ''// 产åç¼ç this.form.partname = '' // 产ååç§° this.form.partspec = '' // è§æ ¼åå· this.form.deptno = '' // è§æ ¼åå· this.tableDataDetail = [] }, // è·å页é¢é«åº¦ getHeight() { src/views/produce/productWarehouse2.vue
@@ -657,6 +657,9 @@ }, // è·å大å表æ¥è¯¢ async getProductInHouseOrderSearch() { if (this.form.wkshopcode === '') { return this.$message.info('ç产车é´ä¸è½ä¸ºç©ºï¼') } const data = { saleordercode: this.form.saleordercode, // éå®åå· wkshopcode: this.form.wkshopcode, // çäº§è½¦é´ @@ -664,8 +667,8 @@ mesordercode: this.form.mesordercode, // å·¥åç¼å· partcode: this.form.partcode, // 产åç¼ç partname: this.form.partname, // 产ååç§° partspec: this.form.partspec // è§æ ¼åå· partspec: this.form.partspec, // è§æ ¼åå· deptno: ''// å ¥åºé¨é¨ } const { data: res } = await ProductInHouseOrderSearch(data) this.tableDataDetail = res @@ -765,13 +768,16 @@ } // console.log(JSON.stringify(data)) this.$store.state.app.buttonIsDisabled = true const res = await TProductInHouseOrderSpSeave(data) this.$store.state.app.buttonIsDisabled = false if (res.code === '200') { this.$message.success('å ¥åºæåï¼') this.multipleSelection = [] this.form.deptno = '' this.form.stockcode = '' await this.getProductInHouseOrderSearch() // this.form.deptno = '' // this.form.stockcode = '' this.reset() // await this.getProductInHouseOrderSearch() await this.getProductInHouseOrderCodeSearch() } }, src/views/produce/stepReport.vue
@@ -1410,9 +1410,9 @@ if (res.code === '200') { this.$notify.success('æ¥å·¥æåï¼') if (this.rowData.isend === 'Y') { await this.handleProductInHouseOrderSeave('B', inbarcode) } // if (this.rowData.isend === 'Y') { // await this.handleProductInHouseOrderSeave('B', inbarcode) // } // await this.search() await this.tabClick() @@ -1523,9 +1523,9 @@ const res = await SavaMesOrderStepIn(data) if (res.code === '200') { this.$notify.success('æ¶ææåï¼') if (this.rowData.isend === 'Y') { await this.handleProductInHouseOrderSeave('S', inbarcode) } // if (this.rowData.isend === 'Y') { // await this.handleProductInHouseOrderSeave('S', inbarcode) // } // await this.search() await this.tabClick() this.$store.state.app.buttonIsDisabled = false src/views/statistic/storageRecord.vue
@@ -1,12 +1,13 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button v-waves :disabled="multipleSelection.length===0" type="danger" icon="el-icon-delete" @click="del">å é¤</el-button> <el-button v-waves type="primary" icon="el-icon-download" @click="download">导åº</el-button> </div> <div class="bodyTopFormGroup"> <!-- <div class="bodyTopButtonGroup">--> <!-- <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">æ°å¢</el-button>--> <!-- <el-button v-waves type="success" icon="el-icon-connection" @click="">æ´¾å</el-button>--> <!-- </div>--> <div class="bodyTopFormGroup" style="margin-top: 10px"> <el-form ref="form" :model="form" @@ -15,43 +16,14 @@ style="display: flex;" > <div class="elForm"> <el-form-item label="å ¥åºåå·" style="display: flex;"> <el-input v-model="form.hbillno" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="éå®åå·" style=" display: flex;"> <el-input v-model="form.sono" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="订åå·" style=" display: flex;"> <el-input v-model="form.mono" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="å·¥åå·" style=" display: flex;"> <el-input v-model="form.wocode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç©æç¼ç " style=" display: flex;"> <el-input v-model="form.partcode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç©æåç§°" style=" display: flex;"> <el-input v-model="form.partname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ä»åºç¼ç " style=" display: flex;"> <el-select v-model="form.stockcode" :popper-append-to-body="false" filterable style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in stockcodeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item v-show="isExpandForm" label="åæ®æ¥æ" style="display: flex;align-items: center"> <el-form-item label="åæ®æ¥æ" style="display: flex;align-items: center"> <el-date-picker v-model="form.responddate" v-model="form.hbdate" type="daterange" range-separator="~" class="timeMini" @@ -62,31 +34,52 @@ end-placeholder="ç»ææ¥æ" /> </el-form-item> <el-form-item label="æä½äººå" style="display: flex;"> <el-input v-model="form.username" style="width: 200px" placeholder="请è¾å ¥" /> </el-form-item> <el-form-item label="æä½æ¶é´" style="display: flex;align-items: center"> <el-date-picker v-model="form.userdate" type="daterange" range-separator="~" class="timeMini" size="mini" style="width: 200px;display: flex;line-height: 34px;height: 34px;" :clearable="false" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" /> </el-form-item> </div> <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" > <el-button v-waves type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> <el-button v-waves type="primary" icon="el-icon-search" @click="getStorageRecordMainSearch()">æ¥è¯¢</el-button> <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" > <svg-icon v-show="mouseHoverType==='mouseout'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" @mouseenter="mouseHoverType=$event.type" /> <svg-icon v-show="mouseHoverType==='mouseenter'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown':'doubleUp'" @click="isExpandForm=!isExpandForm" @mouseout="mouseHoverType=$event.type" /> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseout'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"--> <!-- @mouseenter="mouseHoverType=$event.type"--> <!-- />--> <!-- <svg-icon--> <!-- v-show="mouseHoverType==='mouseenter'"--> <!-- style="cursor: pointer"--> <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"--> <!-- @click="isExpandForm=!isExpandForm"--> <!-- @mouseout="mouseHoverType=$event.type"--> <!-- />--> </div> </div> @@ -95,165 +88,63 @@ ref="tableDataRef" class="tableFixed" :data="tableData" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" :height="isExpandForm?tableHeight:(tableHeight+80)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChange" @selection-change="handleSelectionChange" @row-click="rowClick" > <el-table-column type="selection" width="50" fixed /> <el-table-column prop="rowNum" width="50" fixed label="åºå·" fixed /> <el-table-column prop="hbillno" label="å ¥åºåå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="hbilltype" label="åæ®ç±»å" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="hbdate" label="å ¥åºæ¥æ" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="salecode" label="éå®åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="mo_no" label="订åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="wocode" label="å·¥åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partcode" label="ç©æç¼ç " width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partname" label="ç©æåç§°" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partname" label="ç©æåç§°" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partspec" label="è§æ ¼åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="wkshp_name" label="产ååç§°" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partspec" label="产åè§æ ¼" width="120" show-tooltip-when-overflow sortable="custom" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="wkshp_name" label="é¨é¨åç§°" width="130" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="stockname" label="ä»åºåç§°" width="130" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="qty" label="å ¥åºæ°é" width="130" label="åæ®æ¥æ" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="create_user" label="å建人" width="160" show-tooltip-when-overflow label="å建人å" sortable="custom" /> <el-table-column prop="create_date" label="åå»ºæ¥æ" width="160" label="å建æ¶é´" show-tooltip-when-overflow sortable="custom" /> <el-table-column label="æä½" width="120" width="160" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> <!-- <el-tooltip class="item" effect="dark" content="ç¼è¾" placement="top">--> <!-- <i--> <!-- v-if="row.leve!==0"--> <!-- class="el-icon-edit-outline"--> <!-- :style="{color:$store.state.settings.theme}"--> <!-- @click="edit('edit',row)"--> <!-- />--> <!-- </el-tooltip>--> <el-tooltip v-del-tab-index class="item" effect="dark" content="å é¤" placement="top"> <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" /> <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" /> </el-tooltip> </div> </template> @@ -266,191 +157,332 @@ :page.sync="form.page" :limit.sync="form.rows" align="right" layout="total,prev, pager, next,sizes" layout="total,prev, pager, next,sizes,jumper" popper-class="select_bottom" @pagination="getStorageRecordSearch" @pagination="getStorageRecordMainSearch" /> </div> <el-dialog v-el-drag-dialog :title="operation==='add'?'æ°å¢':'人åæç»'" :visible.sync="dialogVisible" width="800px" :close-on-click-modal="false" top="15vh" @closed="handleClose" @close="handleClose" <div class="elTableDiv"> <el-table ref="tableDataRef2" :data="tableDataDetail" border height="210px" :row-class-name="tableRowClassName" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" > <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px"> <el-tag v-for="tag in tagArr" :key="tag.name" type="success" style="margin-right: 15px;min-width: 80px;text-align: center" > {{ tag }} </el-tag> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button v-waves @click="dialogVisible=false">è¿ å</el-button> <!-- <el-button v-waves @click="dialogVisibleCancel">å æ¶</el-button>--> <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button>--> </div> </span> </el-dialog> <!--å¯¼å ¥ç»ä»¶--> <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" <el-table-column width="50" prop="rownumber" label="åºå·" fixed /> <el-table-column prop="stockname" label="å ¥åºä»åº" width="160" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.stockname">{{ row.stockname }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="salecode" label="éå®åå·" min-width="160" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.salecode">{{ row.salecode }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="mo_no" label="订åç¼å·" min-width="160" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.mo_no">{{ row.mo_no }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="wocode" label="å·¥åç¼å·" min-width="160" show-tooltip-when-overflow /> <el-table-column prop="partcode" label="产åç¼ç " width="160" show-tooltip-when-overflow /> <el-table-column prop="partname" label="产ååç§°" width="160" show-tooltip-when-overflow /> <el-table-column prop="partspec" label="产åè§æ ¼" width="160" 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="unitname" label="åä½åç§°" width="160" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.unitname">{{ row.unitname }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- prop="wkshp_name"--> <!-- label="é¨é¨åç§°"--> <!-- width="160"--> <!-- show-tooltip-when-overflow--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>--> <!-- <div v-else>/</div>--> <!-- </template>--> <!-- </el-table-column>--> <el-table-column prop="stepname" label="å·¥åºåç§°" min-width="160" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.stepname">{{ row.stepname }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="qty" label="å ¥åºæ°é" min-width="95" show-tooltip-when-overflow > <template slot-scope="{row}"> <div v-if="row.qty">{{ row.qty }}</div> <div v-else>/</div> </template> </el-table-column> <!-- <el-table-column--> <!-- prop="plan_qty"--> <!-- label="工忰é"--> <!-- min-width="95"--> <!-- fixed="right"--> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="good_qty"--> <!-- label="å®å·¥æ°é"--> <!-- min-width="95"--> <!-- fixed="right"--> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="inhouseqty"--> <!-- label="å·²å ¥åºæ°é"--> <!-- min-width="95"--> <!-- fixed="right"--> <!-- show-tooltip-when-overflow--> <!-- />--> <!-- <el-table-column--> <!-- prop="stinhouseqty"--> <!-- label="å¾ å ¥åºæ°é"--> <!-- min-width="130"--> <!-- fixed="right"--> <!-- >--> <!-- <!– <template slot-scope="{row}">–>--> <!-- <!– <el-input-number v-model="row.stinhouseqty" :min="0" :max="row.good_qty" size="small" />–>--> <!-- <!– </template>–>--> <!-- </el-table-column>--> <!-- <el-table-column--> <!-- label="æä½"--> <!-- width="120"--> <!-- fixed="right"--> <!-- >--> <!-- <template slot-scope="{row}">--> <!-- <div class="operationClass">--> <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="SOPé¢è§" placement="top">--> <!-- <i--> <!-- class="el-icon-files"--> <!-- style="cursor: pointer;color:#42b983;margin-right: 15px"--> <!-- />--> <!-- </el-tooltip>--> <!-- </div>--> <!-- </template>--> <!-- </el-table-column>--> </el-table> </div> </div> </div> </template> <script> import Pagination from '@/components/Pagination' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { handleDatetime, validateCode } from '@/utils/global' import { DeleteStorageRecord, GroupSalaryReportSearchUser, StorageRecordExcelSearch, StorageRecordSearch } from '@/api/ReportManager' import elDragDialog from '@/directive/el-drag-dialog' import waves from '@/directive/waves' import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData' import { TSecLocaTree } from '@/api/basicSettings' import { StorageRecordDelete, StorageRecordMainSearch, StorageRecordSubSearch } from '@/api/ReportManager' import { handleDatetime, handleDatetime2 } from '@/utils/global' export default { name: 'StorageRecord', name: 'WorkOrderList', components: { Pagination, ImportPicker Pagination }, directives: { elDragDialog, waves }, directives: { waves }, data() { return { mouseHoverType: 'mouseout', mouseHoverTypeDialog: 'mouseout', isExpandForm: false, isIpad: false, mainHeight: 0, tableHeight: 0, username: '', form: { hbillno: '', // å ¥åºåå· sono: '', // éå®åå· mono: '', // 订åå· wocode: '', // å·¥åå· partcode: '', // 产åç¼ç partname: '', // 产ååç§° stockcode: '', // ä»åºç¼ç responddate: '', // æä½æ¶é´ prop: 'create_date', // æåºå段 hbdate: '', // åæ®æ¥æ username: '', // æä½äººå userdate: '', // æä½æ¶é´ prop: 'hbillno', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, stockcodeArr: [], total: 10, tableData: [], dialogVisible: false, tagArr: [], // dialogForm: { OrgType: '', OrgCode: '', OrgName: '', SupUnit: ''// ä¸çº§åä½ }, operation: '', dialogFormRules: { OrgType: [ { required: true, message: '请è¾å ¥éæ©ç±»å', trigger: ['blur', 'change'] } ], OrgCode: [ { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], OrgName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } ] }, title_value: 'æ°æ®å¯¼å ¥ / ç¹æ£é¨ä½', code: '4', shows: false, multipleSelection: [] total: 10, tableDataDetail: [] } }, // watch: { // shows() { // if (!this.shows) { // this.getStorageRecordSearch() // } // } // }, activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { this.handleRequest() this.getStorageRecordMainSearch() }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() }, methods: { handleRequest() { this.getStorageRecordSearch().then(res => { if (res.code === '200') { this.getTSecLocaTree() } }) }, // è·åä»åºä¿¡æ¯ async getTSecLocaTree() { const { data: res } = await TSecLocaTree() this.stockcodeArr = res.filter(i => i.depth === 0)// å±çº§ä¸º0ç æ¯ä»åº }, async getStorageRecordSearch() { let tempDate = this.form.responddate async getStorageRecordMainSearch() { let tempDate = this.form.hbdate if (tempDate.length > 0) { tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) } const data = { hbillno: this.form.hbillno, sono: this.form.sono, mono: this.form.mono, wocode: this.form.wocode, partcode: this.form.partcode, partname: this.form.partname, stockcode: this.form.stockcode, responddate: tempDate, prop: this.form.prop, order: this.form.order, page: this.form.page, rows: this.form.rows let tempDate2 = this.form.userdate if (tempDate2.length > 0) { tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1]) } const res = await StorageRecordSearch(data) const data = { hbillno: '', // å ¥åºåå· hbdate: tempDate, // åæ®æ¥æ username: '', // æä½äººå userdate: tempDate2, // æä½æ¶é´ prop: this.form.prop, // æåºå段 order: this.form.order, // æåºå段 page: this.form.page, // 第å 页 rows: this.form.rows // æ¯é¡µå¤å°æ¡ } const res = await StorageRecordMainSearch(data) if (res.code === '200') { this.tableData = res.data this.total = res.count return { code: res.code } if (res.data.length > 0) { await this.getStorageRecordSubSearch(res.data[0].hbillno) } else { this.tableDataDetail = [] } } }, async getStorageRecordSubSearch(hbillno) { const { data: res } = await StorageRecordSubSearch({ hbillno }) this.tableDataDetail = res console.log(123, this.tableDataDetail) }, rowClick(row, event, column) { this.getStorageRecordSubSearch(row.hbillno) }, reset() { this.form.hbillno = '' this.form.hbdate = '' this.form.username = '' this.form.userdate = '' this.getStorageRecordMainSearch() }, async del(row) { await this.getStorageRecordSubSearch(row.hbillno) console.log(1111) this.$confirm('æ¯å¦ç¡®è®¤å é¤?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { const data = [] this.tableDataDetail.forEach(i => { data.push({ 'hbillno': i.hbillno, // å ¥åºåå· 'inbarcode': i.inbarcode, // å ¥åºæ¡ç 'wocode': i.wocode, // å·¥åå· 'stepcode': i.step_code, // å·¥åºç¼ç 'style': i.style, // æ¥å·¥ç±»å(B/S) 'qty': i.qty.toString(), // å ¥åºæ°é 'create_user': localStorage.getItem('username'), // æä½äººå 'create_date': handleDatetime2(new Date())// --æä½æ¶é´ }) }) // console.log(JSON.stringify(data)) StorageRecordDelete(data).then(res => { if (res.code === '200') { this.$message.success('å 餿å!') if (this.form.page > 1 && this.tableData.length === 1) { this.form.page-- } this.getStorageRecordMainSearch() } }) }).catch(() => { this.$message.info('已忶å é¤') }) }, // async getMesOrderStepReportSelectUserGroup() { // const { data: res } = await MesOrderStepReportSelectUserGroup() // this.groupArr = res // }, // æåºæ¹åæ¶ sortChange({ column, prop, order }) { if (order === 'descending') { @@ -464,169 +496,13 @@ this.form.prop = prop this.getStorageRecordSearch() }, async download() { let tempDate = this.form.responddate if (tempDate.length > 0) { tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) } const data = { hbillno: this.form.hbillno, sono: this.form.sono, mono: this.form.mono, wocode: this.form.wocode, partcode: this.form.partcode, partname: this.form.partname, stockcode: this.form.stockcode, responddate: tempDate } const { data: res } = await StorageRecordExcelSearch(data) window.location.href = res }, // æ¥è¯¢ search() { this.getStorageRecordSearch() }, // å¯¼å ¥æé® upload() { this.shows = true this.$refs.importPickerFunc.newDataFunc() }, colos() { this.shows = false }, // éç½® reset() { this.form.hbillno = '' this.form.sono = '' this.form.mono = '' this.form.wocode = '' this.form.partcode = '' this.form.partname = '' this.form.stockcode = '' this.form.responddate = '' this.getStorageRecordSearch() }, // æ°å¢æé® add(operation) { this.operation = operation this.dialogVisible = true }, // ä¿®æ¹æé® async edit(operation, row) { this.operation = operation this.dialogVisible = true const res = await GroupSalaryReportSearchUser({ id: row.id }) this.tagArr = res.data.map(r => r.repairname) // this.tagArr = ['楼æä¿', 'å¼ ä¸', 'æå'] // this.$nextTick(() => { // this.dialogForm.OrgCode = row.org_code // this.dialogForm.OrgName = row.org_name // this.dialogForm.SupUnit = row.parent_id // }) }, handleSelectionChange(val) { this.multipleSelection = val }, // å é¤æé® del(row) { this.$confirm('æ¯å¦ç¡®è®¤å é¤?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { let data = [] if (row.create_date) { // 说æç¹å»çæ¶ åè¡å é¤ data = [ { 'repoid': row.repoid, 'hbillno': row.hbillno, 'salecode': row.salecode, 'mo_no': row.mo_no, 'wocode': row.wocode, 'partcode': row.partcode, 'qty': row.qty, 'wkshop_code': row.wkshp_code, 'stockcode': row.stockcode, 'inbarcode': row.inbarcode, 'step_code': row.step_code, 'style': row.style } ] } else { // è¯´ææ¯æ¹éå é¤ this.multipleSelection.forEach(row => { data.push({ 'repoid': row.repoid, 'hbillno': row.hbillno, 'salecode': row.salecode, 'mo_no': row.mo_no, 'wocode': row.wocode, 'partcode': row.partcode, 'qty': row.qty, 'wkshop_code': row.wkshp_code, 'stockcode': row.stockcode, 'inbarcode': row.inbarcode, 'step_code': row.step_code, 'style': row.style }) }) } DeleteStorageRecord(data).then(res => { if (res.code === '200') { this.$message.success('å 餿å!') if (this.form.page > 1 && this.tableData.length === 1) { this.form.page-- } this.getStorageRecordSearch() } }) }).catch(() => { this.$message.info('已忶å é¤') }) }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { this.dialogForm.OrgType = '' this.dialogForm.OrgCode = '' this.dialogForm.OrgName = '' this.dialogForm.SupUnit = '' this.$refs.dialogForm.clearValidate() }, // å¯¹è¯æ¡åæ¶ dialogVisibleCancel() { this.dialogVisible = false }, // å¯¹è¯æ¡ç¡®è®¤ dialogVisibleConfirm() { this.$refs.dialogForm.validate(valid => { if (valid) { const data = { OrganCode: this.dialogForm.OrgCode, OrganName: this.dialogForm.OrgName, OperType: this.operation === 'add' ? 'Add' : 'Update', Operator: getCookie('admin') } // AddUpdateOrganization(data).then(res => { // if (res.code === '200') { // this.$message.success(this.operation === 'add' ? 'æ·»å æåï¼' : 'ä¿®æ¹æåï¼') // this.dialogVisible = false // this.getStorageRecordSearch() // } else { // this.$message.error(this.operation === 'add' ? 'æ·»å 失败ï¼' : 'ä¿®æ¹å¤±è´¥ï¼') // } // }) } }) }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 255 this.tableHeight = this.mainHeight - 450 this.$refs.tableDataRef.doLayout() this.$refs.tableDataRef2.doLayout() }) }, tableRowClassName({ row, rowIndex }) { @@ -636,15 +512,165 @@ } </script> <style scoped lang="scss"> <style lang="scss" scoped> $main_color: #42b983; ::v-deep .el-icon-delete{ margin-right: 0 !important; .stepSelectedValueClass { ::v-deep input { //min-height: 34px !important; height: 68px !important; } ::v-deep .el-select__caret { } .dialogVisibleRoute { .myCheckboxGroup { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; .myCheckbox { //border: 1px solid $main_color; border: 1px solid #eee; display: flex; min-width: 100px; padding: 10px; margin: 10px 30px 0 0; border-radius: 5px; cursor: default; .myCheckboxInput { margin: 1px 5px 0 0; cursor: pointer; } } //.myCheckbox{ // border: 1px solid $main_color; //} input[type=checkbox] { cursor: pointer; position: relative; width: 14px; height: 14px; font-size: 14px; } input[type=checkbox]::after { position: absolute; top: 0; //color: rgb(130, 35, 35); color: $main_color; width: 14px; height: 14px; display: inline-block; visibility: visible; padding-left: 0px; text-align: center; content: ' '; border-radius: 3px } input[type=checkbox]:checked::after { //content: "â"; content: "â"; color: #fff; font-size: 12px; font-weight: bold; background-color: $main_color; } } } .dialogVisibleRoute { ::v-deep .el-dialog__body { padding: 20px 20px !important; } } .el-date-editor { font-size: 14px; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } .sop { ::v-deep .el-dialog__body { padding: 50px 80px !important; } } .dialogVisibleSearch ::v-deep .el-dialog__body { padding: 20px 20px !important; } .dialogVisibleConfirmClass ::v-deep .el-dialog__body { padding: 20px 20px !important; } ::v-deep .el-table .caret-wrapper { transform: scale(0.8); } ::v-deep .el-button--text { color: $main_color; font-size: 14px; cursor: pointer; } ::v-deep .el-radio.is-bordered + .el-radio.is-bordered { margin: 10px 30px 0px 0; } .body ::v-deep .el-form-item { margin-bottom: 0; } .elForm ::v-deep .el-form-item { margin-bottom: 0; } .elTableDiv { ::v-deep .el-radio__label { display: none; } } .el-table::before { height: 0; } //.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit { // border-bottom: 2px solid #000 ; // //outline: #000 solid 2px !important; //} .tableDataPrint ::v-deep div.cell { display: flex !important; align-items: center !important; justify-content: center !important; } .formContent { width: 240px; } </style> <style> .formContent .el-form-item__label { color: #000 !important; } </style> <!--å ¬å ±é¡µé¢æ ·å¼--> <style lang="scss" scoped> $main_color: #42b983; ::v-deep .el-range-input { font-size: 14px !important; } ::v-deep .el-range__icon { @@ -665,12 +691,121 @@ align-items: center; } ::v-deep .el-progress-bar__innerText{ display: none !important; //::v-deep .el-button--primary, .el-button--default, .el-button--info { // height: 34px; // display: flex; // align-items: center; // padding: 0 15px; //} ::v-deep .el-button--primary { //background-color: $main_color !important; } ::v-deep .el-button--default { background-color: #f8f8fa; border: none; } ::v-deep .el-input__inner { height: 34px; line-height: 34px; //color: #a7a7a7; } ::v-deep .el-dialog__body { padding: 20px 100px !important; } ::v-deep .dialogVisibleRoles .el-dialog__body { padding: 20px 20px !important; } ::v-deep .importPickerClass .el-dialog__body { padding: 20px 20px !important; } ::v-deep .el-dialog__footer { display: flex; justify-content: flex-end; } ::v-deep .el-table .caret-wrapper { transform: scale(0.8); } ::v-deep .cell { display: flex; align-items: center; justify-content: space-between; } ::v-deep .el-table::before { height: 0; } ::v-deep .el-table__body-wrapper { background-color: #f8f8fa; } ::v-deep .el-table__body .el-table__row.hover-row td { background-color: #eaecef; } ::v-deep .el-form--inline .el-form-item__label { color: #a7a7a7; } .body ::v-deep .el-divider { border: 1px solid #eee; width: 99%; margin: 10px auto; } .body ::v-deep .el-form-item { margin-bottom: 0; } .userDialogVisible ::v-deep .el-form-item { margin-bottom: 0; } .dateMini { ::v-deep .el-input__inner { line-height: 34px; height: 34px; width: 200px; display: flex; font-size: 14px !important; align-items: center !important; } ::v-deep .el-input__prefix { margin-top: -3px; } //::v-deep .el-range__icon{ // line-height: 28px; //} } ::v-deep .el-select__caret { display: flex; align-items: center; justify-content: center; } .tableFixed { ::v-deep .el-table__fixed-right { height: 100% !important; } ::v-deep .el-table__fixed { height: 100% !important; } } </style> <style> .el-table .custom-row { background: #f8f8fa; } src/views/statistic/storageRecordBack.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,677 @@ <template> <div> <div class="body" :style="{height:mainHeight+'px'}"> <div class="bodyTopButtonGroup" style="justify-content: space-between"> <el-button v-waves :disabled="multipleSelection.length===0" type="danger" icon="el-icon-delete" @click="del">å é¤</el-button> <el-button v-waves type="primary" icon="el-icon-download" @click="download">导åº</el-button> </div> <div class="bodyTopFormGroup"> <el-form ref="form" :model="form" label-width="100px" inline style="display: flex;" > <div class="elForm"> <el-form-item label="å ¥åºåå·" style="display: flex;"> <el-input v-model="form.hbillno" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="éå®åå·" style=" display: flex;"> <el-input v-model="form.sono" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="订åå·" style=" display: flex;"> <el-input v-model="form.mono" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item label="å·¥åå·" style=" display: flex;"> <el-input v-model="form.wocode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç©æç¼ç " style=" display: flex;"> <el-input v-model="form.partcode" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ç©æåç§°" style=" display: flex;"> <el-input v-model="form.partname" placeholder="请è¾å ¥" style="width: 200px" /> </el-form-item> <el-form-item v-show="isExpandForm" label="ä»åºç¼ç " style=" display: flex;"> <el-select v-model="form.stockcode" :popper-append-to-body="false" filterable style="width: 200px" placeholder="è¯·éæ©" > <el-option v-for="item in stockcodeArr" :key="item.code" :label="item.name" :value="item.code" /> </el-select> </el-form-item> <el-form-item v-show="isExpandForm" label="åæ®æ¥æ" style="display: flex;align-items: center"> <el-date-picker v-model="form.responddate" type="daterange" range-separator="~" class="timeMini" size="mini" style="width: 200px;display: flex;line-height: 34px;height: 34px;" :clearable="false" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" /> </el-form-item> </div> <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" > <el-button v-waves type="primary" icon="el-icon-search" @click="search">æ¥è¯¢</el-button> <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">éç½®</el-button> </div> </el-form> <div class="bodyTopFormExpand" > <svg-icon v-show="mouseHoverType==='mouseout'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" @mouseenter="mouseHoverType=$event.type" /> <svg-icon v-show="mouseHoverType==='mouseenter'" style="cursor: pointer" :icon-class="!isExpandForm?'doubleDown':'doubleUp'" @click="isExpandForm=!isExpandForm" @mouseout="mouseHoverType=$event.type" /> </div> </div> <div class="elTableDiv"> <el-table ref="tableDataRef" class="tableFixed" :data="tableData" :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" border :row-class-name="tableRowClassName" :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" highlight-current-row :header-cell-style="this.$headerCellStyle" :cell-style="this.$cellStyle" @sort-change="sortChange" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="50" fixed /> <el-table-column prop="rowNum" width="50" fixed label="åºå·" /> <el-table-column prop="hbillno" label="å ¥åºåå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="hbdate" label="å ¥åºæ¥æ" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="salecode" label="éå®åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="mo_no" label="订åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="wocode" label="å·¥åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partcode" label="ç©æç¼ç " width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partname" label="ç©æåç§°" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partname" label="ç©æåç§°" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partspec" label="è§æ ¼åå·" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="wkshp_name" label="产ååç§°" width="160" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="partspec" label="产åè§æ ¼" width="120" show-tooltip-when-overflow sortable="custom" > <template slot-scope="{row}"> <div v-if="row.partspec">{{ row.partspec }}</div> <div v-else>/</div> </template> </el-table-column> <el-table-column prop="wkshp_name" label="é¨é¨åç§°" width="130" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="stockname" label="ä»åºåç§°" width="130" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="qty" label="å ¥åºæ°é" width="130" show-tooltip-when-overflow sortable="custom" /> <el-table-column prop="create_user" label="å建人" width="160" sortable="custom" /> <el-table-column prop="create_date" label="åå»ºæ¥æ" width="160" sortable="custom" /> <el-table-column label="æä½" width="120" fixed="right" > <template slot-scope="{row}"> <div class="operationClass"> <!-- <el-tooltip class="item" effect="dark" content="ç¼è¾" placement="top">--> <!-- <i--> <!-- v-if="row.leve!==0"--> <!-- class="el-icon-edit-outline"--> <!-- :style="{color:$store.state.settings.theme}"--> <!-- @click="edit('edit',row)"--> <!-- />--> <!-- </el-tooltip>--> <el-tooltip v-del-tab-index class="item" effect="dark" content="å é¤" placement="top"> <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" /> </el-tooltip> </div> </template> </el-table-column> </el-table> </div> <!--å页--> <pagination :total="total" :page.sync="form.page" :limit.sync="form.rows" align="right" layout="total,prev, pager, next,sizes" popper-class="select_bottom" @pagination="getStorageRecordSearch" /> </div> <el-dialog v-el-drag-dialog :title="operation==='add'?'æ°å¢':'人åæç»'" :visible.sync="dialogVisible" width="800px" :close-on-click-modal="false" top="15vh" @closed="handleClose" @close="handleClose" > <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px"> <el-tag v-for="tag in tagArr" :key="tag.name" type="success" style="margin-right: 15px;min-width: 80px;text-align: center" > {{ tag }} </el-tag> </div> <span slot="footer" class="dialog-footer"> <div class="footerButton"> <el-button v-waves @click="dialogVisible=false">è¿ å</el-button> <!-- <el-button v-waves @click="dialogVisibleCancel">å æ¶</el-button>--> <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">ç¡® å®</el-button>--> </div> </span> </el-dialog> <!--å¯¼å ¥ç»ä»¶--> <import-picker ref="importPickerFunc" class="importPickerClass" :shows.sync="shows" :title="title_value" :colos="colos" :code="code" /> </div> </template> <script> import Pagination from '@/components/Pagination' import { getCookie } from '@/utils/auth' import ImportPicker from '@/components/ImportPicker' import { handleDatetime, validateCode } from '@/utils/global' import { DeleteStorageRecord, GroupSalaryReportSearchUser, StorageRecordExcelSearch, StorageRecordSearch } from '@/api/ReportManager' import elDragDialog from '@/directive/el-drag-dialog' import waves from '@/directive/waves' import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData' import { TSecLocaTree } from '@/api/basicSettings' export default { name: 'StorageRecord', components: { Pagination, ImportPicker }, directives: { elDragDialog, waves }, data() { return { mouseHoverType: 'mouseout', isExpandForm: false, mainHeight: 0, tableHeight: 0, form: { hbillno: '', // å ¥åºåå· sono: '', // éå®åå· mono: '', // 订åå· wocode: '', // å·¥åå· partcode: '', // 产åç¼ç partname: '', // 产ååç§° stockcode: '', // ä»åºç¼ç responddate: '', // æä½æ¶é´ prop: 'create_date', // æåºå段 order: 'desc', // æåºå段 page: 1, // 第å 页 rows: 20 // æ¯é¡µå¤å°æ¡ }, stockcodeArr: [], total: 10, tableData: [], dialogVisible: false, tagArr: [], // dialogForm: { OrgType: '', OrgCode: '', OrgName: '', SupUnit: ''// ä¸çº§åä½ }, operation: '', dialogFormRules: { OrgType: [ { required: true, message: '请è¾å ¥éæ©ç±»å', trigger: ['blur', 'change'] } ], OrgCode: [ { required: true, validator: validateCode, trigger: ['blur', 'change'] } ], OrgName: [ { required: true, message: '请è¾å ¥åç§°', trigger: ['blur', 'change'] } ] }, title_value: 'æ°æ®å¯¼å ¥ / ç¹æ£é¨ä½', code: '4', shows: false, multipleSelection: [] } }, // watch: { // shows() { // if (!this.shows) { // this.getStorageRecordSearch() // } // } // }, activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { this.handleRequest() }, mounted() { window.addEventListener('resize', this.getHeight) this.getHeight() }, methods: { handleRequest() { this.getStorageRecordSearch().then(res => { if (res.code === '200') { this.getTSecLocaTree() } }) }, // è·åä»åºä¿¡æ¯ async getTSecLocaTree() { const { data: res } = await TSecLocaTree() this.stockcodeArr = res.filter(i => i.depth === 0)// å±çº§ä¸º0ç æ¯ä»åº }, async getStorageRecordSearch() { let tempDate = this.form.responddate if (tempDate.length > 0) { tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) } const data = { hbillno: this.form.hbillno, sono: this.form.sono, mono: this.form.mono, wocode: this.form.wocode, partcode: this.form.partcode, partname: this.form.partname, stockcode: this.form.stockcode, responddate: tempDate, prop: this.form.prop, order: this.form.order, page: this.form.page, rows: this.form.rows } const res = await StorageRecordSearch(data) this.tableData = res.data this.total = res.count return { code: res.code } }, // async getMesOrderStepReportSelectUserGroup() { // const { data: res } = await MesOrderStepReportSelectUserGroup() // this.groupArr = res // }, // æåºæ¹åæ¶ sortChange({ column, prop, order }) { if (order === 'descending') { order = 'desc' } else if (order === 'ascending') { order = 'asc' } else { order = 'desc' } this.form.order = order this.form.prop = prop this.getStorageRecordSearch() }, async download() { let tempDate = this.form.responddate if (tempDate.length > 0) { tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1]) } const data = { hbillno: this.form.hbillno, sono: this.form.sono, mono: this.form.mono, wocode: this.form.wocode, partcode: this.form.partcode, partname: this.form.partname, stockcode: this.form.stockcode, responddate: tempDate } const { data: res } = await StorageRecordExcelSearch(data) window.location.href = res }, // æ¥è¯¢ search() { this.getStorageRecordSearch() }, // å¯¼å ¥æé® upload() { this.shows = true this.$refs.importPickerFunc.newDataFunc() }, colos() { this.shows = false }, // éç½® reset() { this.form.hbillno = '' this.form.sono = '' this.form.mono = '' this.form.wocode = '' this.form.partcode = '' this.form.partname = '' this.form.stockcode = '' this.form.responddate = '' this.getStorageRecordSearch() }, // æ°å¢æé® add(operation) { this.operation = operation this.dialogVisible = true }, // ä¿®æ¹æé® async edit(operation, row) { this.operation = operation this.dialogVisible = true const res = await GroupSalaryReportSearchUser({ id: row.id }) this.tagArr = res.data.map(r => r.repairname) // this.tagArr = ['楼æä¿', 'å¼ ä¸', 'æå'] // this.$nextTick(() => { // this.dialogForm.OrgCode = row.org_code // this.dialogForm.OrgName = row.org_name // this.dialogForm.SupUnit = row.parent_id // }) }, handleSelectionChange(val) { this.multipleSelection = val }, // å é¤æé® del(row) { this.$confirm('æ¯å¦ç¡®è®¤å é¤?', 'æç¤º', { confirmButtonText: 'ç¡®å®', cancelButtonText: 'åæ¶', type: 'warning' }).then(() => { let data = [] if (row.create_date) { // 说æç¹å»çæ¶ åè¡å é¤ data = [ { 'repoid': row.repoid, 'hbillno': row.hbillno, 'salecode': row.salecode, 'mo_no': row.mo_no, 'wocode': row.wocode, 'partcode': row.partcode, 'qty': row.qty, 'wkshop_code': row.wkshp_code, 'stockcode': row.stockcode, 'inbarcode': row.inbarcode, 'step_code': row.step_code, 'style': row.style } ] } else { // è¯´ææ¯æ¹éå é¤ this.multipleSelection.forEach(row => { data.push({ 'repoid': row.repoid, 'hbillno': row.hbillno, 'salecode': row.salecode, 'mo_no': row.mo_no, 'wocode': row.wocode, 'partcode': row.partcode, 'qty': row.qty, 'wkshop_code': row.wkshp_code, 'stockcode': row.stockcode, 'inbarcode': row.inbarcode, 'step_code': row.step_code, 'style': row.style }) }) } DeleteStorageRecord(data).then(res => { if (res.code === '200') { this.$message.success('å 餿å!') if (this.form.page > 1 && this.tableData.length === 1) { this.form.page-- } this.getStorageRecordSearch() } }) }).catch(() => { this.$message.info('已忶å é¤') }) }, // å¯¹è¯æ¡å ³éäºä»¶ handleClose() { this.dialogForm.OrgType = '' this.dialogForm.OrgCode = '' this.dialogForm.OrgName = '' this.dialogForm.SupUnit = '' this.$refs.dialogForm.clearValidate() }, // å¯¹è¯æ¡åæ¶ dialogVisibleCancel() { this.dialogVisible = false }, // å¯¹è¯æ¡ç¡®è®¤ dialogVisibleConfirm() { this.$refs.dialogForm.validate(valid => { if (valid) { const data = { OrganCode: this.dialogForm.OrgCode, OrganName: this.dialogForm.OrgName, OperType: this.operation === 'add' ? 'Add' : 'Update', Operator: getCookie('admin') } // AddUpdateOrganization(data).then(res => { // if (res.code === '200') { // this.$message.success(this.operation === 'add' ? 'æ·»å æåï¼' : 'ä¿®æ¹æåï¼') // this.dialogVisible = false // this.getStorageRecordSearch() // } else { // this.$message.error(this.operation === 'add' ? 'æ·»å 失败ï¼' : 'ä¿®æ¹å¤±è´¥ï¼') // } // }) } }) }, // è·å页é¢é«åº¦ getHeight() { this.$nextTick(() => { this.mainHeight = window.innerHeight - 85 this.tableHeight = this.mainHeight - 255 this.$refs.tableDataRef.doLayout() }) }, tableRowClassName({ row, rowIndex }) { return 'custom-row' } } } </script> <style scoped lang="scss"> ::v-deep .el-icon-delete{ margin-right: 0 !important; } ::v-deep .el-select__caret { display: flex; align-items: center; justify-content: center; } ::v-deep .el-range__icon { line-height: 28px !important; } ::v-deep .el-range-separator { line-height: 28px !important; } ::v-deep .el-range-input { font-size: 14px; } ::v-deep .el-range-separator { display: flex; justify-content: center; align-items: center; } ::v-deep .el-progress-bar__innerText{ display: none !important; } </style> <style> .el-table .custom-row { background: #f8f8fa; } </style>