commerce_list.vue 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. <template>
  2. <div class="app-container">
  3. <div v-show="!isShowDetail && !isShowForm && !isShowExamine && !isShowReturn">
  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 size="mini" v-model="screenForm.status" @change="getList()">
  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="100px" 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="请输入工程订单号"></el-input>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :xs="24" :sm="12" :lg="6">
  28. <el-form-item label="工程编号" prop="enginNum">
  29. <el-input v-model="screenForm.enginNum" placeholder="请输入工程编号"></el-input>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :xs="24" :sm="12" :lg="6">
  33. <el-form-item label="工程登录编号" prop="loginNum">
  34. <el-input v-model="screenForm.loginNum" placeholder="请输入工程登录编号"></el-input>
  35. </el-form-item>
  36. </el-col>
  37. <el-col :xs="24" :sm="12" :lg="6">
  38. <el-form-item label="项目名称" prop="enginName">
  39. <el-input v-model="screenForm.enginName" placeholder="请输入项目名称"></el-input>
  40. </el-form-item>
  41. </el-col>
  42. <el-col :xs="24" :sm="12" :lg="6">
  43. <el-form-item label="单据日期" prop="date">
  44. <el-date-picker
  45. v-model="screenForm.date"
  46. type="datetimerange"
  47. :default-time="['00:00:00','23:59:59']"
  48. range-separator="至"
  49. style="width: 100%"
  50. value-format="yyyy-MM-dd HH:mm:ss"
  51. start-placeholder="开始日期"
  52. end-placeholder="结束日期"
  53. >
  54. </el-date-picker>
  55. </el-form-item>
  56. </el-col>
  57. <el-col :xs="24" :sm="12" :lg="6">
  58. <el-form-item label="经销商" prop="dealer">
  59. <el-input v-model="screenForm.dealer" placeholder="请输入经销商"></el-input>
  60. </el-form-item>
  61. </el-col>
  62. <el-col :xs="24" :sm="12" :lg="6">
  63. <el-form-item label="制表人" prop="createMan">
  64. <el-input v-model="screenForm.createMan" placeholder="请输入制表人"></el-input>
  65. </el-form-item>
  66. </el-col>
  67. <el-col :xs="24" :sm="12" :lg="6">
  68. <el-form-item label="审核人" prop="examineMan">
  69. <el-input v-model="screenForm.examineMan" placeholder="请输入审核人"></el-input>
  70. </el-form-item>
  71. </el-col>
  72. <el-col :xs="24" :sm="12" :lg="6">
  73. <el-form-item label="表头业务员" prop="salesMan">
  74. <el-select
  75. v-model="screenForm.salesMan"
  76. placeholder="选择表头业务员"
  77. clearable
  78. filterable
  79. style="width: 100%"
  80. >
  81. <el-option
  82. v-for="item in salesmanList"
  83. :key="item.adminUserId"
  84. :label="item.nickName"
  85. :value="item.adminUserId"
  86. >
  87. </el-option>
  88. </el-select>
  89. </el-form-item>
  90. </el-col>
  91. <el-col :xs="24" :sm="12" :lg="6">
  92. <el-form-item label="规格型号" prop="model">
  93. <el-input v-model="screenForm.model" placeholder="请输入规格型号"></el-input>
  94. </el-form-item>
  95. </el-col>
  96. <el-col :xs="24" :sm="12" :lg="6">
  97. <el-form-item label="是否直调" prop="isDirectTransfer">
  98. <el-select v-model="screenForm.isDirectTransfer" placeholder="选择是否直" style="width: 100%">
  99. <el-option :value="null" label="默认"></el-option>
  100. <el-option v-for="item in transfer" :key="item.value" :label="item.label" :value="item.value">
  101. </el-option>
  102. </el-select>
  103. </el-form-item>
  104. </el-col>
  105. <el-col :xs="24" :sm="12" :lg="6">
  106. <el-form-item label="钱包" prop="customerWalletId">
  107. <el-select
  108. v-model="screenForm.customerWalletId"
  109. placeholder="选择钱包"
  110. clearable
  111. filterable
  112. style="width: 100%"
  113. >
  114. <el-option v-for="item in NoRebateWalletList" :key="item.id" :label="item.name" :value="item.id">
  115. </el-option>
  116. </el-select>
  117. </el-form-item>
  118. </el-col>
  119. <el-col :xs="24" :sm="12" :lg="6">
  120. <el-form-item label="销售类型" prop="saleTypeId">
  121. <el-select
  122. v-model="screenForm.saleTypeId"
  123. placeholder="选择销售类型"
  124. clearable
  125. filterable
  126. style="width: 100%"
  127. >
  128. <el-option v-for="item in typeList" :key="item.id" :label="item.saleName" :value="item.id">
  129. </el-option>
  130. </el-select>
  131. </el-form-item>
  132. </el-col>
  133. </el-row>
  134. </el-form>
  135. </template>
  136. </Collapse>
  137. </div>
  138. <div class="mymain-container">
  139. <div class="btn-group clearfix">
  140. <div class="fl">
  141. <el-button
  142. size="mini"
  143. type="primary"
  144. icon="el-icon-plus"
  145. @click="toForm()"
  146. v-if="$checkBtnRole('add', $route.meta.roles)"
  147. >新增</el-button
  148. >
  149. <el-button
  150. size="mini"
  151. type="danger"
  152. icon="el-icon-minus"
  153. :disabled="multipleSelection.length < 1"
  154. @click="batchDelete()"
  155. v-if="$checkBtnRole('del', $route.meta.roles)"
  156. >批量删除</el-button
  157. >
  158. </div>
  159. <div class="fr">
  160. <ExportButton :exUrl="'engin-order/export'" :exParams="exParams" />
  161. </div>
  162. </div>
  163. <div class="table">
  164. <el-table
  165. v-loading="listLoading"
  166. :data="dataList"
  167. element-loading-text="Loading"
  168. border
  169. fit
  170. highlight-current-row
  171. stripe
  172. @selection-change="handleSelectionChange"
  173. show-summary
  174. :summary-method="$getSummaries"
  175. >
  176. <el-table-column align="center" type="selection" width="55"></el-table-column>
  177. <el-table-column align="left" label="审核状态" prop="examineStatus" min-width="100" show-overflow-tooltip>
  178. <template slot-scope="scope">
  179. {{ scope.row.examineStatus | statusFilter }}
  180. </template>
  181. </el-table-column>
  182. <el-table-column align="left" label="工程订单号" prop="enginOrderNo" min-width="140" show-overflow-tooltip>
  183. <template slot-scope="scope">
  184. <CopyButton :copyText="scope.row.enginOrderNo" />
  185. <span>{{ scope.row.enginOrderNo }}</span>
  186. </template>
  187. </el-table-column>
  188. <el-table-column align="left" label="订单日期" prop="orderDate" min-width="120" show-overflow-tooltip>
  189. <template slot-scope="scope">
  190. <div>
  191. <span>{{ scope.row.orderDate | dateToDayFilter }}</span>
  192. <el-button
  193. type="text"
  194. icon="el-icon-edit"
  195. style="padding: 0; margin-left: 6px"
  196. @click="editDate(scope.row)"
  197. v-if="$checkBtnRole('date', $route.meta.roles) && !isCustomer && scope.row.examineStatus !== 'SAVE'"
  198. ></el-button>
  199. </div>
  200. </template>
  201. </el-table-column>
  202. <el-table-column
  203. align="left"
  204. label="工程编号"
  205. prop="refProjectNo"
  206. min-width="160"
  207. show-overflow-tooltip
  208. ></el-table-column>
  209. <el-table-column
  210. align="left"
  211. label="工程登录编号"
  212. prop="refEnginRecordNo"
  213. min-width="200"
  214. show-overflow-tooltip
  215. >
  216. <template slot-scope="scope">
  217. <CopyButton :copyText="scope.row.refEnginRecordNo" />
  218. <span>{{ scope.row.refEnginRecordNo }}</span>
  219. </template>
  220. </el-table-column>
  221. <el-table-column
  222. align="left"
  223. label="仓库"
  224. prop="correspondName"
  225. min-width="160"
  226. show-overflow-tooltip
  227. ></el-table-column>
  228. <el-table-column align="left" label="订单类型" prop="enginOrderType" min-width="100" show-overflow-tooltip>
  229. <template slot-scope="scope">
  230. {{ scope.row.enginOrderType | typeFilter }}
  231. </template>
  232. </el-table-column>
  233. <el-table-column align="left" label="经销商名称" prop="customerName" min-width="250" show-overflow-tooltip>
  234. <template slot-scope="scope">
  235. <CopyButton :copyText="scope.row.customerName" />
  236. <span>{{ scope.row.customerName }}</span>
  237. </template>
  238. </el-table-column>
  239. <el-table-column
  240. align="left"
  241. label="使用单位"
  242. prop="refUseUnit"
  243. min-width="160"
  244. show-overflow-tooltip
  245. ></el-table-column>
  246. <el-table-column
  247. align="left"
  248. label="项目名称"
  249. prop="refProjectName"
  250. min-width="160"
  251. show-overflow-tooltip
  252. ></el-table-column>
  253. <!-- <el-table-column align="left" label="销售类型" prop="saleTypeName" min-width="120" show-overflow-tooltip></el-table-column>-->
  254. <el-table-column align="left" label="物料编码" prop="materialNumber" min-width="120" show-overflow-tooltip>
  255. <template slot-scope="scope">
  256. <CopyButton :copyText="scope.row.materialNumber" />
  257. <span>{{ scope.row.materialNumber }}</span>
  258. </template>
  259. </el-table-column>
  260. <el-table-column
  261. align="left"
  262. label="产品编码"
  263. prop="materialOldNumber"
  264. min-width="140"
  265. show-overflow-tooltip
  266. >
  267. <template slot-scope="scope">
  268. <CopyButton :copyText="scope.row.materialOldNumber" />
  269. <span>{{ scope.row.materialOldNumber }}</span>
  270. </template>
  271. </el-table-column>
  272. <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
  273. <template slot-scope="scope">
  274. <CopyButton :copyText="scope.row.materialName" />
  275. <span>{{ scope.row.materialName }}</span>
  276. </template>
  277. </el-table-column>
  278. <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip>
  279. <template slot-scope="scope">
  280. <CopyButton :copyText="scope.row.specification" />
  281. <span>{{ scope.row.specification }}</span>
  282. </template>
  283. </el-table-column>
  284. <el-table-column
  285. align="left"
  286. label="单位"
  287. prop="unit"
  288. min-width="100"
  289. show-overflow-tooltip
  290. ></el-table-column>
  291. <el-table-column
  292. align="right"
  293. label="总数量"
  294. prop="qty"
  295. min-width="100"
  296. sortable
  297. show-overflow-tooltip
  298. ></el-table-column>
  299. <el-table-column
  300. align="left"
  301. label="是否直调"
  302. prop="isDirectTransfer"
  303. min-width="100"
  304. show-overflow-tooltip
  305. >
  306. <template slot-scope="scope">
  307. {{ scope.row.isDirectTransfer ? '是' : '否' }}
  308. </template>
  309. </el-table-column>
  310. <el-table-column
  311. align="right"
  312. label="直调数量"
  313. prop="directTransferQty"
  314. min-width="110"
  315. sortable
  316. show-overflow-tooltip
  317. ></el-table-column>
  318. <el-table-column
  319. align="right"
  320. label="出库数量"
  321. prop="hasSendQty"
  322. min-width="110"
  323. sortable
  324. show-overflow-tooltip
  325. ></el-table-column>
  326. <el-table-column align="right" label="单价" prop="price" min-width="100" sortable show-overflow-tooltip>
  327. <template slot-scope="scope">
  328. {{ scope.row.price | numToFixed }}
  329. </template>
  330. </el-table-column>
  331. <el-table-column
  332. align="right"
  333. label="实付金额"
  334. prop="payAmount"
  335. min-width="110"
  336. sortable
  337. show-overflow-tooltip
  338. >
  339. <template slot-scope="scope">
  340. {{ scope.row.payAmount | numToFixed }}
  341. </template>
  342. </el-table-column>
  343. <el-table-column
  344. align="left"
  345. label="返利钱包"
  346. prop="customerWalletName2"
  347. min-width="100"
  348. show-overflow-tooltip
  349. ></el-table-column>
  350. <el-table-column
  351. align="right"
  352. label="使用返利金额"
  353. prop="rebateAmount"
  354. min-width="120"
  355. show-overflow-tooltip
  356. >
  357. <template slot-scope="scope">
  358. <div v-if="scope.row.examineStatus === 'OK'">
  359. {{ scope.row.payRebateAmount | numToFixed }}
  360. </div>
  361. <div v-else>{{ scope.row.rebateAmount | numToFixed }}</div>
  362. </template>
  363. </el-table-column>
  364. <el-table-column
  365. align="right"
  366. label="格力折扣"
  367. prop="discAmount"
  368. min-width="110"
  369. sortable
  370. show-overflow-tooltip
  371. >
  372. <template slot-scope="scope">
  373. {{ scope.row.discAmount | numToFixed }}
  374. </template>
  375. </el-table-column>
  376. <el-table-column
  377. align="left"
  378. label="备注"
  379. prop="remark"
  380. min-width="160"
  381. show-overflow-tooltip
  382. ></el-table-column>
  383. <el-table-column
  384. align="left"
  385. label="表头业务员"
  386. prop="serviceName"
  387. min-width="100"
  388. show-overflow-tooltip
  389. ></el-table-column>
  390. <el-table-column
  391. align="left"
  392. label="表体业务员"
  393. prop="itemServiceName"
  394. min-width="100"
  395. show-overflow-tooltip
  396. ></el-table-column>
  397. <el-table-column
  398. align="left"
  399. label="制表人"
  400. prop="createName"
  401. min-width="100"
  402. show-overflow-tooltip
  403. ></el-table-column>
  404. <el-table-column
  405. align="left"
  406. label="制表日期"
  407. prop="createTime"
  408. min-width="160"
  409. show-overflow-tooltip
  410. ></el-table-column>
  411. <el-table-column
  412. align="left"
  413. label="审核人"
  414. prop="confirmName"
  415. min-width="100"
  416. show-overflow-tooltip
  417. ></el-table-column>
  418. <el-table-column
  419. align="left"
  420. label="审核日期"
  421. prop="confirmTime"
  422. min-width="160"
  423. show-overflow-tooltip
  424. ></el-table-column>
  425. <el-table-column align="center" label="操作" width="220" fixed="right">
  426. <template slot-scope="scope">
  427. <el-popconfirm
  428. style="margin-right: 10px"
  429. title="确定申请吗?"
  430. @onConfirm="handleSubmit(scope.row.parentId, scope.row)"
  431. v-if="$checkBtnRole('apply', $route.meta.roles) && scope.row.examineStatus === 'SAVE'"
  432. >
  433. <el-button slot="reference" type="text">申请</el-button>
  434. </el-popconfirm>
  435. <el-popconfirm
  436. style="margin-right: 10px"
  437. title="确定撤回吗?"
  438. @onConfirm="handleWithdraw(scope.row.parentId, scope.row)"
  439. v-if="$checkBtnRole('apply', $route.meta.roles) && scope.row.examineStatus === 'WAIT'"
  440. >
  441. <el-button slot="reference" type="text">撤回</el-button>
  442. </el-popconfirm>
  443. <el-popconfirm
  444. style="margin-right: 10px"
  445. title="确定弃审吗?"
  446. @onConfirm="handleAbandon(scope.row.parentId, scope.row)"
  447. v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'OK'"
  448. >
  449. <el-button slot="reference" type="text">弃审</el-button>
  450. </el-popconfirm>
  451. <el-button
  452. type="text"
  453. @click="toForm(scope.row)"
  454. v-if="$checkBtnRole('edit', $route.meta.roles) && scope.row.examineStatus === 'SAVE'"
  455. >
  456. 编辑
  457. </el-button>
  458. <el-button
  459. type="text"
  460. @click="toExamine(scope.row)"
  461. v-if="$checkBtnRole('examine', $route.meta.roles) && scope.row.examineStatus === 'WAIT'"
  462. >
  463. 审批
  464. </el-button>
  465. <el-button type="text" @click="toReturn(scope.row)" v-if="$checkBtnRole('examine', $route.meta.roles)">
  466. 退订
  467. </el-button>
  468. <el-button type="text" @click="toDetail(scope.row)"> 详情 </el-button>
  469. <el-popconfirm
  470. style="margin-left: 10px"
  471. title="确定删除吗?"
  472. @onConfirm="handleDelete(scope.row.parentId, scope.row)"
  473. v-if="$checkBtnRole('del', $route.meta.roles) && scope.row.examineStatus !== 'OK'"
  474. >
  475. <el-button slot="reference" type="text" style="color: #f56c6c">删除</el-button>
  476. </el-popconfirm>
  477. </template>
  478. </el-table-column>
  479. </el-table>
  480. </div>
  481. </div>
  482. <div class="pagination clearfix">
  483. <div class="fr">
  484. <el-pagination
  485. @size-change="handleSizeChange"
  486. @current-change="handleCurrentChange"
  487. :current-page="currentPage"
  488. :page-sizes="[10, 20, 30, 50]"
  489. :page-size="10"
  490. layout="total, sizes, prev, pager, next, jumper"
  491. :total="listTotal"
  492. >
  493. </el-pagination>
  494. </div>
  495. </div>
  496. </div>
  497. <EditDateDialog :isShow.sync="isShowEditDateDialog" :dateForm.sync="dateForm" />
  498. <CommerceDetail :listItem="queryItem" v-if="isShowDetail" @backListFormDetail="backList" />
  499. <CommerceForm :listItem="queryItem" v-if="isShowForm" @backListFormDetail="backList" />
  500. <CommerceExamine :listItem="queryItem" v-if="isShowExamine" @backListFormDetail="backList" />
  501. <CommerceReturn :listItem="queryItem" v-if="isShowReturn" @backListFormDetail="backList" />
  502. </div>
  503. </template>
  504. <script>
  505. import { getOrderList, applyCom, withdrawCom, deleteCom, editDateCom, abandonCom } from '@/api/supply/engin'
  506. import { getSalesmanList, getTypeList } from '@/api/common'
  507. import CommerceDetail from '@/views/supply/engin/components/commerce_detail'
  508. import CommerceForm from '@/views/supply/engin/components/commerce_form'
  509. import CommerceExamine from '@/views/supply/engin/components/commerce_examine'
  510. import CommerceReturn from '@/views/supply/engin/components/commerce_return'
  511. import EditDateDialog from '@/components/Common/edit-date-dialog'
  512. import { getNoRebateWalletList } from '@/api/policy_list'
  513. let that
  514. export default {
  515. components: {
  516. CommerceDetail,
  517. CommerceForm,
  518. CommerceExamine,
  519. CommerceReturn,
  520. EditDateDialog
  521. },
  522. filters: {
  523. statusFilter(val) {
  524. let obj = that.statusList.find(o => o.value == val)
  525. return obj ? obj.label : ''
  526. },
  527. typeFilter(val) {
  528. const MAP = {
  529. TRADE: '商用',
  530. HOME: '家用'
  531. }
  532. return MAP[val]
  533. }
  534. },
  535. data() {
  536. return {
  537. currentPage: 1, // 当前页码
  538. pageSize: 10, // 每页数量
  539. listTotal: 0, // 列表总数
  540. dataList: null, // 列表数据
  541. listLoading: false, // 列表加载loading
  542. screenForm: {
  543. // 筛选表单数据
  544. status: '',
  545. orderNum: '',
  546. enginNum: '',
  547. loginNum: '',
  548. enginName: '',
  549. date: '',
  550. saleType: '',
  551. createMan: '',
  552. examineMan: '',
  553. salesMan: '',
  554. dealer: '',
  555. model: '',
  556. isDirectTransfer: null,
  557. saleTypeId: '',
  558. customerWalletId: ''
  559. },
  560. statusList: [
  561. { label: '已保存', value: 'SAVE' },
  562. { label: '待审核', value: 'WAIT' },
  563. { label: '审核通过', value: 'OK' },
  564. // // { label: '审核驳回', value: 'FAIL' },,
  565. { label: '已关闭', value: 'CLOSE' }
  566. ],
  567. salesmanList: [],
  568. salesTypeList: [],
  569. isCollapse: true,
  570. multipleSelection: [],
  571. transfer: [
  572. { label: '是', value: true },
  573. { label: '否', value: false }
  574. ],
  575. queryItem: {},
  576. isShowDetail: false,
  577. isShowForm: false,
  578. isShowExamine: false,
  579. isShowReturn: false,
  580. typeList: [],
  581. NoRebateWalletList: [],
  582. editId: null,
  583. isShowEditDateDialog: false,
  584. dateForm: {
  585. date: ''
  586. }
  587. }
  588. },
  589. computed: {
  590. exParams() {
  591. let ids = this.multipleSelection.map(item => {
  592. return item.enginOrderNo
  593. })
  594. return {
  595. examineStatus: this.screenForm.status,
  596. enginOrderNo: ids && ids.length ? ids.join(',') : this.screenForm.orderNum,
  597. refProjectNo: this.screenForm.enginNum,
  598. refEnginRecordNo: this.screenForm.loginNum,
  599. refProjectName: this.screenForm.enginName,
  600. startCreateTime: this.screenForm.date ? this.screenForm.date[0] : '',
  601. endCreateTime: this.screenForm.date ? this.screenForm.date[1] : '',
  602. saleTypeId: this.screenForm.saleType,
  603. createName: this.screenForm.createMan,
  604. confirmName: this.screenForm.examineMan,
  605. serviceId: this.screenForm.salesMan,
  606. customerKeyWord: this.screenForm.dealer,
  607. specification: this.screenForm.model,
  608. isDirectTransfer: this.screenForm.isDirectTransfer,
  609. enginOrderType: 'TRADE' // TRADE=商用 HOME=家用
  610. }
  611. },
  612. isCustomer() {
  613. return this.$store.getters.customerId && this.$store.getters.customerNumber
  614. }
  615. },
  616. beforeCreate() {
  617. that = this
  618. },
  619. created() {
  620. this.getSalesTypeList()
  621. this.getSalesmanList()
  622. this.getList()
  623. },
  624. methods: {
  625. // 获取业务员列表
  626. getSalesmanList() {
  627. getSalesmanList({
  628. pageNum: 1,
  629. pageSize: -1,
  630. isCustomer: 0,
  631. status: true
  632. }).then(res => {
  633. this.salesmanList = res.data.records
  634. })
  635. getNoRebateWalletList({
  636. walletName: ''
  637. }).then(res => {
  638. console.log(res)
  639. this.NoRebateWalletList = res.data
  640. console.log(this.NoRebateWalletList)
  641. })
  642. getTypeList({ pageNum: 1, pageSize: -1 }).then(res => {
  643. this.typeList = res.data.records
  644. console.log(this.typeList)
  645. })
  646. },
  647. // 获取销售类型列表
  648. getSalesTypeList() {
  649. getTypeList({
  650. pageNum: 1,
  651. pageSize: -1
  652. }).then(res => {
  653. this.salesTypeList = res.data.records
  654. })
  655. },
  656. // 查询列表
  657. getList() {
  658. this.listLoading = true
  659. let params = {
  660. pageNum: this.currentPage,
  661. pageSize: this.pageSize,
  662. examineStatus: this.screenForm.status,
  663. enginOrderNo: this.screenForm.orderNum,
  664. refProjectNo: this.screenForm.enginNum,
  665. refEnginRecordNo: this.screenForm.loginNum,
  666. refProjectName: this.screenForm.enginName,
  667. startCreateTime: this.screenForm.date ? this.screenForm.date[0] : '',
  668. endCreateTime: this.screenForm.date ? this.screenForm.date[1] : '',
  669. saleTypeId: this.screenForm.saleType,
  670. createName: this.screenForm.createMan,
  671. confirmName: this.screenForm.examineMan,
  672. customerWalletId: this.screenForm.customerWalletId,
  673. serviceId: this.screenForm.salesMan,
  674. customerKeyword: this.screenForm.dealer,
  675. isDirectTransfer: this.screenForm.isDirectTransfer,
  676. specification: this.screenForm.model,
  677. enginOrderType: 'TRADE' // TRADE=商用 HOME=家用
  678. }
  679. getOrderList(params).then(res => {
  680. res.data.records.forEach(item => {
  681. item.sums1 = ['qty', 'directTransferQty', 'hasSendQty']
  682. item.sums2 = ['price', 'payAmount', 'discAmount']
  683. })
  684. this.dataList = res.data.records
  685. this.listTotal = res.data.total
  686. this.listLoading = false
  687. })
  688. },
  689. // 提交筛选表单
  690. submitScreenForm() {
  691. this.currentPage = 1
  692. this.getList()
  693. },
  694. // 重置筛选表单
  695. resetScreenForm() {
  696. this.$nextTick(()=>{
  697. this.$refs.screenForm.resetFields()
  698. })
  699. this.currentPage = 1
  700. this.getList()
  701. },
  702. // 更改每页数量
  703. handleSizeChange(val) {
  704. this.pageSize = val
  705. this.currentPage = 1
  706. this.getList()
  707. },
  708. // 更改当前页
  709. handleCurrentChange(val) {
  710. this.currentPage = val
  711. this.getList()
  712. },
  713. // 进入表单
  714. toForm(item) {
  715. this.queryItem = item
  716. this.isShowForm = true
  717. },
  718. // 进入审批
  719. toExamine(item) {
  720. this.queryItem = item
  721. this.isShowExamine = true
  722. },
  723. // 进入详情
  724. toDetail(item) {
  725. this.queryItem = item
  726. this.isShowDetail = true
  727. },
  728. // 进入退订
  729. toReturn(item) {
  730. this.queryItem = item
  731. this.isShowReturn = true
  732. },
  733. backList() {
  734. this.queryItem = {}
  735. this.isShowDetail = false
  736. this.isShowForm = false
  737. this.isShowExamine = false
  738. this.isShowReturn = false
  739. },
  740. // 申请
  741. handleSubmit(id, row) {
  742. applyCom({ id, refEnginRecordNo: row.refEnginRecordNo }).then(res => {
  743. this.$successMsg()
  744. this.getList()
  745. })
  746. },
  747. // 撤回
  748. handleWithdraw(id, row) {
  749. withdrawCom({ id, refEnginRecordNo: row.refEnginRecordNo }).then(res => {
  750. this.$successMsg()
  751. this.getList()
  752. })
  753. },
  754. // 弃审
  755. handleAbandon(id, row) {
  756. abandonCom({ id, refEnginRecordNo: row.refEnginRecordNo }).then(res => {
  757. this.$successMsg()
  758. this.getList()
  759. })
  760. },
  761. // 删除
  762. handleDelete(id) {
  763. deleteCom({ ids: id }).then(res => {
  764. this.$successMsg()
  765. this.getList()
  766. })
  767. },
  768. // 批量删除
  769. batchDelete() {
  770. this.$confirm('此操作将永久删除, 是否继续?', '提示', {
  771. confirmButtonText: '确定',
  772. cancelButtonText: '取消',
  773. type: 'warning'
  774. })
  775. .then(() => {
  776. let ids = this.multipleSelection.map(item => {
  777. return item.parentId
  778. })
  779. deleteCom({ ids: ids.join(',') }).then(res => {
  780. this.$successMsg()
  781. this.getList()
  782. })
  783. })
  784. .catch(() => {})
  785. },
  786. handleSelectionChange(val) {
  787. this.multipleSelection = val
  788. },
  789. // 打开 修改订单日期
  790. editDate(item) {
  791. this.editId = item.parentId
  792. this.dateForm.date = item.orderDate.slice(0, 10)
  793. this.isShowEditDateDialog = true
  794. },
  795. // 提交 修改订单日期
  796. submitDateForm() {
  797. editDateCom({
  798. refEnginRecordNo: this.screenForm.loginNum,
  799. enginOrderId: this.editId,
  800. orderDate: this.dateForm.date + ' 00:00:00'
  801. }).then(res => {
  802. this.isShowEditDateDialog = false
  803. this.getList()
  804. this.$successMsg('修改成功')
  805. })
  806. }
  807. }
  808. }
  809. </script>
  810. <style lang="scss" scoped></style>