myOrderList.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652
  1. <template>
  2. <div class="app-container">
  3. <div class="title-container">
  4. <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
  5. </div>
  6. <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="selectMyOrderPage">
  7. <template slot="left">
  8. <PermissionButton menu-code="_views_assets_add_order" class-name="filter-item" type="danger"
  9. icon="el-icon-circle-plus-outline" :page-jump="true" round style="float: left"
  10. :page-query="{ 'couldEdit': true, 'saveOrderBtn': '保存订单', 'showBtn': true, 'couldBack': true }" />
  11. <el-input style="margin-left: 20px;width: 300px;float: left;" class="filter-item"
  12. v-model="listQuery.keyWord" placeholder="项目编号/报告号/项目名称/业务来源" clearable>
  13. </el-input>
  14. <el-select v-model="listQuery.principalId" filterable placeholder="项目负责人(可搜索)"
  15. style=" width: 200px;margin-left: 10px;float: left;">
  16. <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id"></el-option>
  17. </el-select>
  18. <el-select v-model="listQuery.delivery" filterable placeholder="送达状态"
  19. style=" width: 200px;margin-left: 10px;float: left;">
  20. <el-option v-for="(s, value) in deliverys" :label="s.label" :value="s.value"></el-option>
  21. </el-select>
  22. <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList"
  23. round>搜索
  24. </el-button>
  25. <el-button class="filter-item" style="float: left;" round type="success" @click="resetParams()">重置
  26. </el-button>
  27. </template>
  28. <parentTable ref="table" v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
  29. <el-table-column label="项目编号" align="center" width="150">
  30. <template slot-scope="{row}">
  31. <span>{{ row.orderId }}</span>
  32. </template>
  33. </el-table-column>
  34. <el-table-column label="分单类型" align="center" width="150">
  35. <template slot-scope="{row}">
  36. <span>{{ row.allotType }}</span>
  37. </template>
  38. </el-table-column>
  39. <el-table-column label="意见书号" align="center" width="250">
  40. <template slot-scope="{row}">
  41. <span>{{ row.statementNo }}</span>
  42. </template>
  43. </el-table-column>
  44. <el-table-column label="报告号" align="center" width="250">
  45. <template slot-scope="{row}">
  46. <span>{{ row.reportNo }}</span>
  47. </template>
  48. </el-table-column>
  49. <el-table-column label="项目名称" align="center" width="250">
  50. <template slot-scope="{row}">
  51. <span>{{ row.name }}</span>
  52. </template>
  53. </el-table-column>
  54. <el-table-column label="业务类型" align="center" width="150">
  55. <template slot-scope="{row}">
  56. <span>{{ row.assetsBusinessGener }}</span>
  57. </template>
  58. </el-table-column>
  59. <el-table-column label="客户名称" align="center" width="150">
  60. <template slot-scope="{row}">
  61. <span>{{ row.customerName }}</span>
  62. </template>
  63. </el-table-column>
  64. <el-table-column label="业务来源" align="center" width="150">
  65. <template slot-scope="{row}">
  66. <span>{{ row.customerSubName }}</span>
  67. </template>
  68. </el-table-column>
  69. <el-table-column label="委托人" align="center" width="150">
  70. <template slot-scope="{row}">
  71. <span>{{ row.bailor }}</span>
  72. </template>
  73. </el-table-column>
  74. <el-table-column label="委托人联系电话" align="center" width="150">
  75. <template slot-scope="{row}">
  76. <span>{{ row.bailorContactTel }}</span>
  77. </template>
  78. </el-table-column>
  79. <el-table-column label="当前节点" align="center" width="150">
  80. <template slot-scope="{row}">
  81. <span>{{ row.currentNodeName }}</span>
  82. </template>
  83. </el-table-column>
  84. <el-table-column label="当前节点负责人" align="center" width="150">
  85. <template slot-scope="{row}">
  86. <span>{{ row.handlerName }}</span>
  87. </template>
  88. </el-table-column>
  89. <el-table-column label="项目负责人" align="center" width="150">
  90. <template slot-scope="{row}">
  91. <span>{{ row.principalName }}</span>
  92. </template>
  93. </el-table-column>
  94. <el-table-column label="客户经理" align="center" width="150">
  95. <template slot-scope="{row}">
  96. <span>{{ row.clientManagerName }}</span>
  97. </template>
  98. </el-table-column>
  99. <el-table-column label="评估结论对应的评估值(万)" align="center" width="200">
  100. <template slot-scope="{row}">
  101. <span>{{ row.estimatedValue }}</span>
  102. </template>
  103. </el-table-column>
  104. <el-table-column label="订单应收款(元)" align="center" width="150">
  105. <template slot-scope="{row}">
  106. <span>{{ row.shouldAmount }}</span>
  107. </template>
  108. </el-table-column>
  109. <el-table-column label="订单实收款(元)" align="center" width="150">
  110. <template slot-scope="{row}">
  111. <span>{{ row.realAmount }}</span>
  112. </template>
  113. </el-table-column>
  114. <el-table-column label="产品应收款(元)" align="center" width="150">
  115. <template slot-scope="{row}">
  116. <span>{{ row.productionShouldAmount }}</span>
  117. </template>
  118. </el-table-column>
  119. <el-table-column label="标准收费(元)" align="center" width="150">
  120. <template slot-scope="{row}">
  121. <span>{{ row.standardAmount }}</span>
  122. </template>
  123. </el-table-column>
  124. <el-table-column label="折扣比例" align="center" width="150">
  125. <template slot-scope="{row}">
  126. <span>{{ row.discount }}</span>
  127. </template>
  128. </el-table-column>
  129. <el-table-column label="实际开票金额" align="center" width="150">
  130. <template slot-scope="{row}">
  131. <span>{{ row.invoiceRealAmount }}</span>
  132. </template>
  133. </el-table-column>
  134. <el-table-column label="送达状态" align="center" width="150">
  135. <template slot-scope="{row}">
  136. <el-tag v-if="row.reportDelivery" type='success'>已送达</el-tag>
  137. </template>
  138. </el-table-column>
  139. <el-table-column label="操作" align="center" :min-width="dynamicWidth" fixed="right">
  140. <template slot-scope="{row}">
  141. <div class="optionDiv" style="white-space: nowrap; display: inline-block">
  142. <el-button type="danger" size="mini" v-if="(!row.reportDelivery || row.reportDelivery == null) && row.reportRepertoryState">
  143. 标记送达
  144. </el-button>
  145. <el-button type="success" size="mini" @click="orderDetail(row)">
  146. 查看
  147. </el-button>
  148. <el-button type="primary" size="mini" @click="openShouldAmountDialog(row)">
  149. 订单应收款
  150. </el-button>
  151. <el-button v-if="row.reportNo !== null" type="success" size="mini" @click="openProShouldAmountDialog(row)">
  152. 产品应收款
  153. </el-button>
  154. <el-button v-if="row.currentNodeCode === 'REPORT_OUT_APPLY'" type="danger" size="mini" @click="openRepertoryOutWarehouse(row)">
  155. 申请提前出库
  156. </el-button>
  157. <!-- <el-button v-if="row.currentNodeCode === 'REPORT_OUT_APPLY'" type="text"
  158. @click="canceladdRepertoryOutWarehouse(row)">
  159. 撤销出库申请
  160. </el-button> -->
  161. </div>
  162. </template>
  163. </el-table-column>
  164. </parentTable>
  165. </y-page-list-layout>
  166. <el-dialog :visible.sync="shouldAmountDialog" width="35%" center top="35vh" custom-class="doWarehouseClass"
  167. @closed="cleanData">
  168. <el-form ref="fund" :model="fund" style="margin-left:40px">
  169. <el-row>
  170. <el-col :xs="24" :sm="12" :lg="24" :span="12">
  171. <el-form-item label="应收款金额(元):" prop="shouldAmount" label-width="160px"
  172. class="postInfo-container-item"
  173. :rules="{ required: true, message: '应收款金额不能为空', trigger: 'blur' }">
  174. <el-input-number :precision="2" :min="null" :value-on-clear="0"
  175. v-model.number="fund.shouldAmount" type="number" style="width:300px" class="filter-item" />
  176. </el-form-item>
  177. </el-col>
  178. </el-row>
  179. <el-row>
  180. <el-col :xs="24" :sm="12" :lg="24" :span="12">
  181. <el-form-item label="备注:" prop="remark" label-width="160px" class="postInfo-container-item">
  182. <el-input style="width:300px" type="textarea" v-model="fund.remark"></el-input>
  183. </el-form-item>
  184. </el-col>
  185. </el-row>
  186. </el-form>
  187. <span slot="footer" class="dialog-footer">
  188. <el-button @click="shouldAmountDialog = false">取 消</el-button>
  189. <el-button type="primary" @click="saveShouldAmount()">确 定</el-button>
  190. </span>
  191. </el-dialog>
  192. <el-dialog :visible.sync="proShouldAmountDialog" width="35%" center top="35vh" custom-class="doWarehouseClass"
  193. @closed="cleanData">
  194. <el-form ref="productionFundFrom" :model="productionFundFrom" style="margin-left:40px">
  195. <el-row>
  196. <el-col :xs="24" :sm="12" :lg="24" :span="12">
  197. <el-form-item label="产品应收款金额(元):" prop="productionShouldAmount" label-width="160px"
  198. class="postInfo-container-item"
  199. :rules="{ required: true, message: '应收款金额不能为空', trigger: 'blur' }">
  200. <el-input-number :precision="2" :min="null" :value-on-clear="0"
  201. v-model.number="productionFundFrom.productionShouldAmount" type="number" style="width:300px"
  202. class="filter-item" />
  203. </el-form-item>
  204. </el-col>
  205. </el-row>
  206. <el-row>
  207. <el-col :xs="24" :sm="12" :lg="24" :span="12">
  208. <el-form-item label="备注:" prop="remark" label-width="160px" class="postInfo-container-item">
  209. <el-input style="width:300px" type="textarea" v-model="productionFundFrom.remark"></el-input>
  210. </el-form-item>
  211. </el-col>
  212. </el-row>
  213. </el-form>
  214. <span slot="footer" class="dialog-footer">
  215. <el-button @click="proShouldAmountDialog = false">取 消</el-button>
  216. <el-button type="primary" @click="saveProShouldAmount()">确 定</el-button>
  217. </span>
  218. </el-dialog>
  219. <el-dialog :visible.sync="repertoryOutWarehouseVisible">
  220. <el-form ref="outWarehouse" :model="outWarehouse" style="margin-left:40px; margin-right: 200px;">
  221. <el-row>
  222. <el-col>
  223. <el-form-item label="出库原因:" prop="remark" label-width="160px" class="postInfo-container-item">
  224. <el-input type="textarea" placeholder="请输入申请提前出库原因" v-model="outWarehouse.remark"></el-input>
  225. </el-form-item>
  226. </el-col>
  227. </el-row>
  228. </el-form>
  229. <span slot="footer" class="dialog-footer">
  230. <el-button @click="repertoryOutWarehouseVisible = false">取 消</el-button>
  231. <el-button type="primary" @click="addRepertoryOutWarehouse()">确 定</el-button>
  232. </span>
  233. </el-dialog>
  234. </div>
  235. </template>
  236. <script>
  237. import YPageListLayout from '@/components/YPageListLayout'
  238. import Breadcrumb from '@/components/Breadcrumb'
  239. import PermissionButton from '@/components/PermissionButton/PermissionButton'
  240. import { getOperatorWidth } from '@/utils/tableUtil.js'
  241. export default {
  242. name: 'AssetsAllList',
  243. components: {
  244. Breadcrumb,
  245. YPageListLayout,
  246. PermissionButton
  247. },
  248. data() {
  249. return {
  250. dynamicWidth: 0,
  251. pageData: { records: [] },
  252. listLoading: false,
  253. listQuery: {
  254. page: 1,
  255. size: 10,
  256. current: 1,
  257. // 节点code
  258. nodeCode: null,
  259. // 客户经理id
  260. clientManagerId: this.$store.getters.userInfo.id,
  261. // 项目负责人id
  262. principalId: null,
  263. // 业务类型
  264. assetsBusinessGener: null,
  265. // 关键字
  266. keyWord: null,
  267. // 送达状态
  268. delivery: null
  269. },
  270. // 用户下拉列表
  271. allUsers: [],
  272. // 送达状态下拉列表
  273. deliverys: [
  274. {
  275. value: '1',
  276. label: '已送达'
  277. }, {
  278. value: '0',
  279. label: '未送达'
  280. },
  281. ],
  282. shouldAmountDialog: false,
  283. proShouldAmountDialog: false,
  284. fund: {
  285. id: null,
  286. businessType: null,
  287. orderName: null,
  288. orderId: null,
  289. shouldAmount: null,
  290. remark: null,
  291. businessType: null,
  292. businessId: null,
  293. businessSubId: null,
  294. productionFundId: null,
  295. evaluateAmount: null
  296. },
  297. repertoryOutWarehouseVisible: false,
  298. outWarehouse: {
  299. id: null,
  300. productionFundId: null,
  301. reportNo: null,
  302. statementNo: null,
  303. remark: null,
  304. realAmount: null
  305. },
  306. businessId: null,
  307. businessSubId: null,
  308. businessMinId: null,
  309. recordId: null,
  310. currentNodeId: null,
  311. // 产品收款信息
  312. productionFundFrom: {
  313. id: null,
  314. businessType: null,
  315. businessId: null,
  316. productionNo: null,
  317. productionType: null,
  318. orderFundId: null,
  319. productionShouldAmount: null,
  320. remark: null
  321. }
  322. }
  323. },
  324. created() {
  325. // 获取用户下拉列表
  326. this.getAllUser();
  327. // 获取我的资产业务订单
  328. this.selectMyOrderPage();
  329. },
  330. updated() {
  331. this.dynamicWidth = getOperatorWidth();
  332. },
  333. methods: {
  334. // 无条件分页查询
  335. selectMyOrderPage() {
  336. this.$api.assets.selectMyOrderPage(this.listQuery).then(res => {
  337. if (res.code === 200) {
  338. this.pageData = res.data;
  339. }
  340. })
  341. },
  342. // 条件查询
  343. searchList() {
  344. // 重置分页
  345. this.listQuery.page = 1
  346. this.listQuery.size = 10
  347. this.selectMyOrderPage()
  348. },
  349. // 重置搜索条件
  350. resetParams() {
  351. this.$router.push({ query: {} });
  352. this.listQuery = {
  353. current: 1,
  354. size: 10,
  355. }
  356. this.selectMyOrderPage();
  357. },
  358. // 获取所有用户下拉列表
  359. getAllUser() {
  360. this.$api.user.simpleAll().then(res => {
  361. if (res.code === 200) {
  362. this.allUsers = res.data;
  363. }
  364. })
  365. },
  366. orderDetail(row) {
  367. this.$router.push({
  368. path: "/assets/orderDetail",
  369. query: {
  370. row: JSON.stringify(row),
  371. back: '/assets/myOrderList',
  372. couldEdit: false,
  373. couldBack: false,
  374. disabledStatus: true
  375. }
  376. })
  377. },
  378. openShouldAmountDialog(row) {
  379. this.shouldAmountDialog = true;
  380. this.fund.id = row.orderFundId;
  381. this.fund.businessType = 'ASSET_BUSINESS';
  382. this.fund.businessId = row.assetsId;
  383. this.fund.orderFundId = row.orderFundId;
  384. this.fund.shouldAmount = row.shouldAmount;
  385. this.fund.remark = row.remark;
  386. this.fund.orderId = row.orderId;
  387. this.fund.orderName = row.name;
  388. },
  389. openProShouldAmountDialog(row) {
  390. if (row.orderFundId !== null) {
  391. this.proShouldAmountDialog = true;
  392. this.productionFundFrom.id = row.productionFundId;
  393. this.productionFundFrom.businessType = 'ASSET_BUSINESS';
  394. this.productionFundFrom.businessId = row.assetsId;
  395. this.productionFundFrom.orderFundId = row.orderFundId;
  396. this.productionFundFrom.productionNo = row.reportNo;
  397. this.productionFundFrom.productionShouldAmount = row.productionShouldAmount;
  398. if (row.reportNo.includes('川友评报字')) {
  399. this.productionFundFrom.productionType = 'REPORT'
  400. } else if (row.reportNo.includes('川友咨报字')) {
  401. this.productionFundFrom.productionType = 'CONSULT'
  402. } else if (row.reportNo.includes('川友字')) {
  403. this.productionFundFrom.productionType = 'LETTER'
  404. } else {
  405. this.productionFundFrom.productionType = 'STATEMENT'
  406. }
  407. this.productionFundFrom.productionShouldAmount = row.productionShouldAmount;
  408. this.productionFundFrom.remark = row.remark;
  409. } else {
  410. this.$notify({
  411. title: '警告',
  412. message: '需要先填写订单应收款',
  413. type: 'error',
  414. duration: 3000
  415. });
  416. }
  417. },
  418. saveShouldAmount() {
  419. this.$refs.fund.validate(valid => {
  420. if (valid) {
  421. if (this.fund.orderFundId) {
  422. this.$api.orderFund.edit(this.fund).then(res => {
  423. if (res.code === 200 && res.data) {
  424. this.$notify({
  425. title: '成功',
  426. message: '订单应收款保存成功',
  427. type: 'success',
  428. duration: 1000
  429. });
  430. this.selectMyOrderPage();
  431. this.shouldAmountDialog = false;
  432. } else {
  433. this.$notify({
  434. title: '失败',
  435. message: '订单应收款保存错误',
  436. type: 'error',
  437. duration: 1000
  438. });
  439. }
  440. })
  441. } else {
  442. this.$api.orderFund.add(this.fund).then(res => {
  443. if (res.code === 200 && res.data) {
  444. this.$notify({
  445. title: '成功',
  446. message: '订单应收款保存成功',
  447. type: 'success',
  448. duration: 1000
  449. });
  450. this.selectMyOrderPage();
  451. this.shouldAmountDialog = false;
  452. } else {
  453. this.$notify({
  454. title: '失败',
  455. message: '订单应收款保存错误',
  456. type: 'error',
  457. duration: 1000
  458. });
  459. }
  460. })
  461. }
  462. }
  463. })
  464. },
  465. cleanData() {
  466. this.fund.shouldAmount = null;
  467. this.fund.id = null;
  468. this.fund.businessType = null;
  469. this.fund.remark = null;
  470. this.fund.businessType = null;
  471. this.fund.businessId = null;
  472. this.fund.businessSubId = null;
  473. this.fund.productionFundId = null;
  474. this.fund.remark = null;
  475. this.fund.evaluateAmount = null
  476. },
  477. openRepertoryOutWarehouse(row) {
  478. this.repertoryOutWarehouseVisible = true;
  479. this.outWarehouse.reportNo = row.reportNo;
  480. this.outWarehouse.businessType = 'ASSET_BUSINESS';
  481. this.businessId = row.assetsId;
  482. this.businessSubId = row.statementNo;
  483. this.businessMinId = row.reportNo;
  484. this.recordId = row.recordId;
  485. this.currentNodeId = row.currentNodeId;
  486. },
  487. // 新增出库申请
  488. addRepertoryOutWarehouse() {
  489. if (this.outWarehouse.remark !== null && this.outWarehouse.remark !== '') {
  490. let taskRecordDTO = new Object();
  491. taskRecordDTO.recordId = this.recordId;;
  492. taskRecordDTO.taskData = this.outWarehouse;
  493. this.$api.productionOutWarehouse.add(taskRecordDTO).then(res => {
  494. if (res.code === 200 && res.data) {
  495. this.$notify({
  496. title: '成功',
  497. message: '出库申请已提交',
  498. type: 'success',
  499. duration: 2000
  500. });
  501. this.commitNode('PASS', this.outWarehouse.remark);
  502. this.repertoryOutWarehouseVisible = false;
  503. this.selectMyOrderPage();
  504. } else {
  505. this.$notify({
  506. title: '失败',
  507. message: '出库申请提交失败',
  508. type: 'error',
  509. duration: 2000
  510. });
  511. }
  512. })
  513. } else {
  514. this.$notify({
  515. title: '警告',
  516. message: '出库原因是必填项',
  517. type: 'error',
  518. duration: 2000
  519. });
  520. }
  521. },
  522. // 撤销出库申请
  523. canceladdRepertoryOutWarehouse(row) {
  524. this.$confirm('请确认是否撤销此出库申请?', '提示', {
  525. confirmButtonText: '确定',
  526. cancelButtonText: '取消',
  527. type: 'warning',
  528. center: true
  529. }).then(() => {
  530. this.$api.productionOutWarehouse.detail(row.warehouseId).then(res => {
  531. if (res.departmentCheckState !== '审核中') {
  532. this.$notify({
  533. title: '警告',
  534. message: '出库申请' + res.departmentCheckState + ',无法撤销。',
  535. type: 'error',
  536. duration: 2000
  537. });
  538. return;
  539. }
  540. })
  541. if (row.id) {
  542. this.$api.productionOutWarehouse.cancel(row.id).then(res => {
  543. if (res.code === 200 && res.data) {
  544. this.$notify({
  545. title: '成功',
  546. message: '出库申请已撤销',
  547. type: 'success',
  548. duration: 2000
  549. });
  550. // 撤销成功退回节点
  551. this.commitNode('REVERSE');
  552. }
  553. })
  554. }
  555. })
  556. },
  557. // 提交节点
  558. commitNode(state, remark) {
  559. let commit = new Object;
  560. commit.instanceNodeId = this.currentNodeId;
  561. commit.state = state;
  562. commit.comments = remark;
  563. commit.businessMinId = this.businessMinId;
  564. commit.businessSubId = this.businessSubId;
  565. this.$api.workflow.commit(commit).then(res => {
  566. if (res.code === 200 && res.data) {
  567. this.$notify({
  568. title: '成功',
  569. message: '工作流节点提交成功。',
  570. type: 'success',
  571. duration: 2000
  572. });
  573. } else {
  574. this.$notify({
  575. title: '失败',
  576. message: '工作流节点提交失败,请联系管理员。',
  577. type: 'error',
  578. duration: 2000
  579. });
  580. }
  581. })
  582. },
  583. // 保存产品应收款
  584. saveProShouldAmount() {
  585. this.$refs.productionFundFrom.validate(valid => {
  586. if (valid) {
  587. if (this.productionFundFrom.id) {
  588. this.$api.productionFund.edit(this.productionFundFrom).then(res => {
  589. if (res.code === 200 && res.data) {
  590. this.$notify({
  591. title: '成功',
  592. message: '产品应收款保存成功',
  593. type: 'success',
  594. duration: 1000
  595. });
  596. this.selectMyOrderPage();
  597. this.proShouldAmountDialog = false;
  598. } else {
  599. this.$notify({
  600. title: '失败',
  601. message: '产品应收款保存错误',
  602. type: 'error',
  603. duration: 1000
  604. });
  605. }
  606. })
  607. } else {
  608. this.$api.productionFund.add(this.productionFundFrom).then(res => {
  609. if (res.code === 200 && res.data) {
  610. this.$notify({
  611. title: '成功',
  612. message: '产品应收款保存成功',
  613. type: 'success',
  614. duration: 1000
  615. });
  616. this.selectMyOrderPage();
  617. this.proShouldAmountDialog = false;
  618. } else {
  619. this.$notify({
  620. title: '失败',
  621. message: '产品应收款保存错误',
  622. type: 'error',
  623. duration: 1000
  624. });
  625. }
  626. })
  627. }
  628. }
  629. })
  630. }
  631. },
  632. // 标记产品送达
  633. markDelivery(row) {
  634. this.$api.assets.markDelivery(row.reportNo).then(res => {
  635. if (res.code === 200 && res.data) {
  636. this.$notify({
  637. title: '成功',
  638. message: '标记送达成功!',
  639. type: 'success',
  640. duration: 1000
  641. });
  642. }
  643. })
  644. }
  645. }
  646. </script>
  647. <style lang="scss" scoped></style>