12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292 |
- <template>
- <div class="app-container">
- <div class="title-container">
- <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
- </div>
- <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
- <template slot="left">
- <el-col :xs="24" :sm="12" :lg="2" :span="6">
- <PermissionButton menu-code="_views_major_order" class-name="filter-item" type="danger" icon="el-icon-circle-plus-outline"
- :page-jump="true" round style="float: left" :page-query="{'couldEdit':true,'couldBack':true}" />
- </el-col>
- <MoreSearchBar business="MAJOR_BUSINESS" @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery"
- :nodeCode="false" :financial="false" :clientManager="false" :businessObjectType="false" :department="false"></MoreSearchBar>
- </template>
- <parentTable :data="pageData.records" slot="table" style="width: 100%;">
- <el-table-column label="订单名称" align="center" show-overflow-tooltip width='300' >
- <template slot-scope="{row}">
- <span>{{ row.orderName }}</span>
- </template>
- </el-table-column>
- <el-table-column label="订单号" align="center" width='200' >
- <template slot-scope="{row}">
- <span>{{ row.orderId }}</span>
- </template>
- </el-table-column>
- <el-table-column label="负责人" align="center" width='120'>
- <template slot-scope="{row}">
- <span>{{ row.principal }}</span>
- </template>
- </el-table-column>
- <el-table-column label="客户经理" align="center" width='120'>
- <template slot-scope="{row}">
- <span>{{ row.clientManager }}</span>
- </template>
- </el-table-column>
- <el-table-column label="客户名称" align="center" width='120' show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.clienteleName }}</span>
- </template>
- </el-table-column>
- <el-table-column label="业务来源" align="center" width='120' show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.clienteleSubName }}</span>
- </template>
- </el-table-column>
- <el-table-column label="客户联系人" align="center" width='120' show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.clienteleContactName }}</span>
- </template>
- </el-table-column>
- <el-table-column label="委托人" align="center" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.bailor }}</span>
- </template>
- </el-table-column>
- <el-table-column label="产权人" align="center" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.owner }}</span>
- </template>
- </el-table-column>
- <el-table-column label="实收款(元)" align="center" width='120'>
- <template slot-scope="{row}">
- <span style="color:red;font-weight:bold">{{ row.realAmount }}</span>
- </template>
- </el-table-column>
- <el-table-column label="应收款(元)" align="center" width='120'>
- <template slot-scope="{row}">
- <span>{{ row.shouldAmount }}</span>
- </template>
- </el-table-column>
- <el-table-column label="应收款备注" align="center" width='120' show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.remark}}</span>
- </template>
- </el-table-column>
- <el-table-column label="下单时间" align="center" width='200'>
- <template slot-scope="{row}">
- <span>{{ row.created}}</span>
- </template>
- </el-table-column>
- <el-table-column fixed="right" label="操作" width="200" align="center">
- <template slot-scope="{row}">
- <div>
- <PermissionButton menu-code="_views_myOrder_detail" class-name="filter-item" type="text"
- :page-jump="true" size="mini" :page-query="{'couldEdit':false,'id':row.id, 'back':'/major/my/order','recall':true,'couldBack':true}" />
- <el-button type="text" size="small" @click="openShouldAmountDialog(row)">应收款</el-button>
- <el-button type="text" size="small" @click="openAllotProductionDialog(row)">实收款分配</el-button>
- </div>
- <div>
- <el-button type="text" size="small" @click="openFinanceInvoiceDialog(row.orderFundId)">申请开票</el-button>
- <el-button type="text" size="small" @click="productionList(row.id)">产品包</el-button>
- </div>
- </template>
- </el-table-column>
- </parentTable>
- </y-page-list-layout>
- <el-dialog :visible.sync="shouldAmountDialog" width="35%" center top="35vh" custom-class="doWarehouseClass" @closed="cleanData">
- <el-form ref="fund" :model="fund" style="margin-left:40px">
- <el-row>
- <el-col :xs="24" :sm="12" :lg="24" :span="12">
- <el-form-item label="应收款金额(元):" prop="shouldAmount" label-width="160px" class="postInfo-container-item"
- :rules="{required: true, message: '应收款金额不能为空', trigger: 'blur'}">
- <el-input-number :precision="2" :min="null" :value-on-clear="0" v-model.number="fund.shouldAmount" type="number"
- style="width:300px" class="filter-item" />
- </el-form-item >
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="24" :span="12">
- <el-form-item label="备注:" prop="remark" label-width="160px" class="postInfo-container-item">
- <el-input style="width:300px" type="textarea" v-model="fund.remark"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="shouldAmountDialog = false">取 消</el-button>
- <el-button type="primary" @click="saveShouldAmount()">确 定</el-button>
- </span>
- </el-dialog>
- <el-dialog :visible.sync="makeInvoiceListDialog" width="90%" center custom-class="doWarehouseClass" >
- <el-button type="danger" round @click="openNewInvoiceDialog">新增开票</el-button>
- <div style="margin-top:30px;">
- <el-table
- :data="invoiceData"
- stripe
- style="width: 100%">
- <el-table-column
- align = "center"
- prop="title"
- label="发票抬头"
- width="180">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="taxNo"
- label="税号"
- width="180">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="type"
- label="发票类型">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="state"
- label="开票状态">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="planAmount"
- label="计划开票金额">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="planMakeDate"
- label="计划开票日期">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="realAmount"
- label="实际开票金额">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="realMakeDate"
- label="实际开票日期">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="reason"
- label="驳回/作废原因">
- </el-table-column>
- <el-table-column
- align = "center"
- prop="remark"
- label="备注">
- </el-table-column>
- <el-table-column fixed="right" label="操作" width="200" align = "center">
- <template slot-scope="{row}">
- <el-button @click="invoiceDetail(row.id)" type="text" size="small">修改</el-button>
- <el-button @click="cancellation(row.id)" type="text" size="small">作废</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-dialog>
- <el-dialog :visible.sync="newInvoiceDialog" width="75%" center custom-class="doWarehouseClass" @closed="cleanFinanceInvoiceForm">
- <el-form ref="invoice" :model="invoice" >
- <el-divider content-position="left">开票信息</el-divider>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="发票抬头:"
- :rules="{required: true, message: '发票抬头不能为空', trigger: 'blur'}"
- prop="title"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.title" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="发票类型:"
- :rules="{required: true, message: '发票类型不能为空', trigger: 'blur'}"
- prop="type"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-select v-model="invoice.type" style="width:206px">
- <el-option label="普票" value="普票"></el-option>
- <el-option label="专票" value="专票"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="待开金额(元):"
- prop="planAmount"
- :rules="{required: true, message: '使用权面积不能为空', trigger: 'blur'}"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.planAmount" type="number"
- style="width:206px" class="filter-item" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="税号:"
- :rules="{required: true, message: '税号不能为空', trigger: 'blur'}"
- prop="taxNo"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.taxNo" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="计划开票日期:"
- prop="planMakeDate"
- :rules="{required: true, message: '计划开票日期不能为空', trigger: 'blur'}"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-date-picker
- v-model="invoice.planMakeDate" type="date" placeholder="选择日期" style="width:206px">
- </el-date-picker>
- </el-form-item>
- </el-col>
- </el-row>
- <el-divider content-position="left">银行信息</el-divider>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="开户行:"
- prop="bankName"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.bankName" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="银行账号:"
- prop="bankAccount"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.bankAccount" class="filter-item" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="地址:"
- prop="bankAddress"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.bankAddress" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="电话:"
- prop="bankTel"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.bankTel" class="filter-item" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-divider content-position="left">发票信息</el-divider>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="开票项目:"
- prop="makeItem"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.makeItem" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="项目数量:"
- prop="itemQuantity"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.itemQuantity" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="计量单位:"
- prop="itemUnit"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.itemUnit" class="filter-item" placeholder="个/套/箱/次/斤/公斤/..."/>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="税点:"
- prop="taxRate"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxRate" type="number"
- style="width:206px" class="filter-item" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item
- label="税额:"
- prop="taxAmount"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="invoice.taxAmount" type="number"
- style="width:206px" class="filter-item" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="18" :span="6">
- <el-form-item
- label="备注:"
- prop="remark"
- label-width="140px"
- class="postInfo-container-item"
- >
- <el-input v-model.trim="invoice.remark" type="textarea" class="filter-item" />
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="newInvoiceDialog = false">取 消</el-button>
- <el-button type="primary" @click="saveInvoice()">确 定</el-button>
- </span>
- </el-dialog>
- <el-dialog :visible.sync="outWarehouseListDialog" width="90%" center custom-class="doWarehouseClass" >
- <el-button type="danger" round @click="outWarehouseDialog = true">新增出库申请</el-button>
- <div style="margin-top:30px;">
- <el-table
- :data="outApllyList"
- stripe
- style="width: 100%">
- <el-table-column
- align = "center"
- prop="realAmount"
- label="申请时实收款金额(元)"
- width="180">
- <template slot-scope="{row}">
- <span>{{ row.realAmount==null?'-': row.realAmount}}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="applyName"
- label="申请人">
- <template slot-scope="{row}">
- <span>{{ row.applyName }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="remark"
- label="申请原因" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.remark==null?'-':row.remark }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="created"
- label="申请日期" width="150">
- <template slot-scope="{row}">
- <span>{{ row.created }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="departmentCheckState"
- label="部门审核状态">
- <template slot-scope="{row}">
- <span>{{ row.departmentCheckState==null?'-':row.departmentCheckState }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="departmentChecker"
- label="部门审核人">
- <template slot-scope="{row}">
- <span>{{ row.departmentChecker==null?'-':row.departmentChecker }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="departmentCheckTime"
- label="部门审核时间" width="150">
- <template slot-scope="{row}">
- <span>{{ row.departmentCheckTime==null?'-': row.departmentCheckTime}}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="departmentReply"
- label="部门审核回复" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.departmentReply==null?'-':row.departmentReply }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="financeCheckState"
- label="财务审核状态">
- <template slot-scope="{row}">
- <span>{{ row.financeCheckState==null?'-':row.financeCheckState }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="financeChecker"
- label="财务审核人">
- <template slot-scope="{row}">
- <span>{{ row.financeChecker==null?'-':row.financeChecker }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="financeCheckTime"
- label="财务审核时间" width="150">
- <template slot-scope="{row}">
- <span>{{ row.financeCheckTime==null?'-':row.financeCheckTime }}</span>
- </template>
- </el-table-column>
- <el-table-column
- align = "center"
- prop="financeReply"
- label="财务审核回复" show-overflow-tooltip>
- <template slot-scope="{row}">
- <span>{{ row.financeReply==null?'-':row.financeReply }}</span>
- </template>
- </el-table-column>
- <!-- <el-table-column fixed="right" label="操作" width="100" align = "center">
- <template slot-scope="{row}">
- <el-button @click="outApplyCancel(row.id,row.productionId,row.financeCheckState)" type="text" size="small">撤销</el-button>
- </template>
- </el-table-column> -->
- </el-table>
- </div>
- </el-dialog>
- <el-dialog :visible.sync="outWarehouseDialog" width="35%" center top="35vh" custom-class="doWarehouseClass" >
- <el-form ref="outWarehouse" :model="outWarehouse" style="margin-left:40px">
- <el-row>
- <el-col :xs="24" :sm="12" :lg="24" :span="12">
- <el-form-item label="出库原因:" prop="remark" label-width="160px" class="postInfo-container-item">
- <el-input style="width:300px" type="textarea" v-model="outWarehouse.remark"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="outWarehouseDialog = false">取 消</el-button>
- <el-button type="primary" @click="doApplyOut()">确 定</el-button>
- </span>
- </el-dialog>
- <el-dialog :visible.sync="productionListDialog" width="55%" center custom-class="doWarehouseClass">
- <el-collapse v-model="activeName" accordion v-if="bag.productions.length>0">
- <el-collapse-item v-for="(r,index) in bag.productions" :name="index">
- <template slot="title">
- <i class="el-icon-document"></i>
- <span style="font-weight:bold;margin-left:10px;margin-right:10px">{{ aliasProductionType(r.production) }}</span>
- {{r.productionNo}}
- </template>
- <el-card style="margin-top:20px" shadow="hover">
- <div slot="header" class="clearfix">
- <!-- <span style="font-size:16px;font-weight:bold;">{{aliasProductionType(r.production)}}</span> -->
- <span style="margin-left:30px;font-size:16px;font-weight:bold; color:red">实收款金额:{{r.realAmount!=null?r.realAmount:0}}¥</span>
- <el-button v-if="(r.production!='STATEMENT' && r.repertoryState !=null && !r.repertoryState)"
- style="float: right; padding: 3px 0;margin-left:10px" type="text" @click="openApplyOutWarehouseList(r)">出库申请</el-button>
- <el-button v-if="r.production==='STATEMENT' && !r.delivery" style="float: right; padding: 3px 0;" type="text" @click="confirmDelivery(r.id)">确认送达</el-button>
- </div>
- <el-form :model="r">
- <el-row>
- <el-col :xs="24" :sm="12" :lg="24" :span="12">
- <el-form-item label="项目名称:" prop="name" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.name" type="text" class="filter-item" disabled readonly/>
- </el-form-item >
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="12" :span="12">
- <el-form-item label="委托方:" prop="clientName" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.clientName" type="text" class="filter-item" disabled readonly/>
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="12" :span="12">
- <el-form-item label="产权人:" prop="owner" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.owner" type="text" class="filter-item" disabled readonly/>
- </el-form-item >
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="评估总价:" prop="evaluateAmount" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.evaluateAmount/10000" type="text" class="filter-item" disabled readonly>
- <template slot="append">万元</template>
- </el-input>
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="评估面积:" prop="evaluateAcreage" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.evaluateAcreage" type="text" class="filter-item" disabled readonly>
- <template slot="append">平方</template>
- </el-input>
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="评估单价:" prop="evaluatePrice" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.evaluatePrice/10000" type="text" class="filter-item" disabled readonly>
- <template slot="append">万元</template>
- </el-input>
- </el-form-item >
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="库存状态:" prop="repertoryState" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.repertoryState==null?'未入库':(r.repertoryState?'已出库':'已入库')" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="入库时间:" prop="repertoryInTime" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.repertoryInTime" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="出库时间:" prop="repertoryOutTime" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.repertoryOutTime" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="送达状态:" prop="delivery" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.delivery?'已送达':'未送达'" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="归档状态:" prop="ifSaveFile" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.ifSaveFile?'已归档':'未归档'" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="12">
- <el-form-item label="归档时间:" prop="saveFileDate" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.saveFileDate" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- </el-row>
- </el-form>
- </el-card>
- </el-collapse-item>
- </el-collapse>
- <el-empty v-else description="暂无产品"></el-empty>
- </el-dialog>
- <el-dialog :visible.sync="allotAmountDialog" width="65%" center custom-class="doWarehouseClass" >
- <el-form v-model="orderProduction" ref="orderProduction">
- <el-row>
- <el-col :xs="24" :sm="12" :lg="24" :span="6">
- <el-button style="float:right" type="success" @click="allotProduction()">确认分配</el-button>
- </el-col>
- </el-row>
- <el-card style="margin-top:20px" shadow="hover">
- <div slot="header" class="clearfix">
- <el-row>
- <el-col :xs="24" :sm="12" :lg="12" :span="6">
- <el-form-item label="订单名称:" prop="orderName" label-width="140px" class="postInfo-container-item">
- <el-input :value="orderProduction.orderName" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="12" :span="6">
- <el-form-item label="订单号:" prop="orderId" label-width="140px" class="postInfo-container-item">
- <el-input :value="orderProduction.orderId" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- </el-row>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="12" :span="6">
- <el-form-item label="订单已认领金额:" prop="realAmount" label-width="160px" :class="['postInfo-container-item','real-amount']">
- <el-input :value="orderProduction.realAmount" type="text" class="filter-item" disabled readonly>
- <template slot="append">元</template>
- </el-input>
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="12" :span="6">
- <el-form-item label="未分配金额:" prop="notAllotAmount" label-width="160px" :class="['postInfo-container-item','real-amount']">
- <el-input :value="notAllotAmount" type="text" class="filter-item" disabled readonly >
- <template slot="append">元</template>
- </el-input>
- </el-form-item >
- </el-col>
- </el-row>
- </div>
- <el-row>
- <el-col :xs="24" :sm="12" :lg="12" :span="6">
- <el-form-item label="产品列表:" prop="orderName" label-width="140px" class="postInfo-container-item" />
- </el-col>
- </el-row>
- <div v-if="orderProduction.reports!=null && orderProduction.reports.length>0">
- <el-row v-for="(r,index) in orderProduction.reports">
- <div >
- <el-col :xs="24" :sm="12" :lg="6" :span="6">
- <el-form-item :label="productionLabel+(index+1)+':'" prop="productionType" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.productionType" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="10" :span="6">
- <el-form-item label="报告号:" prop="businessSubId" label-width="120px" class="postInfo-container-item">
- <el-input :value="r.businessSubId" type="text" class="filter-item" disabled readonly />
- </el-form-item >
- </el-col>
- <el-col :xs="24" :sm="12" :lg="8" :span="6">
- <el-form-item label="已分配金额:" prop="claimedAmount" label-width="140px" class="postInfo-container-item">
- <el-input-number :precision="2" :min="0" :value-on-clear="0" v-model.number="r.claimedAmount" type="number"
- style="width:100%" class="filter-item" readonly disabled/>
- </el-form-item >
- </el-col>
- </div>
- </el-row>
- </div>
- <span v-else style="margin-left:140px;color:RGB(153,153,153)">暂无产品</span>
- </el-card>
- </el-form>
- </el-dialog>
- </div>
- </template>
- <script>
- import YPageListLayout from '@/components/YPageListLayout'
- import Breadcrumb from '@/components/Breadcrumb'
- import MoreSearchBar from '@/components/MoreSearchBar'
- export default {
- name: 'myOrder',
- components: {
- Breadcrumb,
- YPageListLayout,
- MoreSearchBar
- },
- filters: {
-
- },
- data() {
- return {
- pageData: { records: [] },
- listQuery: {
- page: 1,
- size: 10,
- descs: 'id',
- keyword:null,
- startDate:null,
- endDate:null,
- },
- shouldAmountDialog:false,
- makeInvoiceListDialog:false,
- newInvoiceDialog:false,
- outWarehouseDialog:false,
- outWarehouseListDialog:false,
- productionListDialog:false,
- allotAmountDialog:false,
- fund:{
- id:null,
- businessType:null,
- orderName:null,
- orderId:null,
- shouldAmount:null,
- remark:null,
- businessType:null,
- businessId:null,
- businessSubId:null,
- productionFundId:null,
- evaluateAmount:null
- },
- invoiceData:[],
- invoice:{
- id:null,
- orderFundId:null,
- title:null,
- type:null,
- taxNo:null,
- planAmount:null,
- planMakeDate:null,
- bankName:null,
- bankAccount:null,
- bankAddress:null,
- bankTel:null,
- makeItem:null,
- itemQuantity:null,
- itemUnit:null,
- taxRate:null,
- taxAmount:null,
- remark:null
- },
- outWarehouse:{
- id:null,
- productionFundId:null,
- remark:null,
- realAmount:null
- },
- outApllyList:[],
- bag:{
- businessId:null,
- businessType:null,
- reportNo:null,
- productions:[]
- },
- activeName: '0',
- todoBusinessId:null,
- taskId:null,
- orderProduction:{
- reports:[],
- orderName:null,
- orderId:null,
- realAmount:null,
- id:null
- },
- productionLabel:"产品",
- notAllotAmount:null,
- orderDate:'',
- 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]);
- }
- }]
- },
- }
- },
- created() {
- this.getList();
- this.todoBusinessId = this.$route.query.todoBusinessId;
- this.taskId = this.$route.query.tId;
- this.currentNodeId = this.$route.query.cId;
- this.statementNo = this.$route.query.sNo;
- this.reportNo = typeof(this.$route.query.rNo)==undefined?null:this.$route.query.rNo;
- if(this.todoBusinessId){
- this.productionListDialog = true;
- this.productionList(this.todoBusinessId,this.reportNo==null?this.statementNo:this.reportNo)
- }
- },
- methods: {
-
- resetSearch() {
- this.$router.push({ query: {} });
- this.orderDate = '';
- this.listQuery = {
- current: 1,
- size: 10,
- descs: 'id',
- }
- this.getList()
- },
-
- searchList() {
- // 重置分页
- this.listQuery.page = 1;
- this.listQuery.size = 10;
- if (this.orderDate){
- this.listQuery.startDate = this.orderDate[0]+' 00:00:00';
- this.listQuery.endDate = this.orderDate[1]+ ' 23:59:59';
- }
- this.getList()
- },
- getList() {
- this.$api.majorProduction.myOrder(Object.assign({}, this.listQuery)).then(res=>{
- if (res.code ===200){
- this.pageData = res.data;
- }
- })
- },
- aliasProductionType(code){
- if (code === 'STATEMENT'){
- return '价值意见书';
- }
- if (code === 'LETTER'){
- return '复评函';
- }
- return '报告';
- },
- openShouldAmountDialog(row){
- this.shouldAmountDialog = true;
- this.fund.id = row.orderFundId;
- this.fund.businessType = 'MAJOR_BUSINESS';
- this.fund.businessId= row.id;
- this.fund.orderFundId = row.orderFundId;
- this.fund.shouldAmount = row.shouldAmount;
- this.fund.remark = row.remark;
- this.fund.orderId = row.orderId;
- this.fund.orderName = row.orderName;
- },
- saveShouldAmount(){
- this.$refs.fund.validate(valid=>{
- if (valid){
- if(this.fund.orderFundId){
- this.$api.orderFund.edit(this.fund).then(res=>{
- if (res.code ===200 && res.data){
- this.$notify({
- title: '成功',
- message: '订单应收款已完善',
- type: 'success',
- duration: 1000
- });
- this.getList();
- this.shouldAmountDialog = false;
- }else{
- this.$notify({
- title: '失败',
- message: '订单应收款保存错误',
- type: 'error',
- duration: 1000
- });
- }
- })
- }else {
- this.$api.orderFund.add(this.fund).then(res=>{
- if (res.code ===200 && res.data){
- this.$notify({
- title: '成功',
- message: '订单应收款已完善',
- type: 'success',
- duration: 1000
- });
- this.getList();
- this.shouldAmountDialog = false;
- }else {
- this.$notify({
- title: '失败',
- message: '订单应收款保存错误',
- type: 'error',
- duration: 1000
- });
- }
- })
- }
- }
- })
- },
- cleanData(){
- this.fund.shouldAmount = null;
- this.fund.id = null;
- this.fund.businessType=null;
- this.fund.remark=null;
- this.fund.businessType=null;
- this.fund.businessId=null;
- this.fund.businessSubId=null;
- this.fund.productionFundId =null;
- this.fund.remark = null;
- this.fund.evaluateAmount = null
- },
- getFinanceInvoiceList(){
- this.$api.financeInvoice.getList(this.invoice.orderFundId).then(res=>{
- if (res.code === 200){
- this.invoiceData = res.data
- }
- })
- },
- openFinanceInvoiceDialog(orderFundId){
- if (!orderFundId){
- this.$notify({
- title: '提示',
- message: '请先完善应收款,再操作。',
- type: 'info',
- duration: 2000
- });
- return;
- }
- this.makeInvoiceListDialog = true;
- if (orderFundId){
- this.invoice.orderFundId = orderFundId;
- this.getFinanceInvoiceList();
- }
- },
- openNewInvoiceDialog(){
- if (!this.invoice.orderFundId){
- this.$notify({
- title: '提示',
- message: '申请开票前,请先完善应收款金额。',
- type: 'info',
- duration: 2000
- });
- return ;
- }else {
- this.newInvoiceDialog = true;
- }
- },
- saveInvoice(){
- this.$refs.invoice.validate(valid=>{
- if (valid){
- if (this.invoice.id){
- this.$api.financeInvoice.edit(this.invoice).then(res=>{
- if (res.code ===200 && res.data){
- this.$notify({
- title: '成功',
- message: '开票申请修改成功',
- type: 'success',
- duration: 2000
- });
- this.getFinanceInvoiceList();
- this.newInvoiceDialog = false;
- }else{
- this.$notify({
- title: '失败',
- message: '开票申请修改失败',
- type: 'error',
- duration: 2000
- });
- }
- })
- }else{
- this.$api.financeInvoice.add(this.invoice).then(res=>{
- if (res.code ===200 && res.data){
- this.$notify({
- title: '成功',
- message: '开票申请提交成功',
- type: 'success',
- duration: 2000
- });
- this.getFinanceInvoiceList();
- this.newInvoiceDialog = false;
- }else{
- this.$notify({
- title: '失败',
- message: '开票申请提交失败',
- type: 'error',
- duration: 2000
- });
- }
- })
- }
- }
- })
- },
- cleanFinanceInvoiceForm(){
- },
- invoiceDetail(id){
- this.$api.financeInvoice.detail(id).then(res=>{
- if (res.code===200){
- this.invoice = res.data;
- }
- })
- this.newInvoiceDialog = true;
- },
- cancellation(id){
- this.$confirm('请确认是否作废此开票?', '提示',{
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning',
- center: true
- }).then(()=>{
- this.$api.financeInvoice.cancellation(id).then(res=>{
- if (res.code === 200 && res.data){
- this.$notify({
- title: '成功',
- message: '开票已作废',
- type: 'success',
- duration: 2000
- });
- this.getFinanceInvoiceList();
- }else {
- this.$notify({
- title: '失败',
- message: '开票作废失败',
- type: 'error',
- duration: 2000
- });
- }
- })
- })
- },
- openApplyOutWarehouseList(row){
- this.getListByBizTypeProductionId('MAJOR_BUSINESS',row.id)
- this.outWarehouseListDialog = true;
- this.outWarehouse.productionFundId= row.productionFundId;
- this.outWarehouse.realAmount = row.realAmount
- this.outWarehouse.ifProductionFund = row.realAmount!=null
- this.outWarehouse.id = row.id;
- this.outWarehouse.businessType = 'MAJOR_BUSINESS';
- },
- getApplyOutList(productionFundId){
- this.$api.productionOutWarehouse.getList(productionFundId).then(res=>{
- if (res.code === 200){
- this.outApllyList = res.data;
- }
- })
- },
- getListByBizTypeProductionId(businessType,productionId){
- this.$api.productionOutWarehouse.getListByBizTypeProductionId(businessType,productionId).then(res=>{
- if (res.code === 200){
- this.outApllyList = res.data;
- }
- })
- },
- doApplyOut(){
- let taskRecordDTO = new Object();
- taskRecordDTO.recordId = this.taskId;
- taskRecordDTO.taskData = this.outWarehouse;
- this.$api.productionOutWarehouse.add(taskRecordDTO).then(res=>{
- if (res.code === 200 && res.data){
- this.$notify({
- title: '成功',
- message: '出库申请已提交',
- type: 'success',
- duration: 2000
- });
- this.commitNode();
- this.outWarehouseDialog = false;
- this.outWarehouseListDialog = false;
- }else {
- this.$notify({
- title: '失败',
- message: '出库申请提交失败',
- type: 'error',
- duration: 2000
- });
- }
- })
- },
- outApplyCancel(id,productionId,state){
- this.$confirm('请确认是否撤销此出库申请?','提示',{
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning',
- center: true
- }).then(()=>{
- if (state==='审核通过'){
- this.$notify({
- title: '提示',
- message: '出库申请已通过,无法撤销。',
- type: 'info',
- duration: 2000
- });
- return;
- }
- if (id){
- this.$api.productionOutWarehouse.cancel(id).then(res=>{
- if (res.code === 200 && res.data){
- this.$notify({
- title: '成功',
- message: '申请已撤销',
- type: 'success',
- duration: 2000
- });
- this.getListByBizTypeProductionId('MAJOR_BUSINESS',productionId);
- }
- })
- }
- })
- },
- productionList(id){
- this.productionListDialog = true;
- this.bag.businessId = id;
- if (id){
- this.$api.businessProduction.bag(id).then(res=>{
- if (res.code === 200){
- this.bag = res.data;
- }
- })
- }
- },
- aliasProductionType(code){
- let name = '价值意见书';
- if (code ==='REPORT'){
- name = '报告';
- }
- if (code ==='LETTER'){
- name = '复评函';
- }
- return name;
- },
- confirmDelivery(id){
- this.$confirm('确认执行产品送达操作?','提示',{
- confirmButtonText: '确认送达',
- cancelButtonText: '取消',
- type: 'warning',
- center: true
- }).then(()=>{
- let taskRecordDTO = new Object();
- taskRecordDTO.recordId = this.taskId;
- taskRecordDTO.taskData = id;
- this.$api.majorProduction.confirmDelivery(taskRecordDTO).then(res=>{
- if (res.code ===200 && res.data ){
- this.$notify({
- title: '成功',
- message: '产品送达状态修改成功',
- type: 'success',
- duration: 2000
- });
- this.commitNode();
- // if (this.bag.businessId){
- // this.$api.businessProduction.bag(this.bag.businessId,this.reportNo).then(res=>{
- // if (res.code === 200){
- // this.bag = res.data;
- // }
- // })
- // }
- }else {
- this.$notify({
- title: '失败',
- message: '产品送达状态修改失败',
- type: 'error',
- duration: 2000
- });
- }
- })
- })
- },
- commitNode(){
- let commit = new Object;
- commit.instanceNodeId = this.currentNodeId;
- commit.state = 'PASS';
- commit.comments = this.outWarehouse.remark;
- commit.businessMinId = this.reportNo;
- commit.businessSubId = this.statementNo;
- commit.ifProductionFund = this.outWarehouse.ifProductionFund;
- this.$api.workflow.commit(commit).then(res=>{
- if (res.code === 200 && res.data){
- this.$notify({
- title: '成功',
- message: '工作流节点提交成功。',
- type: 'success',
- duration: 2000
- });
- }else{
- this.$notify({
- title: '失败',
- message: '工作流节点提交失败,请联系管理员。',
- type: 'error',
- duration: 2000
- });
- }
- })
- },
- openAllotProductionDialog(row){
- if (!row.orderFundId){
- this.$notify({
- title: '提示',
- message: '该订单还没有认领实收款,请先认领实收款后再分配给产品。',
- type: 'info',
- duration: 3000
- });
- return ;
- }
- this.getProductionList(row.orderFundId);
- this.orderProduction.orderId = row.orderId;
- this.orderProduction.orderName = row.orderName;
- this.orderProduction.realAmount= row.realAmount;
- this.orderProduction.orderFundId = row.orderFundId;
- },
- getProductionList(orderFundId){
- if (orderFundId){
- this.$api.businessProduction.getProductionByOrderFundId(orderFundId).then(res=>{
- if (res.code === 200){
- this.orderProduction.reports = res.data;
- let allotAmount = res.data.map(item=>item.realAmount).reduce(function(prev,cur){
- return prev + cur;
- },0);
- this.notAllotAmount = this.orderProduction.realAmount -allotAmount;
- this.allotAmountDialog = true;
- }
- })
- }
- },
- allotProduction(){
- this.$api.businessProduction.allotMajorProduction(this.orderProduction).then(res=>{
- if (res.code ===200 && res.data){
- this.$notify({
- title: '成功',
- message: '实收款分配成功',
- type: 'success',
- duration: 2000
- });
- this.allotAmountDialog = false;
- }else {
- this.$notify({
- title: '失败',
- message: '实收款分配失败',
- type: 'error',
- duration: 2000
- });
- }
- })
- },
- fliterSearch(params){
- this.$api.majorProduction.myOrder(Object.assign({}, params)).then(res=>{
- if (res.code ===200){
- this.pageData = res.data;
- }
- })
- },
- searchList() {
- // 重置分页
- this.listQuery.page = 1
- this.listQuery.size = 10
- this.getList()
- },
- resetParams(){
- this.$router.push({ query: {} });
- this.listQuery = {
- current: 1,
- size: 10,
- descs: 'created',
- }
- this.getList();
- },
- },
-
- }
- </script>
- <style lang="scss" scoped>
- /deep/.doWarehouseClass {
- border-radius: 10px;
- }
- .real-amount{
- /deep/ .el-form-item__label {
- color: red;
- font-weight:bold
- }
- }
- </style>
|