cost-allocation-table.vue 48 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082
  1. <template>
  2. <!--报表 成本分配表 (保存后数据到单证的成本分配汇总内)-->
  3. <div id="costAllocationTable">
  4. <a-spin :spinning="loading">
  5. <a-card :bordered="false">
  6. <!-- 主表信息 点击搜索后 回显--->
  7. <a-row :gutter="24">
  8. <div class="table-page-search-wrapper">
  9. <!-- ref="form" :model="costAllocationTable" -->
  10. <a-form-model layout="inline" class="kk">
  11. <a-col :md="6" :sm="8">
  12. <a-form-model-item label="计划单号" prop="plannum">
  13. <a-input-search
  14. placeholder="请输入计划单号"
  15. enter-button
  16. v-model="detailsPlanNum.planNum"
  17. @search="onSearch('query')"
  18. :loading="this.loading"
  19. v-show='showSelect==0'
  20. />
  21. <a-input-search
  22. placeholder="请输入计划单号"
  23. v-text="detailsPlanNum.planNum"
  24. enter-button
  25. @search="onSearch('query')"
  26. v-show='showSelect==1'
  27. />
  28. <a-button type="primary" :disabled="edit == '0'" @click="onSearch('queryNew')" class="noprint">更新</a-button>
  29. </a-form-model-item>
  30. </a-col>
  31. <!-- 回显以下【备注】需要输入,后进行保存 disabled -->
  32. <a-col :md="6" :sm="8">
  33. <a-form-model-item label="产品款号" prop="poStyleNum">
  34. <span :title=" detailsPlanNum.poStyleNum">{{ detailsPlanNum.poStyleNum | ellipsis}}</span>
  35. <!-- {{ detailsPlanNum.poStyleNum }} -->
  36. </a-form-model-item>
  37. </a-col>
  38. <a-col :md="6" :sm="8">
  39. <a-form-model-item label="外销员" prop="exportSales">
  40. {{ detailsPlanNum.exportSales }}
  41. </a-form-model-item>
  42. </a-col>
  43. <a-col :md="6" :sm="8">
  44. <a-form-model-item label="成衣合同号" prop="garmentContractno">
  45. {{ detailsPlanNum.garmentContractno }}
  46. </a-form-model-item>
  47. </a-col>
  48. <a-col :md="6" :sm="8">
  49. <a-form-model-item label="部门" prop="department">
  50. {{ detailsPlanNum.department }}
  51. </a-form-model-item>
  52. </a-col>
  53. <a-col :md="6" :sm="8">
  54. <a-form-model-item label="客户简称" prop="customerShortame">
  55. {{ detailsPlanNum.customerShortame }}
  56. </a-form-model-item>
  57. </a-col>
  58. <a-col :md="6" :sm="8">
  59. <a-form-model-item label="加工单位" prop="processUnit">
  60. <span :title=" detailsPlanNum.processUnit">{{ detailsPlanNum.processUnit | ellipsis}}</span>
  61. <!-- {{ detailsPlanNum.processUnit }} -->
  62. </a-form-model-item>
  63. </a-col>
  64. <a-col :md="6" :sm="8">
  65. <a-form-model-item label="出运日期" prop="outdata">
  66. {{ detailsPlanNum.outdata }}
  67. </a-form-model-item>
  68. </a-col>
  69. <a-col :md="6" :sm="8">
  70. <a-form-model-item label="面料不含税成本(¥)" prop="fabriccostNotincludestax" >
  71. {{ detailsPlanNum.fabriccostNotincludestax }}
  72. </a-form-model-item>
  73. </a-col>
  74. <a-col :md="6" :sm="8">
  75. <a-form-model-item label="辅料不含税成本(¥)" prop="excipiencostNotincludestax">
  76. {{ detailsPlanNum.excipiencostNotincludestax }}
  77. </a-form-model-item>
  78. </a-col>
  79. <a-col :md="6" :sm="8">
  80. <a-form-model-item label="外销总价($)" prop="usdTotalexportprice">
  81. {{ detailsPlanNum.usdTotalexportprice }}
  82. </a-form-model-item>
  83. </a-col>
  84. <a-col :md="6" :sm="8">
  85. <a-form-model-item label="外销金额(¥)" prop="rmbExportamount">
  86. {{ detailsPlanNum.rmbExportamount }}
  87. </a-form-model-item>
  88. </a-col>
  89. <a-col :md="6" :sm="8">
  90. <a-form-model-item label="实际出货数量" prop="actualShipquantity">
  91. {{ detailsPlanNum.actualShipquantity }}
  92. </a-form-model-item>
  93. </a-col>
  94. <a-col :md="6" :sm="8">
  95. <a-form-model-item label="加工费(¥)" prop="rmbProcesscost">
  96. {{ detailsPlanNum.rmbProcesscost }}
  97. </a-form-model-item>
  98. </a-col>
  99. <a-col :md="6" :sm="8">
  100. <a-form-model-item label="加工费($)" prop="usdProcesscost">
  101. {{ detailsPlanNum.usdProcesscost }}
  102. </a-form-model-item>
  103. </a-col>
  104. <a-col :md="6" :sm="8">
  105. <a-form-model-item label="运杂费($)" prop="usdExpense" >
  106. <a href="javascript:void(0)" @click="mainTableExpenseUSD()" >{{ detailsPlanNum.usdExpense }}</a>
  107. </a-form-model-item>
  108. </a-col>
  109. <a-col :md="6" :sm="8">
  110. <a-form-model-item label="不含税运杂费(¥)" prop="rmbNorTaxExpense" >
  111. {{detailsPlanNum.rmbNorTaxExpense }}
  112. </a-form-model-item>
  113. </a-col>
  114. <a-col :md="6" :sm="8">
  115. <a-form-model-item label="事故金额($)" prop="accidentUsdamount" >
  116. {{ detailsPlanNum.accidentUsdamount }}
  117. </a-form-model-item>
  118. </a-col>
  119. <a-col :md="6" :sm="8">
  120. <a-form-model-item label="事故金额(¥)" prop="accidentcnyAmount" >
  121. {{ detailsPlanNum.accidentcnyAmount }}
  122. </a-form-model-item>
  123. </a-col>
  124. <a-col :md="6" :sm="8">
  125. <a-form-model-item label="计划数量" prop="planQuantity">
  126. {{ detailsPlanNum.planQuantity }}
  127. </a-form-model-item>
  128. </a-col>
  129. <a-col :md="6" :sm="8">
  130. <a-form-model-item label="短出数" prop="shortseveral" >
  131. {{ detailsPlanNum.shortseveral }}
  132. </a-form-model-item>
  133. </a-col>
  134. <a-col :md="6" :sm="8">
  135. <a-form-model-item label="短出货值" prop="shortvalue" >
  136. {{ detailsPlanNum.shortvalue }}
  137. </a-form-model-item>
  138. </a-col>
  139. <a-col :md="6" :sm="8">
  140. <a-form-model-item label="面料成本($)" prop="fabriccostIncludestaxUsd" >
  141. {{ detailsPlanNum.fabriccostIncludestaxUsd }}
  142. </a-form-model-item>
  143. </a-col>
  144. <a-col :md="6" :sm="8">
  145. <a-form-model-item label="面料成本(¥)" prop="fabriccostIncludestax" >
  146. {{ detailsPlanNum.fabriccostIncludestax }}
  147. </a-form-model-item>
  148. </a-col>
  149. <a-col :md="6" :sm="8">
  150. <a-form-model-item label="辅料成本($)" prop="excipiencostIncludestaxUsd">
  151. {{ detailsPlanNum.excipiencostIncludestaxUsd}}
  152. <!-- {{ detailsPlanNum.excipiencostIncludestaxUsd }} -->
  153. </a-form-model-item>
  154. </a-col>
  155. <a-col :md="6" :sm="8">
  156. <a-form-model-item label="辅料成本(¥)" prop="excipiencostIncludestax">
  157. {{ detailsPlanNum.excipiencostIncludestax }}
  158. </a-form-model-item>
  159. </a-col>
  160. <a-col :md="6" :sm="8">
  161. <a-form-model-item label="销售订单总额(¥)" prop="salesordersLocaltotal">
  162. {{ detailsPlanNum.salesordersLocaltotal }}
  163. </a-form-model-item>
  164. </a-col>
  165. <a-col :md="6" :sm="8">
  166. <a-form-model-item label="销售订单总额($)" prop="salesrrdersOriginaltotal">
  167. {{ detailsPlanNum.salesrrdersOriginaltotal }}
  168. </a-form-model-item>
  169. </a-col>
  170. <a-col :md="6" :sm="8">
  171. <a-form-model-item label="运杂费(¥)" prop="rmbExpense">
  172. <a href="javascript:void(0)" @click="mainTableExpenseCNY()">{{ detailsPlanNum.rmbExpense }}</a>
  173. </a-form-model-item>
  174. </a-col>
  175. <a-col :md="6" :sm="8">
  176. <a-form-model-item label="运费税额" prop="shuiemoney">
  177. {{detailsPlanNum.shuiemoney}}
  178. </a-form-model-item>
  179. </a-col>
  180. <!-- <a-col :md="6" :sm="8">
  181. <a-form-model-item label="供应商事故单($)" prop="salesrrdersOriginaltotal">
  182. {{ detailsPlanNum.supperAccidentUsdamount, }}
  183. </a-form-model-item>
  184. </a-col>
  185. <a-col :md="6" :sm="8">
  186. <a-form-model-item label="供应商事故单(¥)" prop="salesrrdersOriginaltotal">
  187. {{ detailsPlanNum.supperAccidentcnyAmount }}
  188. </a-form-model-item>
  189. </a-col> -->
  190. <a-col :md="6" :sm="8">
  191. <a-form-model-item label="税率%" prop="taxrate" >
  192. <a-input placeholder="请输入" v-model="detailsPlanNum.taxrate" @blur="changeTaxrate" class="taxrate" v-show='showSelect==0'/>
  193. <span v-show='showSelect==1'>{{ detailsPlanNum.taxrate }}</span>
  194. </a-form-model-item>
  195. </a-col>
  196. <!-- <a-col :md="6" :sm="8">
  197. <a-form-model-item label="短出面料成本" prop="fabricshortcost" class="fontColor">
  198. {{ detailsPlanNum.fabricshortcost }}
  199. </a-form-model-item>
  200. </a-col> -->
  201. <!-- <a-col :md="6" :sm="8">
  202. <a-form-model-item label="面料不含税成本(美元)" prop="UsdfabriccostNotincludestax" >
  203. {{ detailsPlanNum.fabriccostNotincludestaxUsd }}
  204. </a-form-model-item>
  205. </a-col> -->
  206. <!--
  207. <a-col :md="6" :sm="8">
  208. <a-form-model-item label="辅料不含税成本(美元)" prop="UsdexcipiencostNotincludestax">
  209. {{ detailsPlanNum.excipiencostNotincludestaxUsd }}
  210. </a-form-model-item>
  211. </a-col> -->
  212. <!-- <a-col :md="6" :sm="8">
  213. <a-form-model-item label="制单人" prop="preparedBy">
  214. {{ detailsPlanNum.preparedBy }}
  215. </a-form-model-item>
  216. </a-col> -->
  217. <a-col :md="6" :sm="8">
  218. <a-form-model-item label="备注" prop="memo" >
  219. <a-input style="width:100%" type="text" v-model="detailsPlanNum.memo" @blur="changeContainerNumber" v-show='showSelect==0'/>
  220. <span v-show='showSelect==1'>{{ detailsPlanNum.memo }}</span>
  221. </a-form-model-item>
  222. </a-col>
  223. <!-- <a-col :md="6" :sm="8">
  224. <a-form-model-item label="查询时间" prop="UsdfabriccostNotincludestax" >
  225. {{ }}
  226. </a-form-model-item>
  227. </a-col>
  228. <a-col :md="6" :sm="8">
  229. <a-form-model-item label="查询人" prop="UsdfabriccostNotincludestax" >
  230. {{ }}
  231. </a-form-model-item>
  232. </a-col>
  233. <a-col :md="6" :sm="8">
  234. <a-form-model-item label="" prop="UsdfabriccostNotincludestax" >
  235. {{ }}
  236. </a-form-model-item>
  237. </a-col> -->
  238. <a-col :md="6" :sm="8">
  239. <a-form-model-item label="制单人" prop="preparedBy">
  240. {{ detailsPlanNum.preparedBy }}
  241. </a-form-model-item>
  242. </a-col>
  243. <!-- <a-col :md="6" :sm="8">
  244. <a-form-model-item label="查询人" prop="queryBy">
  245. {{ detailsPlanNum.queryBy }}
  246. </a-form-model-item>
  247. </a-col> -->
  248. <a-col :md="6" :sm="8">
  249. <a-form-model-item label="查询时间" prop="queryTime">
  250. {{ detailsPlanNum.queryTime }}
  251. </a-form-model-item>
  252. </a-col>
  253. <a-col :md="6" :sm="8" class="noprint">
  254. <a-form-model-item label="" prop="" >
  255. <h4 style="color:red;" v-if="color1<0">
  256. 标记(A)
  257. <!-- <span>(计算结果是负值时,该标记是红色)</span> -->
  258. </h4>
  259. <h4 style="color:black;" v-else>
  260. 标记(A)
  261. <!-- <span>(计算结果是负值时,该标记是红色)</span> -->
  262. </h4>
  263. </a-form-model-item>
  264. </a-col>
  265. <a-col :md="6" :sm="8" class="noprint">
  266. <a-form-model-item label="" prop="" >
  267. <h4 style="color:blue;" v-if="color2<0.8">
  268. 标记(B)
  269. <!-- <span>(计算结果小于O.8 时,该标记是蓝色)</span> -->
  270. </h4>
  271. <h4 style="color:black;" v-else>
  272. 标记(B)
  273. <!-- <span>(计算结果小于O.8 时,该标记是蓝色)</span> -->
  274. </h4>
  275. </a-form-model-item>
  276. </a-col>
  277. <a-col :md="6" :sm="8" class="noprint">
  278. <a-upload productName="file" :showUploadList="true" :file-list="fileList" :headers="tokenHeader" :multiple="false" :action="importExcelUrl" @change="handleImportExcel" :data="{code:this.detailsPlanNum.planNum,name:this.fileName}" :beforeUpload="uploadFlie" :remove="removeFile">
  279. <a-button type="primary" >附件上传</a-button>
  280. </a-upload>
  281. </a-col>
  282. </a-form-model>
  283. </div>
  284. </a-row>
  285. </a-card>
  286. <!--tabs 组件引入 -->
  287. <a-card :bordered="false" style=" marginTop:10px;">
  288. <div><tabs ref="unitTabs" :showSelect='showSelect' @number="number" :planNum="this.detailsPlanNum.planNum" @FabInQua="FabInQua"/></div>
  289. </a-card>
  290. <!-- 事故单 -->
  291. <a-card :bordered="true" style="margin:10px 0">
  292. <div style="margin:60px 0 40px 0" :class="[(accidentListData.length==0?'noprint': '')]">
  293. <h6 class="table-title">事故单</h6>
  294. <a-table
  295. rowKey="id"
  296. :columns="accidentListColumns"
  297. :data-source="accidentListData"
  298. bordered
  299. :pagination="false"
  300. :scroll="{ }"
  301. >
  302. <!-- 事故单 -->
  303. <span slot="accidentNum" slot-scope="text,record">
  304. <a :href="'http://www.myfitt.cn:18086/#/IncidentTicketModalDetail?id='+record.id" target="_blank">{{ text }}</a>
  305. </span>
  306. </a-table>
  307. </div>
  308. <!-- 费用支出 -->
  309. <div :class="[(costPayData.length==0?'noprint': '')]">
  310. <h6 class="table-title" >费用支出</h6>
  311. <a-table
  312. rowKey="id"
  313. :columns="costPayColumns"
  314. :data-source="costPayData"
  315. bordered
  316. :pagination="false"
  317. >
  318. </a-table>
  319. </div>
  320. <!-- 备注信息 根据角色权限控制【填写】、【查看】-->
  321. <div class="note-one" style="marginTop:40px;">
  322. <h6 class="table-title">备注</h6>
  323. <div class="noteDetail">
  324. <a-form-model ref="form" :model="detailsPlanNum">
  325. <a-form-model-item prop="remarks">
  326. <a-input type="textarea" v-model="detailsPlanNum.remarks" placeholder="请输入备注" style="minHeight:100px;" v-show='showSelect==0' />
  327. <a-input type="textarea" v-text="detailsPlanNum.remarks" style="minHeight:100px;" v-show='showSelect==1'/>
  328. </a-form-model-item>
  329. </a-form-model>
  330. </div>
  331. </div>
  332. <!-- 页面底部保存 -->
  333. <a-row :gutter="24" style="marginTop:40px;float:right" class="noprint">
  334. <a-col :md="12" :sm="12" style="display:flex">
  335. <a-button type="primary" @click="daYin" style="margin-right:6px" :disabled ="PrintButton">
  336. 打印
  337. </a-button>
  338. <a-button type="primary" @click="save" :disabled="isDisabled">
  339. 保存
  340. </a-button>
  341. </a-col>
  342. </a-row>
  343. </a-card>
  344. <!-- 弹框 -->
  345. <div>
  346. <!-- 主表 人民币费用支出 弹框 -->
  347. <mainTableExpenseCNY-modal ref="mainTableExpenseCNYModal" :father="aa"></mainTableExpenseCNY-modal>
  348. <!-- 主表 美元费用支出 弹框 -->
  349. <mainTableExpenseUSD-modal ref="mainTableExpenseUSDModal" :father="bb"></mainTableExpenseUSD-modal>
  350. <!-- 事故单 -->
  351. <accidentList-modal ref="accidentListModal" :father="cc"></accidentList-modal>
  352. </div>
  353. </a-spin>
  354. </div>
  355. </template>
  356. <script>
  357. import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  358. import JEllipsis from '@/components/jeecg/JEllipsis'
  359. import moment from 'moment'
  360. // 原始文件(应该跟单证内弹框一样,尝试公用,成功后可删除以下注释)
  361. // import mainTableExpenseCNYModal from '@views/reportForms/cost-allocation-table/mainTableExpenseCNYModal.vue'
  362. // import mainTableExpenseUSDModal from '@views/reportForms/cost-allocation-table/mainTableExpenseUSDModal.vue'
  363. // import accidentListModal from '@views/reportForms/fabric-loss-table/accidentListModal.vue' // 事故单
  364. // import tabs from '@views/cost-allocation-total/tabs.vue' // tabs组件
  365. import tabs from '@views/reportForms/cost-allocation-table/tabs.vue' // tabs组件
  366. import mainTableExpenseCNYModal from '@views/cost-allocation-total/modal/mainTableExpenseCNYModal.vue'
  367. import mainTableExpenseUSDModal from '@views/cost-allocation-total/modal/mainTableExpenseUSDModal.vue'
  368. import accidentListModal from '@views/cost-allocation-total/modal/accidentListModal.vue' // 事故单
  369. import { seachPlanNum, addHalfInfo,deleteFileDetail } from '@api/document/cost-allocation-total.js'
  370. export default {
  371. name: 'CostAllocationTable', // 成本分配 (新增)
  372. mixins: [JeecgListMixin],
  373. components: { JEllipsis, moment, tabs, mainTableExpenseCNYModal, mainTableExpenseUSDModal, accidentListModal },
  374. data() {
  375. return {
  376. key: '', //客户输入的订单号
  377. PrintButton:true,//打印按钮
  378. showSelect:0,//计划号是否是输入框
  379. loading: false, // 表格加载
  380. detailsPlanNum: {
  381. planNum: ''
  382. }, // 详情所有数据
  383. remarks: '', // 备注
  384. copyFabriccostIncludestax:'',//保存查询获取得面料成本(¥)
  385. // 事故单 表头
  386. accidentListColumns: [
  387. {
  388. title: '单号',
  389. width: 120,
  390. dataIndex: 'accidentNumber',
  391. className: 'replacecolor',
  392. customCell: this.accidentListCustomCell,
  393. scopedSlots: { customRender: 'accidentNum' }
  394. },
  395. { title: '事故承担方', width: 120, dataIndex: 'accidentUndertaker', className: 'replacecolor' },
  396. {
  397. title: '美元金额',
  398. width: 120,
  399. dataIndex: 'amount',
  400. className: 'replacecolor' ,
  401. customRender: (text, record, index) => {
  402. if(text!==''&&text){
  403. return Number(text).toFixed(2)
  404. }
  405. },
  406. },
  407. {
  408. title: '人民币金额',
  409. width: 120,
  410. dataIndex: 'amountrmb',
  411. className: 'replacecolor' ,
  412. customRender: (text, record, index) => {
  413. if(text!==''&&text){
  414. return Number(text).toFixed(2)
  415. }
  416. },
  417. },
  418. { title: '事故单主题', width: 120, dataIndex: 'accidentTheme', className: 'replacecolor' },
  419. { title: '责任人', width: 120, dataIndex: 'responsibilityPerson1', className: 'replacecolor' },
  420. // { title: '币种', width: 120, dataIndex: 'moneyType', className: 'replacecolor' },
  421. // { title: '金额', dataIndex: 'amount', width: 120, className: 'replacecolor' }
  422. ],
  423. accidentListData: [],
  424. // 费用支出 表头
  425. costPayColumns: [
  426. { title: '账套号', width: 120, dataIndex: 'setNo', className: 'replacecolor' },
  427. { title: '支出单号', width: 120, dataIndex: 'disbursementSlipNo', className: 'replacecolor' },
  428. { title: '费用项目', dataIndex: 'expenseItem', width: 120, className: 'replacecolor' },
  429. {
  430. title: '美元',
  431. dataIndex: 'disbursedOriginalmoney',
  432. width: 120,
  433. className: 'replacecolor' ,
  434. customRender: (text, record, index) => {
  435. if(text!==''&&text){
  436. return Number(text).toFixed(2)
  437. }
  438. },
  439. },
  440. {
  441. title: '人民币(不含税)',
  442. dataIndex: 'disbursedLocalmoney',
  443. width: 120, className: 'replacecolor',
  444. customRender: (text, record, index) => {
  445. if(text!==''&&text){
  446. return Number(text).toFixed(2)
  447. }
  448. },
  449. },
  450. {
  451. title: '人民币(税额)',
  452. dataIndex: 'shuiemoney',
  453. width: 120,
  454. className: 'replacecolor',
  455. customRender: (text, record, index) => {
  456. if(text!==''&&text){
  457. return Number(text).toFixed(2)
  458. }
  459. },
  460. },
  461. {
  462. title: '人民币(价税合计)',
  463. dataIndex: 'iNatMoney',
  464. width: 120,
  465. className: 'replacecolor',
  466. customRender: (text, record, index) => {
  467. if(text!==''&&text){
  468. return Number(text).toFixed(2)
  469. }
  470. }, },
  471. { title: '发票号', dataIndex: 'invoicenum', width: 120, className: 'replacecolor' },
  472. { title: '制单人', dataIndex: 'preparedBy', width: 120, className: 'replacecolor' }
  473. ],
  474. costPayData: [],
  475. isDisabled: false, //按钮禁止
  476. billstatus: '', // 单据状态
  477. color1:0,
  478. color2:0,
  479. fileList:[],
  480. url: {
  481. list: '/sys/user/list',
  482. importExcelUrl: 'cost/syCostAllocation/addFile' ,// 导入
  483. }
  484. // dateFormat: 'YYYY-MM-DD',
  485. }
  486. },
  487. created() {
  488. document.title = '成本分配表'+ ' · ' + '森语'
  489. },
  490. filters: {
  491. //文字数超出时,超出部分使用...
  492. ellipsis(value) {
  493. if (!value) return ''
  494. if (value.length > 20) {
  495. return value.slice(0, 20) + '...'
  496. }
  497. return value
  498. }
  499. },
  500. methods: {
  501. // 【计划单号】 搜索
  502. onSearch(data) {
  503. this.$nextTick(() => {
  504. // TODO:接口完善后,type 应改为 add(暂时为了回显数据)
  505. this.loading = true
  506. this.$refs.unitTabs.mList = []
  507. this.$refs.unitTabs.fList = []
  508. var Staging = '',
  509. StagingLast = '',
  510. file = ''
  511. if(data=='queryNew'){
  512. Staging =this.detailsPlanNum.memo
  513. StagingLast = this.detailsPlanNum.remarks
  514. file = this.fileList
  515. this.$refs.unitTabs.mList = this.$refs.unitTabs.tabsAllData[0].syCostAllocationFabricList
  516. this.$refs.unitTabs.fList = this.$refs.unitTabs.tabsAllData[0].syCostAllocationIngredientList
  517. }
  518. seachPlanNum({ plannum: this.detailsPlanNum.planNum, type: data }).then(res => {
  519. if (res.success) {
  520. this.PrintButton = false
  521. this.loading = false
  522. this.detailsPlanNum = res.result //所有详情
  523. this.copyFabriccostIncludestax = res.result.fabriccostIncludestax
  524. if(Number(this.detailsPlanNum.shortseveral)<0){
  525. this.detailsPlanNum.shortseveral = 0
  526. this.detailsPlanNum.shortvalue = 0
  527. }
  528. var fileList = (this.detailsPlanNum.attachs!==''&&this.detailsPlanNum.attachs)?this.detailsPlanNum.attachs.split(","):[]
  529. this.fileList = []
  530. if(fileList.length!==0){
  531. fileList.map(item=>{
  532. this.fileList.push({
  533. uid: '-1',
  534. name: item,
  535. status: 'done',
  536. url:'http://www.myfitt.cn:18001/jeecg-boot/sys/common/static' +'/'+item
  537. })
  538. })
  539. }
  540. this.accidentListData = res.result.syCostAllocationAccidentList //事故单
  541. this.accidentCalculation(this.accidentListData)
  542. // var accidentNum = 0
  543. // this.accidentListData.map(item =>{
  544. // item.id = accidentNum + 1
  545. // accidentNum += 1
  546. // })
  547. this.costPayData = res.result.syCostAllocationCostpayList //支出费用
  548. var num = 0
  549. this.costPayData.map(item =>{
  550. item.id = num + 1
  551. num += 1
  552. })
  553. // tabs 名称集合
  554. this.$refs.unitTabs.tabNameList = res.result.processUnit.split(',')
  555. //所有tabs数据
  556. this.$refs.unitTabs.tabsAllData = res.result.processUnitList
  557. // 页面打开加载的数据
  558. var oneData = this.$refs.unitTabs.tabsAllData[0]
  559. this.$refs.unitTabs.fabData = oneData.syCostAllocationFabricList
  560. var all = 0
  561. this.$refs.unitTabs.fabData.map(item=>{
  562. if(item.remainingQuantitycost!=='' && item.remainingQuantitycost){
  563. item.remainingQuantitycost = item.remainingQuantitycost.toFixed(2)
  564. }
  565. if(item.transferCost&&item.transferCost!==''){
  566. all+=Number(item.transferCost)
  567. }
  568. })
  569. this.detailsPlanNum.fabriccostIncludestax=( this.detailsPlanNum.fabriccostIncludestax==''|| !this.detailsPlanNum.fabriccostIncludestax||this.detailsPlanNum.fabriccostIncludestax=='0')?all.toFixed(2):Number( this.detailsPlanNum.fabriccostIncludestax).toFixed(2)//面料含税成本
  570. this.$refs.unitTabs.ingData = oneData.syCostAllocationIngredientList
  571. this.$refs.unitTabs.shipData = oneData.syCostAllocationShipdetail
  572. this.detailsPlanNum.outdata = oneData.syCostAllocationShipdetail.length!==0?oneData.syCostAllocationShipdetail[0].outdata:''
  573. // this.$refs.unitTabs.shipData.map(item=>{
  574. // if(item.procesUnitPriceusd==0||item.procesUnitPriceusd==item.procesUnitPricermb||item.procesUnitPriceusd==''||!item.procesUnitPriceusd){
  575. // item.procesUnitPricermb = item.procesUnitPricermb!==''&&item.procesUnitPricermb?Number(item.procesUnitPricermb).toFixed(4):0
  576. // item.processCost = Number(item.procesUnitPricermb)*Number(item.shipQuantity)
  577. // }else{
  578. // item.procesUnitPriceusd = item.procesUnitPriceusd!==''&&item.procesUnitPriceusd?Number(item.procesUnitPriceusd).toFixed(4):0
  579. // item.shipQuantity = item.shipQuantity!==''&&item.shipQuantity?Number(item.shipQuantity).toFixed(4):0
  580. // item.processCost = Number(item.procesUnitPriceusd)*Number(item.shipQuantity)*Number(item.exchangeRate)
  581. // }
  582. // })
  583. this.addAmountIng(oneData.syCostAllocationIngredientList)
  584. this.addAmountCostPay(this.costPayData)
  585. this.addAccident(this.accidentListData)
  586. this.calculation(oneData.syCostAllocationShipdetail)
  587. //合计中面料相关金额
  588. var s=0
  589. oneData.syCostAllocationFabricList.map(item=>{
  590. s+=Number(item.transferCost)
  591. })
  592. // this.$refs.unitTabs.sumInfo.fabricAmount = s.toFixed(3) //合计中的面料总额
  593. this.$refs.unitTabs.sumInfo.fabricAmount = (this.detailsPlanNum.fabriccostIncludestax!==''&&this.detailsPlanNum.fabriccostIncludestax)?(Number(this.detailsPlanNum.fabriccostIncludestax)).toFixed(2):'' //合计中的面料总额
  594. this.$refs.unitTabs.sumInfo.fabricExcludTax =(Number(this.$refs.unitTabs.sumInfo.fabricAmount)/(1+(Number(this.detailsPlanNum.taxrate)/100))).toFixed(2)//合计中的不含税面料总额
  595. this.detailsPlanNum.fabriccostNotincludestax = this.$refs.unitTabs.sumInfo.fabricExcludTax
  596. // this.detailsPlanNum.fabriccostIncludestax = s.toFixed(3) //表头中面料含税总额
  597. // this.detailsPlanNum.fabriccostNotincludestax = (s/1.13).toFixed(3) //表头中面料不含税总额
  598. //合计中辅料相关金额
  599. var s = 0,
  600. v =0
  601. oneData.syCostAllocationIngredientList.map(item=>{
  602. s+=Number(item.priceExcludingtax),
  603. v+=item.rmbAmount?Number(item.rmbAmount):0
  604. })
  605. this.$refs.unitTabs.sumInfo.ingAmount =(v/2).toFixed(2)//辅料金额合计
  606. this.$refs.unitTabs.sumInfo.ingExcludAmount = ((v/2).toFixed(2)/(1+(Number(this.detailsPlanNum.taxrate)/100))).toFixed(2)//辅料不含税金额合计
  607. //合计中出运明细相关金额
  608. var s =0,
  609. v = 0,
  610. d = 0,
  611. b = 0,
  612. f=0,
  613. e=0
  614. oneData.syCostAllocationShipdetail.map(item=>{
  615. s+=Number(item.exportPrice)
  616. v+=Number(item.shipQuantity)
  617. d+=Number(item.processCost)
  618. b+=Number(item.rmbAmount)
  619. if(item.exchangeRate=='6.888' && item.outdata!=='合计'){
  620. e+=Number(item.processCost)
  621. }else if(item.outdata!=='合计'){
  622. e+=(Number(item.processCost)/1.13)
  623. }
  624. })
  625. this.$refs.unitTabs.sumInfo.exportPriceUSD = (s/2).toFixed(2)//出运美元外销总价
  626. this.detailsPlanNum.usdTotalexportprice = this.$refs.unitTabs.sumInfo.exportPriceUSD //表头-外销总价($)
  627. this.$refs.unitTabs.sumInfo.shipQua =(v/2).toFixed(4)//出货数量合计
  628. this.$refs.unitTabs.sumInfo.shipProcesFees =(d/2).toFixed(2)//出运加工费
  629. this.$refs.unitTabs.sumInfo.exportedAmountRMB =(b/2).toFixed(2)//出运人民币外销金额 f
  630. this.detailsPlanNum.rmbExportamount = this.$refs.unitTabs.sumInfo.exportedAmountRMB //表头-外销总价(¥)
  631. //调整表头格式
  632. this.adjustingHeader()
  633. this.$refs.unitTabs.sumInfo.excludingTaxProcessing =e.toFixed(2)//
  634. f=Number(this.$refs.unitTabs.sumInfo.ingAmount)+Number(this.$refs.unitTabs.sumInfo.shipProcesFees)
  635. this.$refs.unitTabs.sumInfo.amountTotal = (Number(this.$refs.unitTabs.sumInfo.fabricAmount)+Number(this.$refs.unitTabs.sumInfo.ingAmount)+Number( this.$refs.unitTabs.sumInfo.shipProcesFees)).toFixed(2)//合计金额
  636. this.pagination = {
  637. total: res.result.total,
  638. current: res.result.current,
  639. pageSize: res.result.size
  640. }
  641. if(data=='queryNew'){
  642. this.detailsPlanNum.memo = Staging
  643. this.detailsPlanNum.remarks = StagingLast
  644. this.fileList = file
  645. oneData.syCostAllocationFabricList.map(item=>{
  646. this.$refs.unitTabs.mList.map(event=>{
  647. if(item.goodsName==event.goodsName){
  648. item.transferCost = event.transferCost
  649. }
  650. })
  651. })
  652. oneData.syCostAllocationIngredientList.map(item=>{
  653. this.$refs.unitTabs.fList.map(event=>{
  654. if(item.goodsName==event.goodsName){
  655. item.transferCost = event.transferCost
  656. }
  657. })
  658. })
  659. }
  660. }else {
  661. this.loading = false
  662. this.$message.error(res.message);
  663. }
  664. })
  665. })
  666. },
  667. uploadFlie(file) {
  668. this.fileName = file.name
  669. },
  670. handleImportExcel(data){
  671. if(data.fileList.length>this.fileList.length&&data.file.status=='uploading'){
  672. var that =this
  673. setTimeout(()=>{
  674. that.onSearch('query')
  675. },1000)
  676. }
  677. },
  678. removeFile(data){
  679. deleteFileDetail({code:this.detailsPlanNum.planNum,name:data.name}).then(res => {
  680. if (res.success) {
  681. var cc=[]
  682. this.fileList.map(item=>{
  683. if(item.name !== data.name){
  684. cc.push(item)
  685. }
  686. })
  687. this.fileList = cc
  688. this.loading =false
  689. this.$message.success('删除成功');
  690. }else{
  691. this.$message.error(res.message);
  692. }
  693. })
  694. },
  695. //调整表头格式
  696. adjustingHeader(){
  697. // this.detailsPlanNum.outdata = ( this.detailsPlanNum.outdata==''||!this.detailsPlanNum.outdata)?0:moment( this.detailsPlanNum.outdata).format('YYYY-MM-DD')
  698. this.detailsPlanNum.planQuantity=( this.detailsPlanNum.planQuantity==''|| !this.detailsPlanNum.planQuantity)?0:Number( this.detailsPlanNum.planQuantity).toFixed(0)//计划数量
  699. this.detailsPlanNum.usdTotalexportprice=( this.detailsPlanNum.usdTotalexportprice==''|| !this.detailsPlanNum.usdTotalexportprice)?0:Number( this.detailsPlanNum.usdTotalexportprice).toFixed(2)//美元外销总价
  700. // this.detailsPlanNum.rmbExpense=( this.detailsPlanNum.rmbExpense==''|| !this.detailsPlanNum.rmbExpense)?0:Number( this.detailsPlanNum.rmbExpense).toFixed(2)//人民币费用支出
  701. this.detailsPlanNum.actualShipquantity=( this.detailsPlanNum.actualShipquantity==''|| !this.detailsPlanNum.actualShipquantity)?0:Number( this.detailsPlanNum.actualShipquantity).toFixed(0)//实际出库数量
  702. this.detailsPlanNum.rmbExportamount=( this.detailsPlanNum.rmbExportamount==''|| !this.detailsPlanNum.rmbExportamount)?0:Number( this.detailsPlanNum.rmbExportamount).toFixed(2)//人民币外销金额
  703. this.detailsPlanNum.usdExpense=( this.detailsPlanNum.usdExpense==''|| !this.detailsPlanNum.usdExpense)?0:Number( this.detailsPlanNum.usdExpense).toFixed(2)//美元费用支出
  704. this.detailsPlanNum.usdProcesscost=( this.detailsPlanNum.usdProcesscost==''|| !this.detailsPlanNum.usdProcesscost)?'':Number( this.detailsPlanNum.usdProcesscost).toFixed(2)//加工费(人民币)
  705. this.detailsPlanNum.accidentUsdamount=( this.detailsPlanNum.accidentUsdamount==''|| !this.detailsPlanNum.accidentUsdamount)?0:Number( this.detailsPlanNum.accidentUsdamount).toFixed(2)//事故单美元金额
  706. this.detailsPlanNum.excipiencostIncludestax=( this.detailsPlanNum.excipiencostIncludestax==''|| !this.detailsPlanNum.excipiencostIncludestax)?0:Number( this.detailsPlanNum.excipiencostIncludestax).toFixed(2)//辅料含税成本
  707. this.detailsPlanNum.salesordersLocaltotal=( this.detailsPlanNum.salesordersLocaltotal==''|| !this.detailsPlanNum.salesordersLocaltotal)?0:Number( this.detailsPlanNum.salesordersLocaltotal).toFixed(2)//销售本币金额
  708. this.detailsPlanNum.accidentcnyAmount=( this.detailsPlanNum.accidentcnyAmount==''|| !this.detailsPlanNum.accidentcnyAmount)?0:Number( this.detailsPlanNum.accidentcnyAmount).toFixed(2)//事故单人民币金额
  709. this.detailsPlanNum.fabriccostNotincludestax=( this.detailsPlanNum.fabriccostNotincludestax==''|| !this.detailsPlanNum.fabriccostNotincludestax)?0:Number( this.detailsPlanNum.fabriccostNotincludestax).toFixed(2)//面料不含税成本
  710. this.detailsPlanNum.excipiencostNotincludestax=( this.detailsPlanNum.excipiencostNotincludestax==''|| !this.detailsPlanNum.excipiencostNotincludestax)?0:Number( this.detailsPlanNum.excipiencostNotincludestax).toFixed(2)//辅料料不含税成本
  711. this.detailsPlanNum.salesrrdersOriginaltotal=( this.detailsPlanNum.salesrrdersOriginaltotal==''|| !this.detailsPlanNum.salesrrdersOriginaltotal)?0:Number( this.detailsPlanNum.salesrrdersOriginaltotal).toFixed(2)//销售订单原币金额
  712. this.detailsPlanNum.excipiencostIncludestaxUsd=( this.detailsPlanNum.excipiencostIncludestaxUsd==''|| !this.detailsPlanNum.excipiencostIncludestaxUsd)?0: this.detailsPlanNum.excipiencostIncludestaxUsd//辅料成本($)
  713. this.detailsPlanNum.shuiemoney=( this.detailsPlanNum.shuiemoney==''|| !this.detailsPlanNum.shuiemoney)?0: this.detailsPlanNum.shuiemoney//运费税额
  714. this.detailsPlanNum.fabriccostIncludestax=( this.detailsPlanNum.fabriccostIncludestax==''|| !this.detailsPlanNum.fabriccostIncludestax)?0:Number( this.detailsPlanNum.fabriccostIncludestax).toFixed(2)//面料含税成本
  715. this.color1 = Number(this.detailsPlanNum.rmbExportamount)-Number(this.detailsPlanNum.fabriccostNotincludestax)-Number(this.detailsPlanNum.excipiencostNotincludestax)-Number(this.detailsPlanNum.rmbProcesscost)-Number(this.detailsPlanNum.rmbExpense)
  716. this.color2 = this.color1/Number(this.detailsPlanNum.usdTotalexportprice)
  717. this.color2 = this.color2>0?this.color2:-this.color2
  718. if(this.detailsPlanNum.pkOrg=='103'){
  719. this.detailsPlanNum.rmbProcesscost = (Number(this.detailsPlanNum.rmbProcesscost)/(1+(Number(this.detailsPlanNum.taxrate)/100))).toFixed(2)
  720. }else{
  721. this.detailsPlanNum.rmbProcesscost=( this.detailsPlanNum.rmbProcesscost==''|| !this.detailsPlanNum.rmbProcesscost)?'':Number( this.detailsPlanNum.rmbProcesscost).toFixed(2)//加工费(人民币)
  722. }
  723. },
  724. //计算出运明细合计行
  725. calculation(val){
  726. // var average = 0
  727. // val.map(item=>{
  728. // if(item.outdata !=='合计'){
  729. // average += (Number(item.exportUnitPrice)*Number(item.shipQuantity)*Number(item.exchangeRate))
  730. // }
  731. // })
  732. // this.detailsPlanNum.shortvalue = average.toFixed(2)
  733. var shipQuantityAll =0,
  734. // exportUnitPriceALll = 0,
  735. exportPriceAll =0,
  736. rmbAmountAll = 0,
  737. // procesUnitPricermbAll = 0,
  738. // procesUnitPriceusdAll = 0,
  739. processCostAll = 0
  740. val.map(item=>{
  741. if(item.outdata !=='合计'){
  742. shipQuantityAll+=Number(item.shipQuantity)
  743. // exportUnitPriceALll+=Number(item.exportUnitPrice)
  744. exportPriceAll+=Number(item.exportPrice)
  745. rmbAmountAll+=Number(item.rmbAmount)
  746. // procesUnitPricermbAll+=Number(item.procesUnitPricermb)
  747. // procesUnitPriceusdAll+=Number(item.procesUnitPriceusd)
  748. processCostAll+=Number(item.processCost)
  749. }
  750. })
  751. var allObj ={
  752. outdata:'合计',
  753. shipQuantity:shipQuantityAll.toFixed(3),
  754. // exportUnitPrice:exportUnitPriceALll.toFixed(3),
  755. exportPrice:exportPriceAll.toFixed(3),
  756. rmbAmount:rmbAmountAll.toFixed(3),
  757. // procesUnitPricermb:procesUnitPricermbAll.toFixed(3),
  758. // procesUnitPriceusd:procesUnitPriceusdAll.toFixed(3),
  759. processCost:processCostAll.toFixed(3)
  760. }
  761. // this.detailsPlanNum.salesordersLocaltotal = rmbAmountAll.toFixed(2)
  762. //发运明细-合计行
  763. if(this.$refs.unitTabs.shipData.length!==0 ){
  764. if(this.$refs.unitTabs.shipData[this.$refs.unitTabs.shipData.length-1].outdata=='合计'){
  765. this.$refs.unitTabs.shipData.pop()
  766. }
  767. this.$refs.unitTabs.shipData.push(allObj)
  768. }
  769. this.$refs.unitTabs.shipData.map(item=>{
  770. item.shipQuantity = Number(item.shipQuantity)
  771. item.exportUnitPrice = Number(item.exportUnitPrice)
  772. item.exportPrice = Number(item.exportPrice)
  773. item.rmbAmount = Number(item.rmbAmount)
  774. item.procesUnitPricermb = Number(item.procesUnitPricermb)
  775. item.procesUnitPriceusd = Number(item.procesUnitPriceusd)
  776. item.processCost = Number(item.processCost)
  777. })
  778. },
  779. //辅料中的合计行
  780. addAmountIng(val){
  781. var
  782. transferCostAll =0,
  783. rmbAmountAll = 0,
  784. usdAmountAll = 0,
  785. priceExcludingtaxAll = 0
  786. val.map(item=>{
  787. if(item.goodsName!=='合计'){
  788. transferCostAll+=Number(item.transferCost)
  789. rmbAmountAll+=item.rmbAmount?Number(item.rmbAmount):0
  790. usdAmountAll+=item.usdAmount?Number(item.usdAmount):0
  791. priceExcludingtaxAll+=item.priceExcludingtax?Number(item.priceExcludingtax):0
  792. }
  793. })
  794. var allObj ={
  795. goodsName:'合计',
  796. transferCost:transferCostAll,
  797. rmbAmount:rmbAmountAll,
  798. usdAmount:usdAmountAll,
  799. priceExcludingtax:priceExcludingtaxAll,
  800. ingredientsTransferQuantity:'',
  801. ingredientsRemainingQuantity:''
  802. }
  803. this.detailsPlanNum.excipiencostNotincludestax = allObj.priceExcludingtax
  804. if(this.$refs.unitTabs.ingData.length!==0 ){
  805. if(this.$refs.unitTabs.ingData[this.$refs.unitTabs.ingData.length-1].goodsName=='合计'){this.$refs.unitTabs.ingData.pop()}
  806. this.$refs.unitTabs.ingData.push(allObj)
  807. }
  808. if(rmbAmountAll == usdAmountAll){
  809. this.detailsPlanNum.excipiencostIncludestaxUsd = 0
  810. }else{
  811. this.detailsPlanNum.excipiencostIncludestaxUsd = usdAmountAll.toFixed(2)
  812. }
  813. },
  814. //事故单合计行
  815. addAccident(val){
  816. var amountAll=0,
  817. amountrmbAll=0
  818. val.map(item=>{
  819. if(item.accidentUndertaker!=='合计'){
  820. amountAll+=Number(item.amount)
  821. amountrmbAll+=Number(item.amountrmb)
  822. }
  823. })
  824. var allObj={
  825. accidentUndertaker:'合计',
  826. amount:amountAll,
  827. amountrmb:amountrmbAll
  828. }
  829. if(this.accidentListData.length!==0 ){
  830. if(this.accidentListData[this.accidentListData.length-1].accidentUndertaker=='合计'){this.accidentListData.pop()}
  831. this.accidentListData.push(allObj)
  832. }
  833. },
  834. //费用支出合计行
  835. addAmountCostPay(val){
  836. var disbursedLocalmoneyALL=0,
  837. disbursedOriginalmoneyALL=0,
  838. shuiemoneyAll = 0
  839. val.map(item=>{
  840. if(item.setNo!=='合计'){
  841. disbursedLocalmoneyALL+=Number(item.disbursedLocalmoney)
  842. disbursedOriginalmoneyALL+=Number(item.disbursedOriginalmoney)
  843. shuiemoneyAll+=Number(item.shuiemoney)
  844. }
  845. })
  846. var obj={
  847. setNo:'合计',
  848. disbursedLocalmoney:disbursedLocalmoneyALL,
  849. disbursedOriginalmoney:disbursedOriginalmoneyALL,
  850. shuiemoney:shuiemoneyAll.toFixed(3),
  851. iNatMoney:(disbursedLocalmoneyALL+shuiemoneyAll)
  852. }
  853. if(this.costPayData.length!==0){
  854. if(this.costPayData[this.costPayData.length-1].setNo=='合计'){this.costPayData.pop()}
  855. this.costPayData.push(obj)
  856. }
  857. this.detailsPlanNum.shuiemoney = shuiemoneyAll.toFixed(3)
  858. this.detailsPlanNum.rmbNorTaxExpense = obj.disbursedLocalmoney.toFixed(2)
  859. this.detailsPlanNum.rmbExpense = obj.iNatMoney.toFixed(2)
  860. },
  861. daYin(){
  862. this.showSelect = 1
  863. this.$nextTick(() => {
  864. const html = window.document.getElementById('costAllocationTable').innerHTML
  865. const win = window.open();
  866. const style = '<style>\n'
  867. +'.noprint{display:none}'
  868. // +'.ant-table-body-inner{overflow-x: hidden !important;overflow-y: hidden !important }' //去除滚动条
  869. +'.ant-table-body{overflow-x: hidden !important ;overflow-y: hidden !important}'
  870. +'.ant-table-header {overflow-x: hidden !important ;overflow-y: hidden !important}'
  871. +'.ant-table-fixed-left{display: none !important}'
  872. +'.ant-tabs-nav-container{display: none !important}'
  873. +'.kk{display:flex;flex-wrap: wrap}' //主要信息并排
  874. +'.ant-col-sm-8{width:40%;margin-bottom: 6px;}'
  875. +'.ant-form-item-label{width:55%;font-size: 12px;}'
  876. +'.ant-form-item-children{font-size: 12px}'
  877. +'.ant-card-head-title{font-weight: bold;font-size: 0.67em;margin-bottom: 9px;}'
  878. +'.ant-form-item-control-wrapper{width:100%}'
  879. +'.ant-input{width:100%}'
  880. +'.ant-form-item{display:flex}'
  881. + 'table{width: 100% !important;border-collapse: collapse;border-spacing: 0;overflow-x:hidden;}\n'
  882. + 'th,td{width:2%;height: 18px;border: 1px solid #999;font-size: 12px;color: #666;max-width:2000px;text-align: center;word-wrap: break-word;}\n'
  883. +'.ant-table-row-cell-break-word{width:5% !important}'
  884. + 'th{color: #333}\n'
  885. + 'a{color: #666; text-decoration:none;}\n'
  886. + '</style>';
  887. win.document.write(style+html);
  888. win.focus();
  889. win.print();
  890. win.close();
  891. this.showSelect = 0
  892. })
  893. },
  894. //该表税率
  895. changeTaxrate(){
  896. this.$refs.unitTabs.changeTaxrate(this.detailsPlanNum.taxrate)
  897. },
  898. //计算事故单美元金额和事故单人民币金额
  899. accidentCalculation(val){
  900. var usaMoney = 0,
  901. rmbMoney = 0
  902. val.map(item=>{
  903. if(item.accidentType=='应补' && item.amount!==''&&item.amount&&item.amount!=='0'){
  904. item.amount=Number(item.amount)*(-1)
  905. }else if(item.accidentType=='应补' && item.amountrmb!==''&&item.amountrmb&&item.amountrmb!=='0'){
  906. item.amountrmb = Number(item.amountrmb)*(-1)
  907. }
  908. usaMoney += Number(item.amount),
  909. rmbMoney+=Number(item.amountrmb)
  910. })
  911. this.detailsPlanNum.accidentUsdamount = usaMoney.toFixed(2)
  912. this.detailsPlanNum.accidentcnyAmount = rmbMoney.toFixed(2)
  913. },
  914. // 页面 保存
  915. save() {
  916. console.log('点击保存')
  917. this.isDisabled = true
  918. setTimeout(() => {
  919. let that = this
  920. that.isDisabled = false
  921. }, 3000)
  922. // if (this.detailsPlanNum.remarks) {
  923. // 保存 部分信息
  924. var halfInfo = {}
  925. // halfInfo.planNum = this.detailsPlanNum.planNum
  926. // halfInfo.remarks = this.detailsPlanNum.remarks
  927. // halfInfo.billstatus = '1'
  928. // console.log(halfInfo.planNum, halfInfo.remarks, halfInfo.billstatus)
  929. // var planNum = this.detailsPlanNum.planNum,
  930. var json = this.detailsPlanNum
  931. json.outdata=moment(json.outdata).format('YYYY-MM-DD hh:mm:ss')
  932. this.loading=true
  933. addHalfInfo(json).then(res => {
  934. this.isDisabled = false
  935. this.loading=false
  936. if (res.success) {
  937. console.log('保存的部分信息', halfInfo)
  938. this.$message.success('保存成功')
  939. halfInfo = {}
  940. }else{
  941. this.$message.error(res.message);
  942. }
  943. })
  944. // } else {
  945. // this.$message.error('备注不能为空')
  946. // }
  947. },
  948. // 主表:人民币费用支出 弹框
  949. mainTableExpenseCNY() {
  950. console.log('点击:主表人民币费用支出')
  951. this.$refs.mainTableExpenseCNYModal.mainTableExpenseCNYModVis = true
  952. this.$refs.mainTableExpenseCNYModal.mainTableExpenseCNYData = this.costPayData
  953. this.$refs.mainTableExpenseCNYModal.fixedData = this.costPayData
  954. },
  955. // 主表:美元费用支出 弹框
  956. mainTableExpenseUSD() {
  957. console.log('点击:主表美元费用支出')
  958. this.$refs.mainTableExpenseUSDModal.mainTableExpenseUSDModVis = true
  959. this.$refs.mainTableExpenseUSDModal.mainTableExpenseUSDData = this.costPayData
  960. this.$refs.mainTableExpenseUSDModal.fixedData = this.costPayData
  961. },
  962. orderDataChange(data){
  963. this.detailsPlanNum.queryTime = moment(data).format('yyyy-MM-DD')
  964. },
  965. // 事故单 单号 弹框
  966. accidentListCustomCell(record) {
  967. return {
  968. on: {
  969. click: event => {
  970. // this.$router.push({path:'http://localhost:3000/#/IncidentTicketModalDetail'})
  971. // console.log('this:', this)
  972. // // 调用【面料损耗表】中的【事故单】弹框
  973. // this.$refs.accidentListModal.accidentListModVis = true
  974. // this.$refs.accidentListModal.accidentList = record
  975. }
  976. }
  977. }
  978. },
  979. number(data1,data2){
  980. this.detailsPlanNum.fabriccostNotincludestax = data1
  981. // this.detailsPlanNum.excipiencostNotincludestax = data2
  982. },
  983. FabInQua(data){
  984. if(this.copyFabriccostIncludestax!== this.detailsPlanNum.fabriccostIncludestax){
  985. this.detailsPlanNum.fabriccostIncludestax=data.toFixed(2)//面料含税成本
  986. }
  987. },
  988. // father 方法
  989. aa() {},
  990. bb() {},
  991. cc() {}
  992. },
  993. computed: {
  994. importExcelUrl: function() {
  995. return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
  996. },
  997. },
  998. mounted() {}
  999. }
  1000. </script>
  1001. <style lang="less" scoped>
  1002. @import '~@assets/less/common.less';
  1003. @import '~@assets/less/overwriter.less';
  1004. /deep/ .ant-table-thead > tr > th {
  1005. text-align: center;
  1006. // font-weight: 700;
  1007. }
  1008. /deep/ .ant-table-tbody {
  1009. text-align: center;
  1010. }
  1011. /deep/ .fontColor .ant-form-item-label > label{
  1012. color: red !important;
  1013. }
  1014. // /deep/ th.replacecolor {
  1015. // background-color: #ccc;
  1016. // }
  1017. // 抽屉里的card样式
  1018. // /deep/ .ant-drawer-content {
  1019. // background-color: #f0f2f5;
  1020. // }
  1021. // /deep/ .ant-drawer-body {
  1022. // padding: 10px;
  1023. // }
  1024. /deep/ form :not(.ant-input-group-wrapper) > .ant-input-group, form .ant-input-group-wrapper{
  1025. width: 65% !important;
  1026. }
  1027. /deep/ .ant-input-group{
  1028. padding-right: 6px !important;
  1029. }
  1030. .taxrate{
  1031. width: 40%;
  1032. }
  1033. </style>