engin_list.vue 28 KB

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