sum_list.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718
  1. <template>
  2. <div class="app-container">
  3. <div v-show="!isShowPrint">
  4. <!-- 筛选条件 -->
  5. <div class="screen-container">
  6. <el-form ref="screenForm" :model="screenForm" label-width="85px" size="mini" label-position="left">
  7. <el-row :gutter="20">
  8. <el-col :xs="24" :sm="12" :lg="6">
  9. <el-form-item label="产品名称" prop="goodsName">
  10. <el-input v-model="screenForm.goodsName" placeholder="请输入产品名称"></el-input>
  11. </el-form-item>
  12. </el-col>
  13. <el-col :xs="24" :sm="12" :lg="6">
  14. <el-form-item label="物料编码" prop="goodsCode">
  15. <el-input v-model="screenForm.goodsCode" placeholder="请输入物料编码"></el-input>
  16. </el-form-item>
  17. </el-col>
  18. <el-col :xs="24" :sm="12" :lg="6">
  19. <el-form-item label="产品编码" prop="goodsOldCode">
  20. <el-input v-model="screenForm.goodsOldCode" placeholder="请输入产品编码"></el-input>
  21. </el-form-item>
  22. </el-col>
  23. <el-col :xs="24" :sm="12" :lg="6">
  24. <el-form-item label="规格型号" prop="model">
  25. <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
  26. </el-form-item>
  27. </el-col>
  28. <el-col :xs="24" :sm="12" :lg="6">
  29. <el-form-item label="制单日期" prop="createDate">
  30. <el-date-picker v-model="screenForm.createDate" type="datetimerange" range-separator="至"
  31. style="width: 100%;" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期"
  32. end-placeholder="结束日期">
  33. </el-date-picker>
  34. </el-form-item>
  35. </el-col>
  36. <el-col :xs="24" :sm="12" :lg="6">
  37. <el-form-item label="发货日期" prop="deliverDate">
  38. <el-date-picker v-model="screenForm.deliverDate" type="datetimerange" range-separator="至"
  39. style="width: 100%;" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期"
  40. end-placeholder="结束日期">
  41. </el-date-picker>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :xs="24" :sm="12" :lg="6">
  45. <el-form-item label="经销商编号" prop="jxsNum">
  46. <el-input v-model="screenForm.jxsNum" placeholder="请输入经销商编号"></el-input>
  47. </el-form-item>
  48. </el-col>
  49. <el-col :xs="24" :sm="12" :lg="6">
  50. <el-form-item label="经销商名称" prop="jxsName">
  51. <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称"></el-input>
  52. </el-form-item>
  53. </el-col>
  54. <el-col :xs="24" :sm="12" :lg="6">
  55. <el-form-item label="发货单号" prop="orderNum">
  56. <el-input v-model="screenForm.orderNum" placeholder="请输入发货单号"></el-input>
  57. </el-form-item>
  58. </el-col>
  59. <el-col :xs="24" :sm="12" :lg="6">
  60. <el-form-item label="订单" prop="mainOrderId">
  61. <el-input v-model="screenForm.mainOrderId" placeholder="请输入订单"></el-input>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :xs="24" :sm="12" :lg="6">
  65. <el-form-item label="存货类别" prop="type">
  66. <el-select v-model="screenForm.type" placeholder="选择存货类别" style="width: 100%" clearable>
  67. <el-option v-for="item in categoryList" :key="item.name" :label="item.name" :value="item.name">
  68. </el-option>
  69. </el-select>
  70. </el-form-item>
  71. </el-col>
  72. <el-col :xs="24" :sm="12" :lg="6">
  73. <el-form-item label="表头业务员" prop="k3ServiceId">
  74. <el-select v-model="screenForm.k3ServiceId" placeholder="选择表头业务员" clearable filterable
  75. style="width: 100%">
  76. <el-option v-for="item in salesmanList" :key="item.adminUserId" :label="item.nickName"
  77. :value="item.adminUserId">
  78. </el-option>
  79. </el-select>
  80. </el-form-item>
  81. </el-col>
  82. <el-col :xs="24" :sm="12" :lg="6">
  83. <el-form-item label="表体业务员" prop="salesMan">
  84. <el-select v-model="screenForm.salesMan" placeholder="选择表体业务员" clearable filterable style="width: 100%">
  85. <el-option v-for="item in salesmanList" :key="item.adminUserId" :label="item.nickName"
  86. :value="item.adminUserId">
  87. </el-option>
  88. </el-select>
  89. </el-form-item>
  90. </el-col>
  91. <el-col :xs="24" :sm="24" :lg="18" class="tr">
  92. <el-form-item label="">
  93. <el-button @click="resetScreenForm">清空</el-button>
  94. <el-button type="primary" @click="submitScreenForm">搜索</el-button>
  95. </el-form-item>
  96. </el-col>
  97. </el-row>
  98. </el-form>
  99. </div>
  100. <div class="mymain-container">
  101. <div class="btn-group clearfix">
  102. <div class="fl">
  103. <el-button type="primary" size="mini" @click="toPrint" :disabled="tableSelection.length < 1">打印发货单
  104. </el-button>
  105. </div>
  106. <!-- -->
  107. <div class="fr" style="display: flex;">
  108. <el-button size="mini" type="primary" v-if="$checkBtnRole('refund', $route.meta.roles)"
  109. style="margin-right: 10px;" icon="el-icon-plus"
  110. @click="$router.push('/supply/deliver/apply_list?isShow=true')">零售退货申请</el-button>
  111. <el-button size="mini" type="primary" v-if="$checkBtnRole('refund', $route.meta.roles)"
  112. style="margin-right: 10px;" icon="el-icon-plus"
  113. @click="$router.push('/supply/deliver/engin_list?isShow=true')">工程退货申请</el-button>
  114. <ExportButton :exUrl="'invoice/exportInvoice'" :exParams="exParams" />
  115. </div>
  116. </div>
  117. <div class="table">
  118. <el-table ref="table" v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit
  119. highlight-current-row stripe @select="handleSelect" @select-all="handleSelectAll" show-summary
  120. :summary-method="$getSummaries">
  121. <el-table-column align="center" type="selection" width="55"></el-table-column>
  122. <el-table-column align="right" label="打印次数" prop="printNum" min-width="80" show-overflow-tooltip>
  123. </el-table-column>
  124. <el-table-column align="left" label="订单类型" prop="orderType" min-width="100" show-overflow-tooltip>
  125. <template slot-scope="scope">
  126. {{ scope.row.orderType | orderTypeFilter }}
  127. </template>
  128. </el-table-column>
  129. <el-table-column align="left" label="发货日期" prop="orderTime" min-width="160" show-overflow-tooltip>
  130. </el-table-column>
  131. <el-table-column align="left" label="订单日期" prop="theTime" min-width="160" show-overflow-tooltip>
  132. </el-table-column>
  133. <el-table-column align="left" label="发货单号" prop="id" min-width="130" show-overflow-tooltip>
  134. <template slot-scope="scope">
  135. <CopyButton :copyText="scope.row.id" />
  136. <span>{{ scope.row.id }}</span>
  137. </template>
  138. </el-table-column>
  139. <el-table-column align="left" label="订单号" prop="orderId" min-width="130" show-overflow-tooltip>
  140. <template slot-scope="scope">
  141. <CopyButton
  142. :copyText="scope.row.enginOrderType == 'HOME' || scope.row.enginOrderType == 'TRADE' ? scope.row.enginOrderNo : scope.row.mainOrderId" />
  143. <span>{{ scope.row.enginOrderType == 'HOME' || scope.row.enginOrderType == 'TRADE' ?
  144. scope.row.enginOrderNo
  145. : scope.row.mainOrderId
  146. }}</span>
  147. </template>
  148. </el-table-column>
  149. <el-table-column align="left" label="经销商编码" prop="customerNumber" min-width="100" show-overflow-tooltip>
  150. <template slot-scope="scope">
  151. <CopyButton :copyText="scope.row.customerNumber" />
  152. <span>{{ scope.row.customerNumber }}</span>
  153. </template>
  154. </el-table-column>
  155. <el-table-column align="left" label="经销商名称" prop="customerName" min-width="250" show-overflow-tooltip>
  156. <template slot-scope="scope">
  157. <CopyButton :copyText="scope.row.customerName" />
  158. <span>{{ scope.row.customerName }}</span>
  159. </template>
  160. </el-table-column>
  161. <el-table-column align="left" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip>
  162. </el-table-column>
  163. <el-table-column align="left" label="物料编码" prop="materialCode" min-width="120" show-overflow-tooltip>
  164. <template slot-scope="scope">
  165. <CopyButton :copyText="scope.row.materialCode" />
  166. <span>{{ scope.row.materialCode }}</span>
  167. </template>
  168. </el-table-column>
  169. <el-table-column align="left" label="产品编码" prop="materialOldNumber" min-width="140" show-overflow-tooltip>
  170. <template slot-scope="scope">
  171. <CopyButton :copyText="scope.row.materialOldNumber" />
  172. <span>{{ scope.row.materialOldNumber }}</span>
  173. </template>
  174. </el-table-column>
  175. <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
  176. <template slot-scope="scope">
  177. <CopyButton :copyText="scope.row.materialName" />
  178. <span>{{ scope.row.materialName }}</span>
  179. </template>
  180. </el-table-column>
  181. <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip>
  182. <template slot-scope="scope">
  183. <CopyButton :copyText="scope.row.specification" />
  184. <span>{{ scope.row.specification }}</span>
  185. </template>
  186. </el-table-column>
  187. <el-table-column align="left" label="仓库" prop="correspondName" min-width="100" show-overflow-tooltip>
  188. </el-table-column>
  189. <el-table-column align="right" label="发货金额" prop="payAmount" min-width="100" show-overflow-tooltip>
  190. <template slot-scope="scope">
  191. {{ scope.row.payAmount | numToFixed }}
  192. </template>
  193. </el-table-column>
  194. <el-table-column align="right" label="发货返利金额" prop="payRebateAmount" min-width="110" show-overflow-tooltip>
  195. <template slot-scope="scope">
  196. {{ scope.row.payRebateAmount | numToFixed }}
  197. </template>
  198. </el-table-column>
  199. <el-table-column align="right" label="发货折扣金额" prop="discAmount" min-width="110" show-overflow-tooltip>
  200. <template slot-scope="scope">
  201. {{ scope.row.totalDiscAmount | numToFixed }}
  202. </template>
  203. </el-table-column>
  204. <el-table-column align="right" label="折扣额合计" prop="totalDiscAmount" min-width="100" show-overflow-tooltip>
  205. <template slot-scope="scope">
  206. {{ (scope.row.totalDiscAmount + scope.row.payRebateAmount) | numToFixed }}
  207. </template>
  208. </el-table-column>
  209. <el-table-column align="right" label="发货数量" prop="refundableQty" min-width="100" show-overflow-tooltip>
  210. </el-table-column>
  211. <el-table-column align="right" label="含税单价" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
  212. <template slot-scope="scope">
  213. {{ scope.row.singlePayPrice | numToFixed }}
  214. </template>
  215. </el-table-column>
  216. <el-table-column align="right" label="含税总额" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
  217. <template slot-scope="scope">
  218. {{ scope.row.payAmount | numToFixed }}
  219. </template>
  220. </el-table-column>
  221. <el-table-column align="right" label="未出库数量" prop="singlePayPrice" min-width="100" show-overflow-tooltip>
  222. <template slot-scope="scope">
  223. {{ comRefundableQty(scope.row.type, scope.row.salesExamineStatus, scope.row) }}
  224. </template>
  225. </el-table-column>
  226. <el-table-column align="left" label="表头业务员" prop="k3ServiceName" min-width="100" show-overflow-tooltip>
  227. </el-table-column>
  228. <el-table-column align="left" label="表体业务员" prop="serviceName" min-width="100" show-overflow-tooltip>
  229. </el-table-column>
  230. <el-table-column align="left" label="政策单号" prop="policyCode" min-width="100" show-overflow-tooltip>
  231. </el-table-column>
  232. <el-table-column align="left" label="政策名称" prop="policyTitle" min-width="100" show-overflow-tooltip>
  233. </el-table-column>
  234. <el-table-column align="left" label="区域" prop="adminArea" min-width="100" show-overflow-tooltip>
  235. </el-table-column>
  236. <el-table-column align="left" label="业务区域" prop="serviceArea" min-width="100" show-overflow-tooltip>
  237. </el-table-column>
  238. <el-table-column align="left" label="月份" prop="month" min-width="100" show-overflow-tooltip>
  239. </el-table-column>
  240. <el-table-column align="left" label="项目编码" prop="refEnginRecordNo" min-width="160" show-overflow-tooltip>
  241. </el-table-column>
  242. <el-table-column align="left" label="项目名称" prop="refProjectName" min-width="160" show-overflow-tooltip>
  243. </el-table-column>
  244. <el-table-column align="left" label="存货类别" prop="categoryName" min-width="160" show-overflow-tooltip>
  245. </el-table-column>
  246. <el-table-column align="left" label="申请发货单备注" prop="remark" min-width="200" show-overflow-tooltip>
  247. </el-table-column>
  248. <el-table-column align="left" label="表头备注" prop="headerRemark" min-width="200" show-overflow-tooltip>
  249. </el-table-column>
  250. <el-table-column align="left" label="表体备注" prop="invoiceRemark" min-width="200" show-overflow-tooltip>
  251. </el-table-column>
  252. <el-table-column align="left" label="打印次数" prop="printNum" min-width="200" show-overflow-tooltip>
  253. </el-table-column>
  254. <el-table-column align="left" label="经销商现金钱包" prop="customerWalletName" min-width="200"
  255. show-overflow-tooltip></el-table-column>
  256. <el-table-column align="left" label="经销商返利钱包" prop="customerWalletName2" min-width="200"
  257. show-overflow-tooltip></el-table-column>
  258. <el-table-column align="left" label="文件编号" prop="itemFileNo" min-width="200" show-overflow-tooltip>
  259. </el-table-column>
  260. </el-table>
  261. </div>
  262. </div>
  263. <div class="pagination clearfix">
  264. <div class="fr">
  265. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
  266. :current-page="currentPage" :page-sizes="[10, 20, 30, 50]" :page-size="10"
  267. layout="total, sizes, prev, pager, next, jumper" :total="listTotal">
  268. </el-pagination>
  269. </div>
  270. </div>
  271. </div>
  272. <print-preview ref="preView" />
  273. <el-dialog title="密码确认" :visible.sync="isShowDialog" :show-close="false" width="40%" :close-on-click-modal="false">
  274. <el-form ref="dialogForm" :model="dialogForm" :rules="dialogFormRules" label-position="right" label-width="70px">
  275. <el-row :gutter="20">
  276. <el-col :xs="24" :sm="24" :lg="24">
  277. <el-form-item label="密码" prop="password">
  278. <el-input v-model="dialogForm.password" autocomplete="off" placeholder="请输入密码"></el-input>
  279. </el-form-item>
  280. </el-col>
  281. <el-col :xs="24" :sm="12" :lg="12">
  282. <el-form-item label="操作人" prop="createMan">
  283. <el-input v-model="dialogForm.createMan" readonly></el-input>
  284. </el-form-item>
  285. </el-col>
  286. <el-col :xs="24" :sm="12" :lg="12" style="height: 51px;">
  287. <el-form-item label="操作日期" prop="createDate">
  288. <el-date-picker v-model="dialogForm.createDate" readonly type="date" value-format="yyyy-MM-dd"
  289. style="width: 100%;" placeholder="选择日期">
  290. </el-date-picker>
  291. </el-form-item>
  292. </el-col>
  293. </el-row>
  294. </el-form>
  295. <div slot="footer" class="dialog-footer">
  296. <el-button @click="cancelDialogForm">取 消</el-button>
  297. <el-button type="primary" @click="submitDialogForm">确 定</el-button>
  298. </div>
  299. </el-dialog>
  300. </div>
  301. </template>
  302. <script>
  303. import { getSumList } from '@/api/supply/deliver'
  304. import { checkPassword } from "@/api/supply/pickup";
  305. import { getCategoryList, getSalesmanList } from '@/api/common'
  306. import SumPrint from '@/views/supply/deliver/components/sum_print'
  307. import { disAutoConnect, hiprint, defaultElementTypeProvider } from 'vue-plugin-hiprint'
  308. disAutoConnect();
  309. import panel from './components/design/panel'
  310. import { getDetail, detailArr } from './components/design/print-data'
  311. import printPreview from './components/design/preview.vue'
  312. export default {
  313. components: {
  314. SumPrint,
  315. printPreview
  316. },
  317. filters: {
  318. orderTypeFilter(val) {
  319. const MAP = {
  320. HOME: '家用单',
  321. TRADE: '商用单',
  322. RETAIL: '零售单',
  323. RETAIL_POLICY: '销售政策单',
  324. PERMU_HOME: '置换家用单',
  325. PERMU_TRADE: '置换商用单',
  326. PERMU_RETAIL: '置换零售单',
  327. PERMU_RETAIL_POLICY: '置换销售政策单',
  328. REQUISITION_HOME: '调拨家用单',
  329. REQUISITION_TRADE: '调拨商用单',
  330. REQUISITION_RETAIL: '调拨零售单',
  331. REQUISITION_RETAIL_POLICY: '调拨销售政策单',
  332. }
  333. return MAP[val];
  334. }
  335. },
  336. data() {
  337. return {
  338. currentPage: 1, // 当前页码
  339. pageSize: 10, // 每页数量
  340. listTotal: 0, // 列表总数
  341. dataList: null, // 列表数据
  342. listLoading: false, // 列表加载loading
  343. screenForm: { // 筛选表单数据
  344. goodsName: '',
  345. goodsCode: '',
  346. goodsOldCode: '',
  347. model: '',
  348. createDate: '',
  349. deliverDate: '',
  350. jxsNum: '',
  351. jxsName: '',
  352. orderNum: '',
  353. type: '',
  354. salesMan: '',
  355. k3ServiceId: '',
  356. mainOrderId: ''
  357. },
  358. categoryList: [],
  359. salesmanList: [],
  360. tableSelection: [],
  361. queryItem: {},
  362. isShowPrint: false,
  363. curPaper: {
  364. type: 'A5',
  365. width: 500,
  366. height: 147.6
  367. },
  368. paperTypes: {
  369. 'A3': {
  370. width: 420,
  371. height: 296.6
  372. },
  373. 'A4': {
  374. width: 210,
  375. height: 296.6
  376. },
  377. 'A5': {
  378. width: 210,
  379. height: 147.6
  380. },
  381. 'B3': {
  382. width: 500,
  383. height: 352.6
  384. },
  385. 'B4': {
  386. width: 250,
  387. height: 352.6
  388. },
  389. 'B5': {
  390. width: 250,
  391. height: 175.6
  392. }
  393. },
  394. scaleValue: 1,
  395. scaleMax: 5,
  396. scaleMin: 0.5,
  397. hiprintTemplate:'',
  398. isShowDialog: false,
  399. dialogForm: {
  400. password: "",
  401. createMan: "",
  402. createDate: "",
  403. },
  404. dialogFormRules: {
  405. password: [{ required: true, message: "请输入密码", trigger: "blur" }],
  406. },
  407. }
  408. },
  409. computed: {
  410. exParams() {
  411. return {
  412. materialName: this.screenForm.goodsName,
  413. materialNumber: this.screenForm.goodsCode,
  414. materialOldNumber: this.screenForm.goodsOldCode,
  415. specification: this.screenForm.model,
  416. createStartTime: this.screenForm.createDate ? this.screenForm.createDate[0] : '',
  417. createEndTime: this.screenForm.createDate ? this.screenForm.createDate[1] : '',
  418. startTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[0] : '',
  419. endTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[1] : '',
  420. customerNumber: this.screenForm.jxsNum,
  421. customerName: this.screenForm.jxsName,
  422. id: this.screenForm.orderNum,
  423. categoryName: this.screenForm.type,
  424. serviceId: this.screenForm.salesMan,
  425. k3ServiceId: this.screenForm.k3ServiceId
  426. }
  427. },
  428. comRefundableQty() {
  429. return (type, status, row) => {
  430. if (type == 2) {
  431. return ''
  432. } else {
  433. if (status == 'OK') {
  434. return 0
  435. } else {
  436. return row.refundableQty
  437. }
  438. }
  439. }
  440. },
  441. curPaperType() {
  442. let type = 'other'
  443. let types = this.paperTypes
  444. for (const key in types) {
  445. let item = types[key]
  446. let { width, height } = this.curPaper
  447. if (item.width === width && item.height === height) {
  448. type = key
  449. }
  450. }
  451. return type
  452. }
  453. },
  454. created() {
  455. this.getSalesmanList();
  456. this.getCategoryList();
  457. this.getList();
  458. },
  459. activated(){
  460. this.initPrint()
  461. },
  462. methods: {
  463. initPrint(){
  464. hiprint.init({
  465. providers: [new defaultElementTypeProvider()]
  466. });
  467. // 还原配置
  468. hiprint.setConfig()
  469. // 替换配置
  470. hiprint.setConfig({
  471. movingDistance: 2.5,
  472. text: {
  473. supportOptions: [
  474. {
  475. name: 'styler',
  476. hidden: true
  477. },
  478. {
  479. name: 'formatter',
  480. hidden: true
  481. },
  482. ]
  483. }
  484. })
  485. // eslint-disable-next-line no-undef
  486. hiprint.PrintElementTypeManager.buildByHtml($('.ep-draggable-item'));
  487. this.hiprintTemplate = new hiprint.PrintTemplate({
  488. template: panel,
  489. settingContainer: '#PrintElementOptionSetting',
  490. paginationContainer: '.hiprint-printPagination'
  491. });
  492. this.hiprintTemplate.design('#hiprint-printTemplate');
  493. // 获取当前放大比例, 当zoom时传true 才会有
  494. // this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
  495. }
  496. ,
  497. // 获取业务员列表
  498. getSalesmanList() {
  499. getSalesmanList({
  500. pageNum: 1,
  501. pageSize: -1,
  502. isCustomer: 0,
  503. status: true,
  504. }).then(res => {
  505. this.salesmanList = res.data.records;
  506. })
  507. },
  508. // 获取存货类别列表
  509. getCategoryList() {
  510. getCategoryList({
  511. pageNum: 1,
  512. pageSize: -1,
  513. }).then(res => {
  514. this.categoryList = res.data.records;
  515. })
  516. },
  517. // 查询列表
  518. getList() {
  519. console.log(888);
  520. this.listLoading = true;
  521. let params = {
  522. pageNum: this.currentPage,
  523. pageSize: this.pageSize,
  524. materialName: this.screenForm.goodsName,
  525. materialNumber: this.screenForm.goodsCode,
  526. materialOldNumber: this.screenForm.goodsOldCode,
  527. specification: this.screenForm.model,
  528. createStartTime: this.screenForm.createDate ? this.screenForm.createDate[0] : '',
  529. createEndTime: this.screenForm.createDate ? this.screenForm.createDate[1] : '',
  530. startTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[0] : '',
  531. endTime: this.screenForm.deliverDate ? this.screenForm.deliverDate[1] : '',
  532. customerNumber: this.screenForm.jxsNum,
  533. customerName: this.screenForm.jxsName,
  534. id: this.screenForm.orderNum,
  535. categoryName: this.screenForm.type,
  536. serviceId: this.screenForm.salesMan,
  537. k3ServiceId: this.screenForm.k3ServiceId,
  538. mainOrderId: this.screenForm.mainOrderId
  539. };
  540. getSumList(params).then((res) => {
  541. res.data.records.forEach(item => {
  542. item.notOutNumber = item.salesStatus ? 0 : item.refundableQty;
  543. item.sums1 = ['refundableQty'];
  544. item.sums2 = ['payAmount', 'payRebateAmount', 'discAmount', 'totalDiscAmount'];
  545. })
  546. this.dataList = res.data.records;
  547. this.listTotal = res.data.total;
  548. this.listLoading = false;
  549. })
  550. },
  551. // 提交筛选表单
  552. submitScreenForm() {
  553. this.currentPage = 1;
  554. this.getList();
  555. },
  556. // 重置筛选表单
  557. resetScreenForm() {
  558. this.$refs.screenForm.resetFields();
  559. this.currentPage = 1;
  560. this.getList();
  561. },
  562. // 更改每页数量
  563. handleSizeChange(val) {
  564. this.pageSize = val;
  565. this.currentPage = 1;
  566. this.getList();
  567. },
  568. // 更改当前页
  569. handleCurrentChange(val) {
  570. this.currentPage = val;
  571. this.getList();
  572. },
  573. handleSelect(selection, row) {
  574. this.$refs.table.toggleRowSelection(row);
  575. this.dataList.forEach((item) => {
  576. if (item.id === row.id) {
  577. this.$refs.table.toggleRowSelection(item);
  578. }
  579. });
  580. this.tableSelection = this.$refs.table.selection;
  581. },
  582. handleSelectAll(selection) {
  583. this.tableSelection = this.$refs.table.selection;
  584. },
  585. // 点击打印
  586. toPrint() {
  587. // this.$refs
  588. this.queryItem = this.tableSelection;
  589. // console.log(this.tableSelection);
  590. // this.isShowPrint = true;
  591. // this.$refs.myPdfComponent.print()
  592. // console.log(this.hiprintTemplate, detailArr);
  593. // getDetail(this.tableSelection)
  594. // this.$refs.preView.show(this.hiprintTemplate, detailArr)
  595. if (!this.tableSelection[0].printNum) {
  596. this.queryItem = this.tableSelection;
  597. // this.isShowPrint = true;
  598. getDetail(this.tableSelection,JSON.parse(
  599. localStorage.getItem("supply_user")
  600. ).nickName)
  601. this.$refs.preView.show(this.hiprintTemplate, detailArr)
  602. } else {
  603. this.queryItem = this.tableSelection;
  604. this.dialogForm.createMan = JSON.parse(
  605. localStorage.getItem("supply_user")
  606. ).nickName;
  607. this.dialogForm.createDate = this.getDate();
  608. this.isShowDialog = true;
  609. }
  610. },
  611. // 关闭弹窗
  612. cancelDialogForm() {
  613. this.isShowDialog = false;
  614. this.$refs.dialogForm.resetFields();
  615. },
  616. // 提交 弹窗
  617. submitDialogForm() {
  618. this.$refs.dialogForm.validate((valid) => {
  619. if (valid) {
  620. let params = {
  621. shipId: this.queryItem[0].invoiceId,
  622. password: this.dialogForm.password,
  623. };
  624. checkPassword(params).then((res) => {
  625. this.cancelDialogForm();
  626. getDetail(this.tableSelection,JSON.parse(
  627. localStorage.getItem("supply_user")
  628. ).nickName)
  629. this.$refs.preView.show(this.hiprintTemplate, detailArr)
  630. });
  631. }
  632. });
  633. },
  634. getDate() {
  635. var date = new Date();
  636. var seperator1 = "-";
  637. var year = date.getFullYear();
  638. var month = date.getMonth() + 1;
  639. var strDate = date.getDate();
  640. if (month >= 1 && month <= 9) {
  641. month = "0" + month;
  642. }
  643. if (strDate >= 0 && strDate <= 9) {
  644. strDate = "0" + strDate;
  645. }
  646. var currentdate = year + seperator1 + month + seperator1 + strDate;
  647. return currentdate;
  648. },
  649. backList() {
  650. this.queryItem = {};
  651. this.isShowPrint = false;
  652. },
  653. /**
  654. * 设置纸张大小
  655. * @param type [A3, A4, A5, B3, B4, B5, other]
  656. * @param value {width,height} mm
  657. */
  658. setPaper(type, value) {
  659. try {
  660. if (Object.keys(this.paperTypes).includes(type)) {
  661. this.curPaper = { type: type, width: value.width, height: value.height }
  662. this.hiprintTemplate.setPaper(value.width, value.height)
  663. } else {
  664. this.curPaper = { type: 'other', width: value.width, height: value.height }
  665. this.hiprintTemplate.setPaper(value.width, value.height)
  666. }
  667. } catch (error) {
  668. this.$message.error(`操作失败: ${error}`)
  669. }
  670. },
  671. }
  672. }
  673. </script>
  674. <style lang="scss" scoped>
  675. </style>