| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508 |
- <template>
- <div class="container-fluid">
- <Navbar :title="'库存台账'" :is-go-back="false" />
- <div class="form-inline">
- <div class="form-group">
- <label class="m-label">单据日期:</label>
- <div class="input-group m-input-group">
- <DateTime
- v-model="stockLedgerDto2.startBillDate"
- class="DateTime"
- />
- </div>
- </div>
- <div class="form-group">
- <label class="m-label">~</label>
- <div class="input-group m-input-group">
- <DateTime
- v-model="stockLedgerDto2.endBillDate"
- class="DateTime"
- />
- </div>
- </div>
- <div class="form-group">
- <label class="m-label">审核日期:</label>
- <div class="input-group m-input-group">
- <DateTime
- v-model="stockLedgerDto2.startExamineDate"
- class="DateTime"
- />
- </div>
- </div>
- <div class="form-group">
- <label class="m-label">~</label>
- <div class="input-group m-input-group">
- <DateTime
- v-model="stockLedgerDto2.endExamineDate"
- class="DateTime"
- />
- </div>
- </div>
- <div class="form-group">
- <label class="m-label">存货编码:</label>
- <input
- v-model="stockLedgerDto2.startInventoryNo"
- autocomplete="off"
- type="text"
- class="form-control m-input-group"
- name="startInventoryNo"
- placeholder="请填写编码"
- />
- </div>
- <div class="form-group">
- <label class="m-label">~</label>
- <input
- v-model="stockLedgerDto2.endInventoryNo"
- autocomplete="off"
- type="text"
- class="form-control m-input-group"
- name="endInventoryNo"
- placeholder="请填写编码"
- />
- </div>
- <div class="form-group">
- <label class="m-label">仓库:</label>
- <div class="input-group m-input-group">
- <v-select
- v-model="selected"
- :options="isOptions"
- multiple="multiple"
- placeholder="请选择仓库"
- @input="warehouseSelectChanged()"
- />
- </div>
- </div>
- <button type="button" class="btn btn-info" @click="selectStockLedgers">
- 确定
- </button>
- </div>
- <div v-if="stockLedgerDtos.length > 0" class="row" style="margin-top: 15px">
- <div>
- <table class="table table-bordered">
- <thead>
- <tr>
- <th>存货编码</th>
- <th>存货名称</th>
- <th>规格型号</th>
- </tr>
- </thead>
- <tbody>
- <tr v-for="stockLedgerDto in stockLedgerDtos" :key="stockLedgerDto.id">
- <td>
- <a href="javascript:void(0)" @click="onChoise($event)">{{
- stockLedgerDto.inventoryNo
- }}</a>
- </td>
- <td>
- {{ stockLedgerDto.inventoryName1 }}
- </td>
- <td>
- {{ stockLedgerDto.inventoryType }}
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <VueBootstrapPagination :pagination="pagination" :callback="selectStockLedgers" />
- </div>
- <div class="row">
- <ProcessReportResultPreview
- :process-report-result="processReportResult"
- />
- </div>
- </div>
- </template>
- <script>
- import Common from '../common/Common.js';
- import { Notify } from 'pc-component-v3';
- import vSelect from 'vue-select';
- //获取当前登录信息
- var loginInfoJson = localStorage.getItem('#LoginInfo');
- var loginInfo = JSON.parse(loginInfoJson);
- import 'vue-select/dist/vue-select.css';
- export default {
- components: {
- vSelect,
- },
- data: function () {
- return {
- stockLedgerDto2: {
- //startBillDate: undefined,
- //endBillDate: undefined,
- //startExamineDate: undefined,
- //endExamineDate: undefined,
- warehouseIds: [],
- startInventoryNo: '',
- endInventoryNo: '',
- },
- pagination: {
- total: 0,
- per_page: 5, // required
- current_page: 1, // required
- last_page: 1, // required
- },
- processResultData: '',
- processReportResult: {},
- stockLedgerDtos: [],
- maxPage: 1,
- clientId: loginInfo.loginClientId,
- inventory: undefined,
- selected: [],
- warehouseDtos: [],
- isOptions: [],
- isShow: false,
- };
- },
- /**
- * 此内方法页面加载时调用
- */
- mounted: function () {
- this.selectWarehouseByClient();
- },
- methods: {
- /**
- * 根据部门Id查询该部门下所有仓库
- */
- selectWarehouseByClient: function () {
- var _self = this;
- $.ajax({
- url: Common.getApiURL('StockLedgerResource/selectWarehouseByClient'),
- type: 'get',
- dataType: 'json',
- beforeSend: function (request) {
- Common.addTokenToRequest(request);
- },
- success: function (data) {
- if(data.errorCode == 0) {
- if (data.datas.length > 0) {
- data.datas.forEach(function (item) {
- item.label = item.name;
- item.value = item.id;
- });
- }
- _self.isOptions = data.datas;
- _self.warehouseDtos = data.datas;
- }
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- Common.processException(XMLHttpRequest, textStatus, errorThrown);
- },
- });
- },
- /**
- * 从数据库分页查询出符合条件的所有存货的id和名称
- */
- selectStockLedgers: function () {
- var _self = this;
- this.warehouseSelectChanged();
- /*var whereClause = "";
- if(_self.stockLedgerDto2.startBillDate != undefined && _self.stockLedgerDto2.startBillDate != '' ) {
- if(_self.stockLedgerDto2.endBillDate != undefined && _self.stockLedgerDto2.endBillDate != '') {
- whereClause += " and mso.documentAccountDate between '"+ _self.stockLedgerDto2.startBillDate + "' and '" + _self.stockLedgerDto2.endBillDate +"'";
- } else {
- whereClause += " and mso.documentAccountDate > '" + _self.stockLedgerDto2.startBillDate +"'";
- }
- } else {
- if(_self.stockLedgerDto2.endBillDate != undefined && _self.stockLedgerDto2.endBillDate != '') {
- whereClause += " and mso.documentAccountDate < '"+ _self.stockLedgerDto2.endBillDate +"'";
- }
- }
- if(_self.stockLedgerDto2.startExamineDate != undefined && _self.stockLedgerDto2.startExamineDate != '') {
- if(_self.stockLedgerDto2.endExamineDate != undefined && _self.stockLedgerDto2.endExamineDate != '') {
- whereClause += " and mso.verifyDate between '" + _self.stockLedgerDto2.startExamineDate + "' and '" + _self.stockLedgerDto2.endExamineDate +"'";
- } else {
- whereClause += " and mso.verifyDate > '" +_self.stockLedgerDto2.startExamineDate +"'";
- }
- } else {
- if(_self.stockLedgerDto2.endExamineDate != undefined && _self.stockLedgerDto2.endExamineDate != '') {
- whereClause += " and mso.verifyDate < '"+ _self.stockLedgerDto2.endExamineDate +"'";
- }
- }
- if(!_self.stockLedgerDto2.startInventoryNo == "") {
- if(!_self.stockLedgerDto2.endInventoryNo == "") {
- whereClause += " and it.no between " +_self.stockLedgerDto2.startInventoryNo + " and " + _self.stockLedgerDto2.endExamineDate ;
- } else {
- whereClause += " and it.no > " + _self.stockLedgerDto2.startInventoryNo ;
- }
- } else {
- if(!_self.stockLedgerDto2.endInventoryNo == "") {
- whereClause += " and it.no < " + _self.stockLedgerDto2.endInventoryNo;
- }
- }
- if(_self.stockLedgerDto2.warehouseIds.length >= 1) {
- whereClause += " and wh.id in("+ _self.stockLedgerDto2.warehouseIds +")";
- }*/
- var queryParam = {
- range: {
- start:
- (_self.pagination.current_page - 1) * _self.pagination.per_page,
- length: _self.pagination.per_page,
- },
- stockLedgerDto3: _self.stockLedgerDto2,
- };
- console.log(queryParam);
- $.ajax({
- url: Common.getApiURL('StockLedgerResource/queryListInventory'),
- type: 'post',
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(queryParam),
- beforeSend: function (request) {
- Common.addTokenToRequest(request);
- },
- success: function (successData) {
- if(successData.errorCode == 0) {
- if (successData.data) {
- console.log(successData.data);
- _self.stockLedgerDtos = successData.data.result;
- _self.pagination.total = successData.data.pageCount;
- _self.pagination.last_page =
- successData.data.pageCount > _self.pagination.per_page
- ? successData.data.pageCount % _self.pagination.per_page == 0
- ? successData.data.pageCount % _self.pagination.per_page
- : Math.floor(successData.data.pageCount % _self.pagination.per_page) + 1
- : 1;
- _self.inventory = successData.data.result[0].inventoryNo;
- _self.subDatas();
- _self.isShow = true;
- } else {
- _self.processReportResult.reportResults = undefined;
- _self.inventory = undefined;
- _self.isShow = false;
- Notify.notice('提示', '查询结果为空。', false);
- }
- }
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- Common.processException(XMLHttpRequest, textStatus, errorThrown);
- },
- });
- },
- /**
- * 改变当前页
- */
- /*changePageNo: function(classs) {
- var _self = this;
- //var element = event.currentTarget;
- //var classs = $(element).attr("class");
- //console.log(classs);
- if(classs == 'first') {
- _self.stockLedgerDto2.pageCurrent = 1;
- }
- if(classs == 'previou') {
- if(_self.stockLedgerDto2.pageCurrent <= 1) {
- return;
- } else {
- _self.stockLedgerDto2.pageCurrent -= 1;
- }
- }
- if(classs == 'nextone') {
- if(_self.stockLedgerDto2.pageCurrent == _self.maxPage) {
- return;
- } else {
- _self.stockLedgerDto2.pageCurrent += 1;
- }
- }
- if(classs == 'last') {
- _self.stockLedgerDto2.pageCurrent = _self.maxPage;
- }
- _self.selectStockLedgers();
- },*/
- /**
- * 仓库选择改变
- */
- warehouseSelectChanged: function () {
- var _self = this;
- _self.stockLedgerDto2.warehouseIds = [];
- _self.selected.forEach(function (item) {
- _self.stockLedgerDto2.warehouseIds.push(parseInt(item.value));
- });
- console.log(_self.stockLedgerDto2.warehouseIds);
- },
- /**
- * 点击查看台账详情
- * @param {Object} event
- */
- onChoise: function (event) {
- var _self = this;
- var element = event.currentTarget;
- _self.inventory = parseInt($(element).html());
- _self.subDatas();
- },
- /**
- * 执行流程
- * @return {void}
- */
- subDatas: function () {
- var _self = this;
- //where条件判断拼接
- if (_self.stockLedgerDtos.length < 1) {
- return;
- }
- var whereClause = 'where temp1.clientId = ' + _self.clientId;
- if (_self.inventory) {
- whereClause += ' AND temp1.inventoryNo = \'' + _self.inventory + '\'';
- }
- //拼接单据时间
- if (_self.stockLedgerDto2.startBillDate) {
- if (_self.stockLedgerDto2.endBillDate) {
- whereClause +=
- ' AND temp1.documentAccountDate between \'' +
- _self.stockLedgerDto2.startBillDate +
- '\' AND \'' +
- _self.stockLedgerDto2.endBillDate +
- '\'';
- } else {
- whereClause +=
- ' AND temp1.documentAccountDate > \'' +
- _self.stockLedgerDto2.startBillDate +
- '\'';
- }
- } else {
- if (_self.stockLedgerDto2.endBillDate) {
- whereClause +=
- ' AND temp1.documentAccountDate < \'' +
- _self.stockLedgerDto2.endBillDate +
- '\'';
- }
- }
- //拼接审核时间
- if (_self.stockLedgerDto2.startExamineDate) {
- if (_self.stockLedgerDto2.endExamineDate) {
- whereClause +=
- ' AND temp1.verifyDate between \'' +
- _self.stockLedgerDto2.startExamineDate +
- '\' AND \'' +
- _self.stockLedgerDto2.endExamineDate +
- '\'';
- } else {
- whereClause +=
- ' AND temp1.verifyDate > \'' +
- _self.stockLedgerDto2.startExamineDate +
- '\'';
- }
- } else {
- if (_self.endExamineDate) {
- whereClause +=
- ' AND temp1.verifyDate < \'' +
- _self.stockLedgerDto2.endExamineDate +
- '\'';
- }
- }
- if (_self.stockLedgerDto2.warehouseIds.length >= 1) {
- var ids = undefined;
- _self.stockLedgerDto2.warehouseIds.forEach(function (item) {
- if (ids == undefined) {
- ids = item;
- } else {
- ids = ids + ', ' + item;
- }
- });
- whereClause += ' AND temp1.warehouseId in(' + ids + ')';
- }
- //设置参数
- _self.processResultData = {
- processReportNo: '288771',
- modelData: {
- data: {
- whereClause: {
- displayValue: [whereClause],
- fieldType: 'String',
- },
- },
- },
- };
- $.ajax({
- url: Common.getApiURL('ProcessReportResource/runProcess'),
- type: 'post',
- dataType: 'json',
- beforeSend: function (request) {
- Common.addTokenToRequest(request);
- },
- contentType: 'application/json',
- data: JSON.stringify(_self.processResultData),
- success: function (successData) {
- if(successData.errorCode == 0) {
- _self.processReportResult = successData.data;
- //请求成功后将报表数据显示
- if (
- _self.processReportResult.reportResults != undefined &&
- _self.processReportResult.reportResults.length > 0
- ) {
- _self.processReportResult.reportResults.forEach(function (
- item,
- index,
- ) {
- item.previewIndex = 1;
- if (index == 0 && _self.inventory != undefined) {
- item.showPreview = true;
- } else {
- item.showPreview = false;
- }
- });
- }
- }else{
- Notify.error('提示', successData.errorMessage, false);
- }
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- Common.processException(XMLHttpRequest, textStatus, errorThrown);
- },
- });
- },
- },
- };
- </script>
- <style scoped>
- .panel-body > div.row {
- margin-bottom: 10px;
- }
- .userTable {
- width: 100%;
- }
- .userTable > tr > td {
- padding: 5px 20px;
- }
- .m-label {
- width: 5em;
- }
- .m-input-group {
- width: 240px;
- }
- </style>
|