engin_list.vue 25 KB

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