|
|
@@ -0,0 +1,369 @@
|
|
|
+<!-- @desc:原料结转 @auth:洪旭东 @time:2023-11-30 09:11 -->
|
|
|
+<template>
|
|
|
+ <div class="main-div">
|
|
|
+ <!--加载中-->
|
|
|
+ <loading :loading="loading" v-if="!modalVisible"></loading>
|
|
|
+ <BaseIndexButtonGroup id="BaseIndexButtonGroup">
|
|
|
+ <template #left>
|
|
|
+ <!-- 查询 -->
|
|
|
+ <BaseIndexButton right-button="material-carryover-select" ref="search" name="search"></BaseIndexButton>
|
|
|
+ <!-- 清空条件 -->
|
|
|
+ <BaseIndexButton ref="clear" name="clear" ></BaseIndexButton>
|
|
|
+ <!-- 结转 -->
|
|
|
+ <BaseIndexButton right-button="material-carryover-carryover" ref="carryover" name="carryover" :is-must-choose-flag="false"/>
|
|
|
+ <!-- 反结 -->
|
|
|
+ <BaseIndexButton right-button="material-carryover-reverseCarryover" ref="reverseCarryover" name="reverseCarryover"/>
|
|
|
+ </template>
|
|
|
+ </BaseIndexButtonGroup>
|
|
|
+
|
|
|
+ <!-- 查询条件区域 -->
|
|
|
+ <div id="search-cond-div" ref="search-cond-div" class="search-cond-class">
|
|
|
+ <SearchCond ref="searchCond" v-model="searchCond"
|
|
|
+ @collapse-change="collapseChange" :setFlag="false"
|
|
|
+ :searchContent="searchContent"
|
|
|
+ ></SearchCond>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 表格部分 -->
|
|
|
+ <DkSplit mode="vertical" v-model="split" :height="tableHeight">
|
|
|
+ <DkTable slot="top" :id="'table-'+$options.name" ref="table-select" :data="tableData"
|
|
|
+ :height="this.tableHeight * split - 40" primaryKey="crovId" @pageChange="pageSizeChange"
|
|
|
+ :pageFlag="true"
|
|
|
+ :choose-flag="false"
|
|
|
+ :page-total="pageInfo.total"
|
|
|
+ :current-page="pageInfo.currentPage"
|
|
|
+ @current-change="currentChangeEvent($event)"
|
|
|
+ name="table">
|
|
|
+ <DkTableColumn field="crovCode"></DkTableColumn>
|
|
|
+ <DkTableColumn field="crovMonth" data-type="dateMonth"></DkTableColumn>
|
|
|
+ <DkTableColumn field="dateBegin" data-type="date"></DkTableColumn>
|
|
|
+ <DkTableColumn field="dateEnd" data-type="date"></DkTableColumn>
|
|
|
+ <DkTableColumn field="makeUserCodeName" :title="$t('makeUserCode')"></DkTableColumn>
|
|
|
+ <DkTableColumn field="makeTime" data-type="dateTime"></DkTableColumn>
|
|
|
+ <DkTableColumn field="remarks" width="auto"></DkTableColumn>
|
|
|
+ </DkTable>
|
|
|
+
|
|
|
+ <div slot="bottom" >
|
|
|
+ <DkTabs v-model="materialCarryoverItemTab" :options="detailOptions"></DkTabs>
|
|
|
+ <!--结转明细信息-->
|
|
|
+ <DkTable v-if="materialCarryoverItemTab === this.$config.materialCarryoverItemTab.materialCarryoverItem"
|
|
|
+ :height="this.tableHeight * (1-split) - 30"
|
|
|
+ primaryKey="itemId"
|
|
|
+ :id="'table-'+$options.name"
|
|
|
+ name="table"
|
|
|
+ ref="receipt-select"
|
|
|
+ :choose-flag="false"
|
|
|
+ :data="materialCarryoverItem"
|
|
|
+ :pageFlag="true"
|
|
|
+ :page-total="detailPageInfo.total"
|
|
|
+ :current-page="detailPageInfo.currentPage"
|
|
|
+ @pageChange="detailPageSizeChange"
|
|
|
+ >
|
|
|
+ <DkTableColumn
|
|
|
+ v-for="(item, index) in materialCarryoverItemList"
|
|
|
+ :key="materialCarryoverItemTab+index"
|
|
|
+ :type="item.type"
|
|
|
+ :data-type="item.dataType"
|
|
|
+ :field="item.field"
|
|
|
+ :title="item.title"
|
|
|
+ :sum="item.sum"
|
|
|
+ :digits="item.digits"
|
|
|
+ :width="item.width"
|
|
|
+ >
|
|
|
+ </DkTableColumn>
|
|
|
+ </DkTable>
|
|
|
+ </div>
|
|
|
+ </DkSplit>
|
|
|
+
|
|
|
+ <!--结转-->
|
|
|
+ <DkModal
|
|
|
+ :loading="loading"
|
|
|
+ v-model="carryoverModal"
|
|
|
+ ref="modal_editAdd"
|
|
|
+ @on-visible-change="handleVisibleModal"
|
|
|
+ @modalOk="save"
|
|
|
+ :saveFlag="true"
|
|
|
+ :title="modalTitle"
|
|
|
+ >
|
|
|
+ <DkForm ref="formInline" v-model="formData" :col-count="1">
|
|
|
+ <DkFormItem prop="crovMonth" :required="true" :data-type="$config.dataType.date">
|
|
|
+ <DatePickerPop ref="crovMonth" v-model="formData.crovMonth" type="month" @onChange="onChange"/>
|
|
|
+ </DkFormItem>
|
|
|
+ <DkFormItem prop="crovMonthDateRange" :required="true">
|
|
|
+ <InputPop v-model="formData.crovMonthDateRange" ref="crovMonthDateRange" :readonly="true"/>
|
|
|
+ </DkFormItem>
|
|
|
+ <!-- 备注 -->
|
|
|
+ <DkFormItem prop="remarks">
|
|
|
+ <InputPop v-model="formData.remarks" textareaFlag/>
|
|
|
+ </DkFormItem>
|
|
|
+ </DkForm>
|
|
|
+ </DkModal>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+
|
|
|
+import {indexMixin} from '@/mixins'
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: 'material-carryover',
|
|
|
+ mixins: [indexMixin],
|
|
|
+ data() {
|
|
|
+ let self = this
|
|
|
+ return {
|
|
|
+ searchContent:
|
|
|
+ [
|
|
|
+ // 结转月份
|
|
|
+ {
|
|
|
+ itemCode: 'crovMonth',
|
|
|
+ valueFormat: {code: 'crovMonth', default: [new Date().addMonths(-6).toDateStr(), new Date().toDateStr()]},
|
|
|
+ valueKind: 'DATE_RANGE',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ materialCarryoverItem:[], // 用于结转明细数据
|
|
|
+ materialCarryoverItemList:[
|
|
|
+ {field: 'modelCode', title: self.$t('materialModelCode'), width: '200px', type: 'text'},
|
|
|
+ {field: 'modelName', title: self.$t('materialModelName'), width: '200px', type: 'text'},
|
|
|
+ {field: 'modelCategoryName', title: self.$t('materialModelCategoryCode'), width: '200px', type: 'text'},
|
|
|
+ {field: 'modelSpecs', width: '200px', type: 'text'},
|
|
|
+ {field: 'modelPlace', width: '200px', type: 'text'},
|
|
|
+ {field: 'inventoryQty', width: '200px', type: 'number'},
|
|
|
+ {field: 'unitName', width: '200px', dataType: 'text'},
|
|
|
+ {field: 'whName', width: '200px', dataType: 'text'},
|
|
|
+ {field: 'placeName', width: '200px', dataType: 'text'},
|
|
|
+ ],
|
|
|
+ materialCarryoverItemTab: this.$config.materialCarryoverItemTab.materialCarryoverItem,
|
|
|
+ detailOptions: [{label: self.$t('material-carryover-item'), name: 'materialCarryoverItem'}, //结转明细
|
|
|
+ ],
|
|
|
+ detailPageInfo: {
|
|
|
+ total: 0,
|
|
|
+ pageSize: this.$config.pageSize,
|
|
|
+ currentPage: 1
|
|
|
+ },
|
|
|
+ // 表单
|
|
|
+ formData: {
|
|
|
+ crovMonth:new Date().addMonths(-1),
|
|
|
+ crovMonthDateRange:'',
|
|
|
+ dateBegin:'',
|
|
|
+ dateEnd:'',
|
|
|
+ dateEndSearch:'',
|
|
|
+ makeUserId:self.$store.state.user.id,
|
|
|
+ },
|
|
|
+ carryoverModal:false,
|
|
|
+ modalTitle:'',
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ // region 其他操作
|
|
|
+ /**
|
|
|
+ * @desc : 获取结转的最大账务月
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/4/10 11:01
|
|
|
+ */
|
|
|
+ getMaxProdCarryoverDate() {
|
|
|
+ let params = {
|
|
|
+ ftyId: this.$store.state.user.ftyId,
|
|
|
+ }
|
|
|
+ this.excute(this.$service.materialCarryoverService, this.$service.materialCarryoverService.getMaxProdCarryoverDate, params).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE && res.data) {
|
|
|
+ let date = new Date(res.data);
|
|
|
+ this.formData.crovMonth = date.addMonths(1);
|
|
|
+ }
|
|
|
+ // 获取账务月开始和结束
|
|
|
+ this.getCarryoverAccountDate(this.formData.crovMonth.format());
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取账务月开始和结束
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/2/7 14:09
|
|
|
+ */
|
|
|
+ getCarryoverAccountDate(month) {
|
|
|
+ let params = {
|
|
|
+ ftyId: this.$store.state.user.ftyId,
|
|
|
+ month: month,
|
|
|
+ }
|
|
|
+ this.excute(this.$service.commonService, this.$service.commonService.getCarryoverAccountDate, params).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ let stringDate = res.data.substring(1,res.data.length-1);
|
|
|
+ let list = stringDate.split(",");
|
|
|
+ this.formData.dateBegin = list[1];
|
|
|
+ this.formData.dateEnd = list[2];
|
|
|
+ this.formData.dateEndSearch = list[3];
|
|
|
+ this.formData.crovMonthDateRange = list[1] + this.$t('to') + list[2];
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 结转
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/22 9:32
|
|
|
+ */
|
|
|
+ carryover(){
|
|
|
+ this.carryoverModal = true
|
|
|
+ this.modalTitle = this.$t('material-carryover')
|
|
|
+ this.modalParams = {
|
|
|
+ button: this.$config.formMode.carryover,
|
|
|
+ closeFlag: true
|
|
|
+ }
|
|
|
+ // 获取结转的最大账务月
|
|
|
+ this.getMaxProdCarryoverDate()
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 反结
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/22 13:42
|
|
|
+ */
|
|
|
+ reverseCarryover(){
|
|
|
+ this.$IBMessage({
|
|
|
+ content: this.$t('Q_002', {'param': this.$v('reverseCarryover')}),
|
|
|
+ title: this.$t('systemQuestion')
|
|
|
+ },
|
|
|
+ {
|
|
|
+ ok: () => {
|
|
|
+ let params = {
|
|
|
+ ftyId: this.$store.state.user.ftyId,
|
|
|
+ crovId: this.$refs['table-select'].batchKeys[0]
|
|
|
+ }
|
|
|
+ this.excute(this.$service.materialCarryoverService, this.$service.materialCarryoverService.reverseProdCarryover, params).then(res => {//调用api接口
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.$Message.success(this.$t('I_001', {'param': this.$v('reverseCarryover')}))
|
|
|
+ } else {
|
|
|
+ this.$Message.warning(res.message)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 结转月改变事件
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/22 9:59
|
|
|
+ */
|
|
|
+ onChange(e){
|
|
|
+ if(e){
|
|
|
+ this.getCarryoverAccountDate(e.toDateStr())
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ this.formData.dateBegin = ''
|
|
|
+ this.formData.dateEnd = ''
|
|
|
+ this.formData.dateEndSearch = ''
|
|
|
+ this.formData.crovMonthDateRange = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 校验
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/22 16:53
|
|
|
+ */
|
|
|
+ validData() {
|
|
|
+ if(new Date(this.formData.dateEnd).getTime() >= new Date().getTime()){
|
|
|
+ this.$Message.warning(this.$t('Q_014'))
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 保存数据
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/22 13:40
|
|
|
+ */
|
|
|
+ saveData() {
|
|
|
+ return this.excute(this.$service.materialCarryoverService, this.$service.materialCarryoverService.saveProdCarryover, this.params)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 分页查询
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/22 15:20
|
|
|
+ */
|
|
|
+ detailPageSizeChange(detailPageInfo){
|
|
|
+ // 查询数据
|
|
|
+ this.getProdCarryoverItem(this.$refs['table-select'].batchKeys[0],detailPageInfo).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.materialCarryoverItem = res.data.list;
|
|
|
+ if (this.detailPageInfo.currentPage == 1) {
|
|
|
+ this.detailPageInfo.total = res.data.total
|
|
|
+ this.detailPageInfo.currentPage = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取在产结转明细信息
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/21 15:57
|
|
|
+ */
|
|
|
+ getProdCarryoverItem(crovId,detailPageInfo) {
|
|
|
+ this.detailPageInfo.currentPage = detailPageInfo.currentPage;
|
|
|
+ this.detailPageInfo.pageSize = detailPageInfo.pageSize;
|
|
|
+ let params = {
|
|
|
+ ftyId: this.$store.state.user.ftyId,
|
|
|
+ crovId: crovId,
|
|
|
+ currentPage : this.detailPageInfo.currentPage,
|
|
|
+ pageSize : this.detailPageInfo.pageSize
|
|
|
+ }
|
|
|
+ return this.excute(this.$service.materialCarryoverItemService, this.$service.materialCarryoverItemService.selectByCond, params)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 行切换事件
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/3/21 15:57
|
|
|
+ */
|
|
|
+ currentChangeEvent({row}) {
|
|
|
+ if (row != null) {
|
|
|
+ // 获取在产结转明细信息
|
|
|
+ this.getProdCarryoverItem(row.crovId, this.detailPageInfo).then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.materialCarryoverItem = res.data.list;
|
|
|
+ if (this.detailPageInfo.currentPage == 1) {
|
|
|
+ this.detailPageInfo.total = res.data.total
|
|
|
+ this.detailPageInfo.currentPage = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 获取数据
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/1/29 11:11
|
|
|
+ */
|
|
|
+ getData(params) {
|
|
|
+ // 查询数据
|
|
|
+ let excute = this.excute(this.$service.materialCarryoverService, this.$service.materialCarryoverService.selectByCond, params);
|
|
|
+ excute.then(res => {
|
|
|
+ if (res.code === this.$config.SUCCESS_CODE) {
|
|
|
+ this.materialCarryoverItem = []
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return excute
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 给参数赋值
|
|
|
+ * @author : 姜宁
|
|
|
+ * @date : 2023/1/29 15:15
|
|
|
+ */
|
|
|
+ setParams(){
|
|
|
+ this.params = {...this.formData}
|
|
|
+ this.params.crovMonth = this.formData.crovMonth.getFirstDateStr();
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @desc : 调用同一路由,需要使用这个方法去设置created的方法
|
|
|
+ * @author : 周兴
|
|
|
+ * @date : 2023/2/8 12:55
|
|
|
+ */
|
|
|
+ createdInit(){
|
|
|
+ this.primaryKey = 'crovId' // 设置主键
|
|
|
+ },
|
|
|
+ // endregion
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.routeObjName = 'materialCarryover' // 设置路由名称
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+
|
|
|
+</style>
|