nsales_list.vue 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876
  1. <template>
  2. <div class="app-container">
  3. <div v-show="!isShowDetail && !isShowExamine && !isShowReturnForm">
  4. <!-- 筛选条件 -->
  5. <div class="screen-container">
  6. <Collapse :screen-form="screenForm">
  7. <template #right_btn>
  8. <el-button size="mini" @click="resetScreenForm">清空</el-button>
  9. <el-button size="mini" type="primary" @click="submitScreenForm">搜索</el-button>
  10. </template>
  11. <template #left_btn>
  12. <el-radio-group v-model="screenForm.status" @change="getList()" size="mini">
  13. <el-radio-button label="">全部</el-radio-button>
  14. <el-radio-button v-for="(item, index) in statusList" :key="index" :label="item.value">{{
  15. item.label
  16. }}</el-radio-button>
  17. </el-radio-group>
  18. </template>
  19. <template #search>
  20. <el-form ref="screenForm" :model="screenForm" label-width="120px" size="mini" label-position="left">
  21. <el-row :gutter="20">
  22. <el-col :xs="24" :sm="12" :lg="6">
  23. <el-form-item label="发货单号" prop="orderNum">
  24. <el-input v-model="screenForm.orderNum" placeholder="请输入发货单号" />
  25. </el-form-item>
  26. </el-col>
  27. <el-col :xs="24" :sm="12" :lg="6">
  28. <el-form-item label="订单号" prop="mainOrderId">
  29. <el-input v-model="screenForm.mainOrderId" placeholder="请输入订单号" />
  30. </el-form-item>
  31. </el-col>
  32. <el-col :xs="24" :sm="12" :lg="6">
  33. <el-form-item label="经销商名称" prop="jxsName">
  34. <el-input v-model="screenForm.jxsName" placeholder="请输入经销商名称" />
  35. </el-form-item>
  36. </el-col>
  37. <el-col :xs="24" :sm="12" :lg="6">
  38. <el-form-item label="经销商编号" prop="jxsNum">
  39. <el-input v-model="screenForm.jxsNum" placeholder="请输入规格型号" />
  40. </el-form-item>
  41. </el-col>
  42. <el-col :xs="24" :sm="12" :lg="6">
  43. <el-form-item label="产品名称" prop="chName">
  44. <el-input v-model="screenForm.chName" placeholder="请输入产品名称" />
  45. </el-form-item>
  46. </el-col>
  47. <el-col :xs="24" :sm="12" :lg="6">
  48. <el-form-item label="物料编码" prop="chNum">
  49. <el-input v-model="screenForm.chNum" placeholder="请输入物料编码" />
  50. </el-form-item>
  51. </el-col>
  52. <el-col :xs="24" :sm="12" :lg="6">
  53. <el-form-item label="规格型号" prop="model">
  54. <el-input v-model="screenForm.model" placeholder="请输入规格型号" />
  55. </el-form-item>
  56. </el-col>
  57. <el-col :xs="24" :sm="12" :lg="6">
  58. <el-form-item label="仓库名称" prop="warehouse">
  59. <el-input v-model="screenForm.warehouse" placeholder="请输入仓库名称" />
  60. </el-form-item>
  61. </el-col>
  62. <el-col :xs="24" :sm="12" :lg="6">
  63. <el-form-item label="单据日期" prop="date">
  64. <el-date-picker
  65. v-model="screenForm.date"
  66. type="datetimerange"
  67. :default-time="['00:00:00', '23:59:59']"
  68. range-separator="至"
  69. style="width: 100%"
  70. value-format="yyyy-MM-dd HH:mm:ss"
  71. start-placeholder="开始日期"
  72. end-placeholder="结束日期"
  73. />
  74. </el-form-item>
  75. </el-col>
  76. <el-col :xs="24" :sm="12" :lg="6">
  77. <el-form-item label="审核日期" prop="approval">
  78. <el-date-picker
  79. v-model="screenForm.approval"
  80. type="datetimerange"
  81. :default-time="['00:00:00', '23:59:59']"
  82. range-separator="至"
  83. style="width: 100%"
  84. value-format="yyyy-MM-dd HH:mm:ss"
  85. start-placeholder="开始日期"
  86. end-placeholder="结束日期"
  87. />
  88. </el-form-item>
  89. </el-col>
  90. <el-col :xs="24" :sm="12" :lg="6">
  91. <el-form-item label="打印日期" prop="printTime">
  92. <el-date-picker
  93. v-model="screenForm.printTime"
  94. type="datetimerange"
  95. :default-time="['00:00:00', '23:59:59']"
  96. range-separator="至"
  97. style="width: 100%"
  98. value-format="yyyy-MM-dd HH:mm:ss"
  99. start-placeholder="开始日期"
  100. end-placeholder="结束日期"
  101. />
  102. </el-form-item>
  103. </el-col>
  104. <el-col :xs="24" :sm="12" :lg="6">
  105. <el-form-item label="打印时间排序" prop="printDesc">
  106. <el-select v-model="screenForm.printDesc" clearable filterable>
  107. <el-option label="默认" :value="null" />
  108. <el-option label="倒叙" :value="1" />
  109. </el-select>
  110. </el-form-item>
  111. </el-col>
  112. <el-col :xs="24" :sm="12" :lg="6">
  113. <el-form-item label="出库单号" prop="id">
  114. <el-input v-model="screenForm.id" placeholder="请输入出库单号" />
  115. </el-form-item>
  116. </el-col>
  117. <el-col :xs="24" :sm="12" :lg="6">
  118. <el-form-item label="金蝶推送状态" prop="syncStatus">
  119. <el-select v-model="screenForm.syncStatus" clearable filterable>
  120. <el-option label="未推送" :value="0" />
  121. <el-option label="推送成功" :value="1" />
  122. <el-option label="失败推送" :value="-1" />
  123. </el-select>
  124. </el-form-item>
  125. </el-col>
  126. <el-col :xs="24" :sm="12" :lg="6">
  127. <el-form-item label="产品类别" prop="categoryId">
  128. <el-select
  129. v-model="screenForm.categoryId"
  130. style="width: 100%"
  131. placeholder="选择产品类别"
  132. filterable
  133. clearable
  134. >
  135. <el-option v-for="item in categoryList" :key="item.name" :label="item.name" :value="item.id" />
  136. </el-select>
  137. </el-form-item>
  138. </el-col>
  139. <el-col :xs="24" :sm="12" :lg="6">
  140. <el-form-item label="发货时间" prop="invoiceDate">
  141. <el-date-picker
  142. v-model="screenForm.invoiceDate"
  143. type="datetimerange"
  144. :default-time="['00:00:00', '23:59:59']"
  145. range-separator="至"
  146. style="width: 100%"
  147. value-format="yyyy-MM-dd HH:mm:ss"
  148. start-placeholder="开始日期"
  149. end-placeholder="结束日期"
  150. />
  151. </el-form-item>
  152. </el-col>
  153. </el-row>
  154. </el-form>
  155. </template>
  156. </Collapse>
  157. </div>
  158. <div class="mymain-container">
  159. <div class="btn-group clearfix">
  160. <div class="fl">
  161. <!-- <el-button size="mini" type="primary" icon="el-icon-plus" @click="toReturnForm()" v-if="$checkBtnRole('refund', $route.meta.roles)">退货申请</el-button>-->
  162. <!-- <el-button size="mini" type="warning" icon="el-icon-finished" @click="batchExamine" :disabled="multipleSelection.length < 1" v-if="$checkBtnRole('examine', $route.meta.roles)">批量审批</el-button>-->
  163. </div>
  164. <div class="fr">
  165. <ExportButton :ex-url="'sale/order/export'" :ex-params="exParams" />
  166. </div>
  167. </div>
  168. <div class="table">
  169. <el-table
  170. v-loading="listLoading"
  171. :data="dataList"
  172. element-loading-text="Loading"
  173. border
  174. fit
  175. highlight-current-row
  176. stripe
  177. show-summary
  178. :summary-method="$getSummaries"
  179. @selection-change="handleSelectionChange"
  180. >
  181. <!-- <el-table-column align="center" type="selection" width="55"></el-table-column>-->
  182. <el-table-column
  183. align="left"
  184. label="金蝶推送状态"
  185. prop="syncStatus"
  186. min-width="130"
  187. show-overflow-tooltip
  188. sortable
  189. >
  190. <template slot-scope="scope">
  191. {{ scope.row.syncStatus == 0 ? '未推送' : scope.row.syncStatus == 1 ? '推送成功' : '失败推送' }}
  192. </template>
  193. </el-table-column>
  194. <el-table-column
  195. align="left"
  196. label="状态"
  197. prop="examineStatus"
  198. min-width="100"
  199. show-overflow-tooltip
  200. sortable
  201. >
  202. <template slot-scope="scope">
  203. {{ scope.row.examineStatus | statusFilter }}
  204. </template>
  205. </el-table-column>
  206. <el-table-column
  207. align="left"
  208. label="打印时间"
  209. prop="printTime"
  210. min-width="100"
  211. show-overflow-tooltip
  212. sortable
  213. />
  214. <el-table-column
  215. align="left"
  216. label="发货日期"
  217. prop="invoiceOrderTime"
  218. min-width="100"
  219. show-overflow-tooltip
  220. sortable
  221. />
  222. <el-table-column
  223. align="left"
  224. label="订单类型"
  225. prop="orderType"
  226. min-width="100"
  227. show-overflow-tooltip
  228. sortable
  229. >
  230. <template slot-scope="scope">
  231. {{ scope.row.orderType | orderTypeFilter }}
  232. </template>
  233. </el-table-column>
  234. <!-- <el-table-column align="left" label="开票状态" prop="billStatus" min-width="100" show-overflow-tooltip sortable>
  235. <template slot-scope="scope">
  236. {{scope.row.billStatus | billStatusFilter}}
  237. </template>
  238. </el-table-column> -->
  239. <el-table-column
  240. align="left"
  241. label="发票号"
  242. prop="billReceipt"
  243. min-width="250"
  244. show-overflow-tooltip
  245. sortable
  246. >
  247. <template slot-scope="scope">
  248. {{ scope.row.billReceipt }}
  249. </template>
  250. </el-table-column>
  251. <el-table-column align="left" label="出库单号" prop="id" min-width="110" show-overflow-tooltip sortable>
  252. <template slot-scope="scope">
  253. <CopyButton :copy-text="scope.row.id" />
  254. <span>{{ scope.row.id }}</span>
  255. </template>
  256. </el-table-column>
  257. <el-table-column
  258. align="left"
  259. label="发货单号"
  260. prop="orderNo"
  261. min-width="130"
  262. show-overflow-tooltip
  263. sortable
  264. >
  265. <template slot-scope="scope">
  266. <CopyButton :copy-text="scope.row.orderNo" />
  267. <span>{{ scope.row.orderNo }}</span>
  268. </template>
  269. </el-table-column>
  270. <el-table-column align="left" label="订单号" prop="orderNo" min-width="140" show-overflow-tooltip sortable>
  271. <template slot-scope="scope">
  272. <CopyButton
  273. :copy-text="
  274. scope.row.orderType === 'TRADE' ||
  275. scope.row.orderType === 'HOME' ||
  276. scope.row.orderType === 'REQUISITION_TRADE' ||
  277. scope.row.orderType === 'REQUISITION_HOME'
  278. ? scope.row.enginOrderNo
  279. : scope.row.mainOrderId
  280. "
  281. />
  282. <span>{{
  283. scope.row.orderType === 'TRADE' ||
  284. scope.row.orderType === 'HOME' ||
  285. scope.row.orderType === 'REQUISITION_TRADE' ||
  286. scope.row.orderType === 'REQUISITION_HOME'
  287. ? scope.row.enginOrderNo
  288. : scope.row.mainOrderId
  289. }}</span>
  290. </template>
  291. </el-table-column>
  292. <el-table-column
  293. align="left"
  294. label="仓库"
  295. prop="correspondName"
  296. min-width="100"
  297. show-overflow-tooltip
  298. sortable
  299. />
  300. <el-table-column
  301. align="left"
  302. label="经销商编码"
  303. prop="customerNumber"
  304. min-width="120"
  305. show-overflow-tooltip
  306. sortable
  307. >
  308. <template slot-scope="scope">
  309. <CopyButton :copy-text="scope.row.customerNumber" />
  310. <span>{{ scope.row.customerNumber }}</span>
  311. </template>
  312. </el-table-column>
  313. <el-table-column
  314. align="left"
  315. label="经销商名称"
  316. prop="customerName"
  317. min-width="250"
  318. show-overflow-tooltip
  319. sortable
  320. >
  321. <template slot-scope="scope">
  322. <CopyButton :copy-text="scope.row.customerName" />
  323. <span>{{ scope.row.customerName }}</span>
  324. </template>
  325. </el-table-column>
  326. <el-table-column
  327. align="left"
  328. label="销售类型"
  329. prop="saleTypeName"
  330. min-width="100"
  331. show-overflow-tooltip
  332. sortable
  333. />
  334. <el-table-column
  335. align="left"
  336. label="物料编码"
  337. prop="materialCode"
  338. min-width="120"
  339. show-overflow-tooltip
  340. sortable
  341. >
  342. <template slot-scope="scope">
  343. <CopyButton :copy-text="scope.row.materialCode" />
  344. <span>{{ scope.row.materialCode }}</span>
  345. </template>
  346. </el-table-column>
  347. <el-table-column
  348. align="left"
  349. label="产品编码"
  350. prop="materialOldNumber"
  351. min-width="140"
  352. show-overflow-tooltip
  353. sortable
  354. >
  355. <template slot-scope="scope">
  356. <CopyButton :copy-text="scope.row.materialOldNumber" />
  357. <span>{{ scope.row.materialOldNumber }}</span>
  358. </template>
  359. </el-table-column>
  360. <el-table-column
  361. align="left"
  362. label="产品名称"
  363. prop="materialName"
  364. min-width="160"
  365. show-overflow-tooltip
  366. sortable
  367. >
  368. <template slot-scope="scope">
  369. <CopyButton :copy-text="scope.row.materialName" />
  370. <span>{{ scope.row.materialName }}</span>
  371. </template>
  372. </el-table-column>
  373. <el-table-column
  374. align="left"
  375. label="规格型号"
  376. prop="specification"
  377. min-width="350"
  378. show-overflow-tooltip
  379. sortable
  380. >
  381. <template slot-scope="scope">
  382. <CopyButton :copy-text="scope.row.specification" />
  383. <span>{{ scope.row.specification }}</span>
  384. </template>
  385. </el-table-column>
  386. <el-table-column align="left" label="单位" prop="unit" min-width="100" show-overflow-tooltip sortable />
  387. <el-table-column
  388. align="right"
  389. label="数量"
  390. prop="refundableQty"
  391. min-width="100"
  392. show-overflow-tooltip
  393. sortable
  394. />
  395. <el-table-column align="right" label="单价" prop="price" min-width="100" show-overflow-tooltip sortable>
  396. <template slot-scope="scope">
  397. {{ scope.row.price | numToFixed }}
  398. </template>
  399. </el-table-column>
  400. <el-table-column
  401. align="right"
  402. label="订单金额"
  403. prop="payAmount"
  404. min-width="100"
  405. show-overflow-tooltip
  406. sortable
  407. >
  408. <template slot-scope="scope">
  409. {{ scope.row.payAmount | numToFixed }}
  410. </template>
  411. </el-table-column>
  412. <el-table-column
  413. align="left"
  414. label="订单备注"
  415. prop="headerRemark"
  416. min-width="160"
  417. show-overflow-tooltip
  418. sortable
  419. />
  420. <el-table-column
  421. align="left"
  422. label="审核时间"
  423. prop="approvalTime"
  424. min-width="150"
  425. show-overflow-tooltip
  426. sortable
  427. />
  428. <el-table-column
  429. align="left"
  430. label="发货申请备注"
  431. prop="remark"
  432. min-width="160"
  433. show-overflow-tooltip
  434. sortable
  435. />
  436. <el-table-column
  437. align="left"
  438. label="表体备注"
  439. prop="invoiceRemark"
  440. min-width="160"
  441. show-overflow-tooltip
  442. sortable
  443. />
  444. <el-table-column
  445. align="left"
  446. label="业务员"
  447. prop="serviceName"
  448. min-width="120"
  449. show-overflow-tooltip
  450. sortable
  451. />
  452. <el-table-column
  453. align="left"
  454. label="表头业务员"
  455. prop="k3ServiceName"
  456. min-width="120"
  457. show-overflow-tooltip
  458. sortable
  459. />
  460. <!-- <el-table-column align="center" label="操作" width="120" fixed="right">
  461. <template slot-scope="scope">
  462. <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
  463. <el-button type="text" @click="toExamine(scope.row)" v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'WAIT'">审批</el-button>
  464. <el-popconfirm
  465. style="margin-left: 10px;"
  466. title="确定弃审吗?"
  467. @onConfirm="handleAbandon(scope.row.id)"
  468. v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'OK'" >
  469. <el-button slot="reference" type="text">弃审</el-button>
  470. </el-popconfirm>
  471. </template>
  472. </el-table-column> -->
  473. </el-table>
  474. </div>
  475. </div>
  476. <div class="pagination clearfix">
  477. <div class="fr">
  478. <el-pagination
  479. :current-page="currentPage"
  480. :page-sizes="[10, 20, 30, 50]"
  481. :page-size="10"
  482. layout="total, sizes, prev, pager, next, jumper"
  483. :total="listTotal"
  484. @size-change="handleSizeChange"
  485. @current-change="handleCurrentChange"
  486. />
  487. </div>
  488. </div>
  489. </div>
  490. <ExamineDialog :is-show.sync="isShowExamineDialog" :examine-form.sync="examineForm" />
  491. <SalesDetail v-if="isShowDetail" :list-item="queryItem" @backListFormDetail="backList" />
  492. <SalesExamine v-if="isShowExamine" :list-item="queryItem" @backListFormExamine="backList" />
  493. <SalesReturnForm v-if="isShowReturnForm" :list-item="queryItem" @backListFormDetail="backList" />
  494. </div>
  495. <!-- <template-page
  496. ref="pageRef"
  497. :getList="getList"
  498. :operation="operation()"
  499. :optionsEvensGroup="optionsEvensGroup"
  500. :exportList="exportList"
  501. :columnParsing="columnParsing"
  502. :tableAttributes="tableAttributes"
  503. :tableEvents="tableEvents"
  504. >
  505. </template-page> -->
  506. </template>
  507. <script>
  508. import TemplatePage from '@/components/template/template-page-1.vue'
  509. import { abandonData, examineBatch, examineJudge, getList } from '@/api/supply/sales'
  510. import SalesDetail from '@/views/supply/sales/components/sales_detail'
  511. import SalesExamine from '@/views/supply/sales/components/sales_examine'
  512. import SalesReturnForm from '@/views/supply/sales/components/sales_return_form'
  513. import ExamineDialog from '@/components/Common/examine-dialog'
  514. import { getCategoryList } from '@/api/common'
  515. let that
  516. export default {
  517. components: {
  518. SalesDetail,
  519. SalesExamine,
  520. SalesReturnForm,
  521. ExamineDialog,
  522. TemplatePage
  523. },
  524. filters: {
  525. statusFilter(val) {
  526. if (that.statusList.length) {
  527. const obj = that.statusList.find(o => o.value == val)
  528. return obj ? obj.label : ''
  529. }
  530. return ''
  531. },
  532. orderTypeFilter(val) {
  533. if (that.orderTypeList.length) {
  534. const obj = that.orderTypeList.find(o => o.value == val)
  535. return obj ? obj.label : ''
  536. }
  537. return ''
  538. },
  539. billStatusFilter(val) {
  540. const MAP = {
  541. 1: '已开票',
  542. 0: '未开票'
  543. }
  544. return MAP[val]
  545. }
  546. },
  547. data() {
  548. return {
  549. // 事件组合
  550. optionsEvensGroup: [],
  551. // 表格属性
  552. tableAttributes: {
  553. // 启用勾选列
  554. selectColumn: true
  555. },
  556. // 表格事件
  557. tableEvents: {
  558. 'selection-change': this.selectionChange
  559. },
  560. recordSelected: [],
  561. currentPage: 1, // 当前页码
  562. pageSize: 10, // 每页数量
  563. listTotal: 0, // 列表总数
  564. dataList: null, // 列表数据
  565. listLoading: false, // 列表加载loading
  566. screenForm: {
  567. // 筛选表单数据
  568. orderNum: '',
  569. jxsName: '',
  570. jxsNum: '',
  571. chName: '',
  572. chNum: '',
  573. model: '',
  574. warehouse: '',
  575. date: [],
  576. status: '',
  577. approval: [],
  578. printTime: [],
  579. mainOrderId: '',
  580. printDesc: null,
  581. syncStatus: '',
  582. categoryId: '',
  583. invoiceDate: [],
  584. id: ''
  585. },
  586. statusList: [
  587. { label: '已保存', value: 'SAVE' },
  588. { label: '待审核', value: 'WAIT' },
  589. { label: '审核通过', value: 'OK' }
  590. // { label: '审核驳回', value: 'FAIL' },,
  591. ],
  592. orderTypeList: [
  593. { label: '商用', value: 'TRADE' },
  594. { label: '家用', value: 'HOME' },
  595. { label: '零售单', value: 'RETAIL' },
  596. { label: '销售政策单', value: 'RETAIL_POLICY' },
  597. { label: '置换单家用', value: 'PERMU_HOME' },
  598. { label: '置换商用', value: 'PERMU_TRADE' },
  599. { label: '置换零售', value: 'PERMU_RETAIL' },
  600. { label: '置换销售政策单', value: 'PERMU_RETAIL_POLICY' },
  601. { label: '调拨单零售', value: 'REQUISITION_RETAIL' },
  602. { label: '调拨单销售政策', value: 'REQUISITION_RETAIL_POLICY' },
  603. { label: '调拨单商用', value: 'REQUISITION_TRADE' },
  604. { label: '调拨单家用', value: 'REQUISITION_HOME' }
  605. ],
  606. isCollapse: true,
  607. queryItem: {},
  608. isShowDetail: false,
  609. isShowExamine: false,
  610. isShowReturnForm: false,
  611. value1: '',
  612. choiceDate: '',
  613. multipleSelection: [],
  614. isShowExamineDialog: false,
  615. examineForm: {
  616. status: '',
  617. remark: ''
  618. },
  619. categoryList: [],
  620. setDisabled: {
  621. disabledDate: time => {
  622. if (this.choiceDate) {
  623. const res = 13 * 24 * 3600 * 1000
  624. const minTime = this.choiceDate - res
  625. const maxTime = this.choiceDate + res
  626. return time.getTime() < minTime || time.getTime() > maxTime
  627. }
  628. },
  629. onPick: ({ maxDate, minDate }) => {
  630. this.choiceDate = minDate.getTime()
  631. if (maxDate) this.choiceDate = ''
  632. }
  633. }
  634. }
  635. },
  636. computed: {
  637. exParams() {
  638. return {
  639. examineStatus: this.screenForm.status,
  640. orderNo: this.screenForm.orderNum,
  641. customerName: this.screenForm.jxsName,
  642. customerNumber: this.screenForm.jxsNum,
  643. materialName: this.screenForm.chName,
  644. materialNumber: this.screenForm.chNum,
  645. specification: this.screenForm.model,
  646. correspondName: this.screenForm.warehouse,
  647. startTime: this.screenForm.date ? this.screenForm.date[0] : '',
  648. endTime: this.screenForm.date ? this.screenForm.date[1] : '',
  649. syncStatus: this.screenForm.syncStatus,
  650. categoryId: this.screenForm.categoryId,
  651. invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
  652. invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
  653. approvalStartTime: this.screenForm.approval ? this.screenForm.approval[0] : '',
  654. approvalEndTime: this.screenForm.approval ? this.screenForm.approval[1] : '',
  655. printStartTime: this.screenForm.printTime ? this.screenForm.printTime[0] : '',
  656. printEndtTime: this.screenForm.printTime ? this.screenForm.printTime[1] : '',
  657. mainOrderId: this.screenForm.mainOrderId,
  658. printTimeDesc: this.screenForm.printDesc,
  659. id: this.screenForm.id
  660. }
  661. }
  662. },
  663. beforeCreate() {
  664. that = this
  665. },
  666. created() {
  667. this.getList()
  668. this.getCategoryList()
  669. },
  670. methods: {
  671. // 列表请求函数
  672. // getList: levelList,
  673. // 列表导出函数
  674. // exportList: exportLevelList,
  675. // 表格列解析渲染数据更改
  676. columnParsing(item, defaultData) {
  677. return defaultData
  678. },
  679. // 监听勾选变化
  680. selectionChange(data) {
  681. this.recordSelected = data
  682. },
  683. operation() {
  684. return (h, { row, index, column }) => {
  685. return (
  686. <div class="operation-btns">
  687. <el-button size="mini" type="text" onClick={async () => {}}>
  688. 查看
  689. </el-button>
  690. </div>
  691. )
  692. }
  693. },
  694. // 查询列表
  695. getList() {
  696. this.listLoading = true
  697. const params = {
  698. pageNum: this.currentPage,
  699. pageSize: this.pageSize,
  700. examineStatus: this.screenForm.status,
  701. orderNo: this.screenForm.orderNum,
  702. customerName: this.screenForm.jxsName,
  703. customerNumber: this.screenForm.jxsNum,
  704. materialName: this.screenForm.chName,
  705. materialNumber: this.screenForm.chNum,
  706. specification: this.screenForm.model,
  707. correspondName: this.screenForm.warehouse,
  708. syncStatus: this.screenForm.syncStatus,
  709. categoryId: this.screenForm.categoryId,
  710. invoiceStartTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[0] : '',
  711. invoiceEndTime: this.screenForm.invoiceDate ? this.screenForm.invoiceDate[1] : '',
  712. startTime: this.screenForm.date ? this.screenForm.date[0] : '',
  713. endTime: this.screenForm.date ? this.screenForm.date[1] : '',
  714. approvalStartTime: this.screenForm.approval ? this.screenForm.approval[0] : '',
  715. approvalEndTime: this.screenForm.approval ? this.screenForm.approval[1] : '',
  716. printStartTime: this.screenForm.printTime ? this.screenForm.printTime[0] : '',
  717. printEndtTime: this.screenForm.printTime ? this.screenForm.printTime[1] : '',
  718. printTimeDesc: this.screenForm.printDesc,
  719. mainOrderId: this.screenForm.mainOrderId,
  720. id: this.screenForm.id
  721. }
  722. getList(params).then(res => {
  723. res.data.records.forEach(item => {
  724. item.sums1 = ['refundableQty']
  725. item.sums2 = ['price', 'payAmount']
  726. })
  727. this.dataList = res.data.records
  728. this.listTotal = res.data.total
  729. this.listLoading = false
  730. })
  731. },
  732. // updateReceipt() {
  733. // if (!this.value1) {
  734. // this.$errorMsg('请选择时间')
  735. // return
  736. // }
  737. // updateReceipt({
  738. // startTime: this.value1[0],
  739. // endTime: this.value1[1]
  740. // }).then(res => {
  741. // this.getList()
  742. // this.$successMsg('已更新')
  743. // this.value1 = ''
  744. // })
  745. // },
  746. // 提交筛选表单
  747. submitScreenForm() {
  748. this.currentPage = 1
  749. this.getList()
  750. },
  751. // 重置筛选表单
  752. resetScreenForm() {
  753. this.$refs.screenForm.resetFields()
  754. this.currentPage = 1
  755. this.getList()
  756. },
  757. // 更改每页数量
  758. handleSizeChange(val) {
  759. this.pageSize = val
  760. this.currentPage = 1
  761. this.getList()
  762. },
  763. // 更改当前页
  764. handleCurrentChange(val) {
  765. this.currentPage = val
  766. this.getList()
  767. },
  768. // 判断是否可以审批
  769. async examineJudge(item) {
  770. // 获取页面模版
  771. const result = await new Promise((resolve, reject) => {
  772. examineJudge({ id: item.id })
  773. .then(res => {
  774. resolve(res.code == 200)
  775. })
  776. .catch(res => {
  777. resolve(0)
  778. })
  779. })
  780. return result
  781. },
  782. // 进入表单
  783. toReturnForm(item) {
  784. this.queryItem = item
  785. this.isShowReturnForm = true
  786. },
  787. // 进入详情
  788. toDetail(item) {
  789. this.queryItem = item
  790. this.isShowDetail = true
  791. },
  792. // 进入审批
  793. async toExamine(item) {
  794. const canExamine = await this.examineJudge(item)
  795. if (!canExamine) {
  796. return false
  797. }
  798. this.queryItem = item
  799. this.isShowExamine = true
  800. },
  801. // 获取存货类别列表
  802. getCategoryList() {
  803. getCategoryList({
  804. pageNum: 1,
  805. pageSize: -1
  806. }).then(res => {
  807. this.categoryList = res.data.records
  808. console.log(this.categoryList)
  809. })
  810. },
  811. backList() {
  812. this.queryItem = {}
  813. this.isShowDetail = false
  814. this.isShowExamine = false
  815. this.isShowReturnForm = false
  816. },
  817. handleSelectionChange(val) {
  818. this.multipleSelection = val
  819. },
  820. // 打开 批量审批
  821. batchExamine() {
  822. this.isShowExamineDialog = true
  823. },
  824. // 提交 批量审批
  825. submitExamineForm() {
  826. const ids = this.multipleSelection.map(item => {
  827. return item.id
  828. })
  829. examineBatch({
  830. ids: ids.join(','),
  831. examineStatus: this.examineForm.status,
  832. approvalRemark: this.examineForm.remark
  833. }).then(res => {
  834. this.isShowExamineDialog = false
  835. this.getList()
  836. this.$successMsg('修改成功')
  837. })
  838. },
  839. // 弃审
  840. handleAbandon(id) {
  841. abandonData({ id }).then(res => {
  842. this.$successMsg()
  843. this.getList()
  844. })
  845. }
  846. }
  847. }
  848. </script>
  849. <style lang="scss" scoped></style>