doctor-admin-components 1.0.4 → 1.0.6-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/lib/index.common.js +399 -321
  2. package/lib/index.css +1 -1
  3. package/lib/index.umd.js +399 -321
  4. package/lib/index.umd.min.js +43 -43
  5. package/package.json +4 -3
  6. package/packages/Button/index.js +16 -0
  7. package/packages/Button/src/index.vue +33 -0
  8. package/packages/index.js +122 -0
  9. package/packages/src/api/biz/bizCompanyBillGoods.js +61 -0
  10. package/packages/src/api/biz/bizContainer.js +86 -0
  11. package/packages/src/api/biz/bizContainerDetail.js +61 -0
  12. package/packages/src/api/biz/bizContract.js +112 -0
  13. package/packages/src/api/biz/bizContractCompany.js +53 -0
  14. package/packages/src/api/biz/bizContractDetail.js +62 -0
  15. package/packages/src/api/biz/bizContractDispute.js +53 -0
  16. package/packages/src/api/biz/bizDealRecord.js +87 -0
  17. package/packages/src/api/biz/bizFileInfo.js +53 -0
  18. package/packages/src/api/biz/bizInvoice.js +161 -0
  19. package/packages/src/api/biz/bizInvoiceExtraCosts.js +53 -0
  20. package/packages/src/api/biz/bizShipment.js +113 -0
  21. package/packages/src/api/biz/companyInfo.js +61 -0
  22. package/packages/src/api/biz/dictData.js +77 -0
  23. package/packages/src/api/biz/track.js +21 -0
  24. package/packages/src/api/system/dict/data.js +60 -0
  25. package/packages/src/api/system/dict/type.js +68 -0
  26. package/packages/src/assets/icons/index.js +17 -0
  27. package/packages/src/assets/icons/svg/404.svg +1 -0
  28. package/packages/src/assets/icons/svg/bug.svg +1 -0
  29. package/packages/src/assets/icons/svg/build.svg +1 -0
  30. package/packages/src/assets/icons/svg/button.svg +1 -0
  31. package/packages/src/assets/icons/svg/cascader.svg +1 -0
  32. package/packages/src/assets/icons/svg/chart.svg +1 -0
  33. package/packages/src/assets/icons/svg/checkbox.svg +1 -0
  34. package/packages/src/assets/icons/svg/clipboard.svg +1 -0
  35. package/packages/src/assets/icons/svg/code.svg +1 -0
  36. package/packages/src/assets/icons/svg/color.svg +1 -0
  37. package/packages/src/assets/icons/svg/component.svg +1 -0
  38. package/packages/src/assets/icons/svg/dashboard.svg +1 -0
  39. package/packages/src/assets/icons/svg/date-range.svg +1 -0
  40. package/packages/src/assets/icons/svg/date.svg +1 -0
  41. package/packages/src/assets/icons/svg/dict.svg +1 -0
  42. package/packages/src/assets/icons/svg/documentation.svg +1 -0
  43. package/packages/src/assets/icons/svg/download.svg +1 -0
  44. package/packages/src/assets/icons/svg/drag.svg +1 -0
  45. package/packages/src/assets/icons/svg/druid.svg +1 -0
  46. package/packages/src/assets/icons/svg/edit.svg +1 -0
  47. package/packages/src/assets/icons/svg/education.svg +1 -0
  48. package/packages/src/assets/icons/svg/email.svg +1 -0
  49. package/packages/src/assets/icons/svg/example.svg +1 -0
  50. package/packages/src/assets/icons/svg/excel.svg +1 -0
  51. package/packages/src/assets/icons/svg/exit-fullscreen.svg +1 -0
  52. package/packages/src/assets/icons/svg/eye-open.svg +1 -0
  53. package/packages/src/assets/icons/svg/eye.svg +1 -0
  54. package/packages/src/assets/icons/svg/form.svg +1 -0
  55. package/packages/src/assets/icons/svg/fullscreen.svg +1 -0
  56. package/packages/src/assets/icons/svg/github.svg +1 -0
  57. package/packages/src/assets/icons/svg/guide.svg +1 -0
  58. package/packages/src/assets/icons/svg/icon.svg +1 -0
  59. package/packages/src/assets/icons/svg/input.svg +1 -0
  60. package/packages/src/assets/icons/svg/international.svg +1 -0
  61. package/packages/src/assets/icons/svg/job.svg +1 -0
  62. package/packages/src/assets/icons/svg/language.svg +1 -0
  63. package/packages/src/assets/icons/svg/link.svg +1 -0
  64. package/packages/src/assets/icons/svg/list.svg +1 -0
  65. package/packages/src/assets/icons/svg/lock.svg +1 -0
  66. package/packages/src/assets/icons/svg/log.svg +1 -0
  67. package/packages/src/assets/icons/svg/logininfor.svg +1 -0
  68. package/packages/src/assets/icons/svg/message.svg +1 -0
  69. package/packages/src/assets/icons/svg/money.svg +1 -0
  70. package/packages/src/assets/icons/svg/monitor.svg +2 -0
  71. package/packages/src/assets/icons/svg/nested.svg +1 -0
  72. package/packages/src/assets/icons/svg/number.svg +1 -0
  73. package/packages/src/assets/icons/svg/online.svg +1 -0
  74. package/packages/src/assets/icons/svg/password.svg +1 -0
  75. package/packages/src/assets/icons/svg/pdf.svg +1 -0
  76. package/packages/src/assets/icons/svg/people.svg +1 -0
  77. package/packages/src/assets/icons/svg/peoples.svg +1 -0
  78. package/packages/src/assets/icons/svg/phone.svg +1 -0
  79. package/packages/src/assets/icons/svg/post.svg +1 -0
  80. package/packages/src/assets/icons/svg/qq.svg +1 -0
  81. package/packages/src/assets/icons/svg/question.svg +1 -0
  82. package/packages/src/assets/icons/svg/radio.svg +1 -0
  83. package/packages/src/assets/icons/svg/rate.svg +1 -0
  84. package/packages/src/assets/icons/svg/redis.svg +1 -0
  85. package/packages/src/assets/icons/svg/row.svg +1 -0
  86. package/packages/src/assets/icons/svg/search.svg +1 -0
  87. package/packages/src/assets/icons/svg/select.svg +1 -0
  88. package/packages/src/assets/icons/svg/server.svg +1 -0
  89. package/packages/src/assets/icons/svg/shopping.svg +1 -0
  90. package/packages/src/assets/icons/svg/size.svg +1 -0
  91. package/packages/src/assets/icons/svg/skill.svg +1 -0
  92. package/packages/src/assets/icons/svg/slider.svg +1 -0
  93. package/packages/src/assets/icons/svg/star.svg +1 -0
  94. package/packages/src/assets/icons/svg/swagger.svg +1 -0
  95. package/packages/src/assets/icons/svg/switch.svg +1 -0
  96. package/packages/src/assets/icons/svg/system.svg +2 -0
  97. package/packages/src/assets/icons/svg/tab.svg +1 -0
  98. package/packages/src/assets/icons/svg/table.svg +1 -0
  99. package/packages/src/assets/icons/svg/textarea.svg +1 -0
  100. package/packages/src/assets/icons/svg/theme.svg +1 -0
  101. package/packages/src/assets/icons/svg/time-range.svg +1 -0
  102. package/packages/src/assets/icons/svg/time.svg +1 -0
  103. package/packages/src/assets/icons/svg/tool.svg +1 -0
  104. package/packages/src/assets/icons/svg/tree-table.svg +1 -0
  105. package/packages/src/assets/icons/svg/tree.svg +1 -0
  106. package/packages/src/assets/icons/svg/upload.svg +1 -0
  107. package/packages/src/assets/icons/svg/user.svg +1 -0
  108. package/packages/src/assets/icons/svg/validCode.svg +1 -0
  109. package/packages/src/assets/icons/svg/warn.svg +1 -0
  110. package/packages/src/assets/icons/svg/wechat.svg +1 -0
  111. package/packages/src/assets/icons/svg/zip.svg +1 -0
  112. package/packages/src/assets/icons/svgo.yml +22 -0
  113. package/packages/src/assets/images/file.png +0 -0
  114. package/packages/src/assets/images/pdf.png +0 -0
  115. package/packages/src/assets/styles/btn.scss +99 -0
  116. package/packages/src/assets/styles/element-ui.scss +92 -0
  117. package/packages/src/assets/styles/element-variables.scss +31 -0
  118. package/packages/src/assets/styles/index.scss +191 -0
  119. package/packages/src/assets/styles/mixin.scss +66 -0
  120. package/packages/src/assets/styles/ruoyi.scss +273 -0
  121. package/packages/src/assets/styles/sidebar.scss +223 -0
  122. package/packages/src/assets/styles/transition.scss +48 -0
  123. package/packages/src/assets/styles/variables.scss +54 -0
  124. package/packages/src/components/DictData/index.js +29 -0
  125. package/packages/src/components/DictTag/index.vue +65 -0
  126. package/packages/src/components/FileUpload/aliyun.vue +350 -0
  127. package/packages/src/components/FileUpload/apk.vue +360 -0
  128. package/packages/src/components/FileUpload/contract-drag.vue +268 -0
  129. package/packages/src/components/FileUpload/contract.vue +239 -0
  130. package/packages/src/components/FileUpload/index.vue +229 -0
  131. package/packages/src/components/FileUpload/s3.vue +244 -0
  132. package/packages/src/components/FileUpload/uploadInvoice.vue +270 -0
  133. package/packages/src/components/ImagePreview/index.vue +92 -0
  134. package/packages/src/components/ImageUpload/aliyun.vue +257 -0
  135. package/packages/src/components/ImageUpload/index.vue +192 -0
  136. package/packages/src/components/ImageUpload/s3.vue +243 -0
  137. package/packages/src/components/ImageUpload/shrinkS3.vue +253 -0
  138. package/packages/src/components/SvgIcon/index.vue +69 -0
  139. package/packages/src/index.js +24 -0
  140. package/packages/src/lang/en.json +225 -0
  141. package/packages/src/lang/zh.json +224 -0
  142. package/packages/src/lib-components/zpw-button.vue +53 -0
  143. package/packages/src/lib-components/zpw-com-test-sample.vue +78 -0
  144. package/packages/src/plugins/auth.js +68 -0
  145. package/packages/src/plugins/cache.js +77 -0
  146. package/packages/src/plugins/download.js +80 -0
  147. package/packages/src/plugins/index.js +28 -0
  148. package/packages/src/plugins/modal.js +83 -0
  149. package/packages/src/plugins/tab.js +75 -0
  150. package/packages/src/router/index.js +339 -0
  151. package/packages/src/store/getters.js +18 -0
  152. package/packages/src/store/index.js +31 -0
  153. package/packages/src/store/modules/app.js +56 -0
  154. package/packages/src/store/modules/i18n.js +28 -0
  155. package/packages/src/store/modules/permission.js +138 -0
  156. package/packages/src/store/modules/settings.js +50 -0
  157. package/packages/src/store/modules/tagsView.js +207 -0
  158. package/packages/src/store/modules/user.js +104 -0
  159. package/packages/src/utils/auth.js +25 -0
  160. package/packages/src/utils/dict/Dict.js +90 -0
  161. package/packages/src/utils/dict/DictConverter.js +17 -0
  162. package/packages/src/utils/dict/DictData.js +13 -0
  163. package/packages/src/utils/dict/DictMeta.js +46 -0
  164. package/packages/src/utils/dict/DictOptions.js +59 -0
  165. package/packages/src/utils/dict/index.js +33 -0
  166. package/packages/src/utils/errorCode.js +6 -0
  167. package/packages/src/utils/generator/config.js +438 -0
  168. package/packages/src/utils/generator/css.js +18 -0
  169. package/packages/src/utils/generator/drawingDefault.js +29 -0
  170. package/packages/src/utils/generator/html.js +359 -0
  171. package/packages/src/utils/generator/icon.json +1 -0
  172. package/packages/src/utils/generator/js.js +236 -0
  173. package/packages/src/utils/generator/render.js +126 -0
  174. package/packages/src/utils/index.js +390 -0
  175. package/packages/src/utils/pdf.js +62 -0
  176. package/packages/src/utils/request.js +227 -0
  177. package/packages/src/utils/ruoyi.js +261 -0
  178. package/packages/src/utils/validate.js +83 -0
  179. package/packages/src/utils/zip.js +62 -0
  180. package/packages/src/views/biz/bizContract/companyList.vue +217 -0
  181. package/packages/src/views/biz/bizContract/contractCompanyList.vue +433 -0
  182. package/packages/src/views/biz/bizContract/depositInvoice.vue +688 -0
  183. package/packages/src/views/biz/bizContract/detail.vue +1168 -0
  184. package/packages/src/views/biz/bizContract/index.vue +940 -0
  185. package/packages/src/views/biz/bizFileInfo/contract copy.vue +359 -0
  186. package/packages/src/views/biz/bizFileInfo/contract-history.vue +150 -0
  187. package/packages/src/views/biz/bizFileInfo/contract.vue +1115 -0
  188. package/packages/src/views/biz/bizFileInfo/detail.vue +82 -0
  189. package/packages/src/views/biz/bizFileInfo/fileShow.vue +316 -0
  190. package/packages/src/views/biz/bizFileInfo/index.vue +405 -0
  191. package/packages/src/views/biz/bizShipment/detail.vue +202 -0
  192. package/packages/src/views/biz/bizShipment/gen.vue +1147 -0
  193. package/packages/src/views/biz/bizShipment/index.vue +696 -0
  194. package/packages/src/views/biz/contractTracing/addBillGood.vue +184 -0
  195. package/packages/src/views/biz/contractTracing/addSubCompany.vue +337 -0
  196. package/packages/src/views/biz/contractTracing/association.vue +189 -0
  197. package/packages/src/views/biz/contractTracing/billGoods.vue +180 -0
  198. package/packages/src/views/biz/contractTracing/billInfo.vue +559 -0
  199. package/packages/src/views/biz/contractTracing/billPdf.vue +275 -0
  200. package/packages/src/views/biz/contractTracing/chargingDialog.vue +84 -0
  201. package/packages/src/views/biz/contractTracing/contract.vue +1256 -0
  202. package/packages/src/views/biz/contractTracing/contractInfo.vue +209 -0
  203. package/packages/src/views/biz/contractTracing/contractPdf.vue +562 -0
  204. package/packages/src/views/biz/contractTracing/contractSummary.vue +1012 -0
  205. package/packages/src/views/biz/contractTracing/contractTracingDetail.vue +88 -0
  206. package/packages/src/views/biz/contractTracing/disputeRecord.vue +311 -0
  207. package/packages/src/views/biz/contractTracing/edit.vue +205 -0
  208. package/packages/src/views/biz/contractTracing/editBill.vue +722 -0
  209. package/packages/src/views/biz/contractTracing/index.vue +1503 -0
  210. package/packages/src/views/biz/contractTracing/purchaseInvoiceUpload.vue +330 -0
  211. package/packages/src/views/biz/contractTracing/sendDrafEmail.vue +120 -0
  212. package/packages/src/views/biz/contractTracing/shipment.vue +601 -0
  213. package/packages/src/views/biz/contractTracing/subCompanyDialog.vue +318 -0
  214. package/packages/src/views/biz/track/index.vue +171 -0
  215. package/packages/src/views/components/icons/element-icons.js +3 -0
  216. package/packages/src/views/components/icons/index.vue +87 -0
  217. package/packages/src/views/components/icons/svg-icons.js +10 -0
  218. package/packages/src/views/test.vue +44 -0
@@ -0,0 +1,601 @@
1
+ <template>
2
+ <div class="app-container">
3
+ <el-row :gutter="10" class="mb8">
4
+ <el-col :span="1.5">
5
+ <el-button type="text" size="mini" @click="handleQuickQuery('')"
6
+ >全部</el-button
7
+ >
8
+ </el-col>
9
+ <el-col :span="1.5">
10
+ <el-button
11
+ type="text"
12
+ size="mini"
13
+ @click="handleQuickQuery('overdue_unreceived_balance')"
14
+ >
15
+ 超时未收尾款</el-button
16
+ >
17
+ </el-col>
18
+ <el-col :span="1.5">
19
+ <el-button
20
+ type="text"
21
+ size="mini"
22
+ @click="handleQuickQuery('paid_unreceived_balance')"
23
+ >
24
+ 已付未收尾款</el-button
25
+ >
26
+ </el-col>
27
+ </el-row>
28
+ <el-row>
29
+ <el-col :span="4"> {{ "总重量:" + this.totalWeight + "MT" }}</el-col>
30
+ <el-col :span="5">
31
+ {{ "已装运重量:" + this.haveWeight + "MT" }}
32
+ </el-col>
33
+ </el-row>
34
+
35
+ <el-row :gutter="10" class="mb8">
36
+ <right-toolbar
37
+ :showSearch.sync="showSearch"
38
+ @queryTable="getList"
39
+ ></right-toolbar>
40
+ </el-row>
41
+
42
+ <el-table
43
+ v-loading="loading"
44
+ :data="bizShipmentList"
45
+ @selection-change="handleSelectionChange"
46
+ :row-class-name="tableRowClassName"
47
+ >
48
+ <el-table-column label="ETA" prop="eta" align="center" width="100px" />
49
+ <el-table-column
50
+ label="船公司"
51
+ prop="shippingCompany"
52
+ align="center"
53
+ width="100px"
54
+ >
55
+ <template slot-scope="scope">
56
+ <dict-tag
57
+ :options="dict.type.shipping_company"
58
+ :value="scope.row.shippingCompany"
59
+ />
60
+ </template>
61
+ </el-table-column>
62
+ <el-table-column
63
+ label="提单号"
64
+ align="center"
65
+ prop="billOfLadingNo"
66
+ width="130"
67
+ />
68
+
69
+ <el-table-column
70
+ label="柜号"
71
+ align="center"
72
+ prop="containerNo"
73
+ width="130"
74
+ />
75
+
76
+ <el-table-column
77
+ label="总货物净重"
78
+ align="center"
79
+ prop="totalGoodsNetWeight"
80
+ width="130"
81
+ />
82
+
83
+ <el-table-column
84
+ label="合同号"
85
+ align="center"
86
+ prop="contractNo"
87
+ width="150"
88
+ />
89
+ <el-table-column
90
+ label="合同买方公司"
91
+ align="center"
92
+ prop="buyContractCompanyName"
93
+ width="180"
94
+ >
95
+ </el-table-column>
96
+ <el-table-column
97
+ label="尾款发票号"
98
+ align="center"
99
+ prop="invoiceNo"
100
+ width="180"
101
+ >
102
+ </el-table-column>
103
+
104
+ <!-- amount/amout-remain -->
105
+ <el-table-column label="尾款种类" align="center" prop="invoiceSpecies">
106
+ <template slot-scope="scope">
107
+ <dict-tag
108
+ :options="dict.type.invoice_species"
109
+ :value="scope.row.invoiceSpecies"
110
+ />
111
+ </template>
112
+ </el-table-column>
113
+ <el-table-column label="收付款状态" align="center" width="100">
114
+ <template slot-scope="{ row }">
115
+ <div v-if="row.invoiceType == 'sale'">
116
+ <div v-if="row.financialStatus">
117
+ <dict-tag
118
+ :options="dict.type.financial_status"
119
+ :value="row.financialStatus"
120
+ />
121
+ </div>
122
+ <div v-else>
123
+ {{
124
+ row.remainingAmount <= 10
125
+ ? "全部收款"
126
+ : row.remainingAmount == row.amount
127
+ ? "未收"
128
+ : "部分收款"
129
+ }}
130
+ </div>
131
+ </div>
132
+ <div v-else>
133
+ <div v-if="row.financialStatus">
134
+ <dict-tag
135
+ :options="dict.type.financial_status"
136
+ :value="row.financialStatus"
137
+ />
138
+ </div>
139
+ <div v-else>
140
+ {{
141
+ row.remainingAmount <= 10
142
+ ? "全部付款"
143
+ : row.remainingAmount == row.amount
144
+ ? "未付"
145
+ : "部分付款"
146
+ }}
147
+ </div>
148
+ </div>
149
+ </template>
150
+ </el-table-column>
151
+
152
+ <el-table-column label="尾款应收应付/实收实付" align="center">
153
+ <template slot-scope="{ row }">
154
+ {{
155
+ row.amount != null && row.remainingAmount != null
156
+ ? row.amount + "/" + (row.amount - row.remainingAmount)
157
+ : ""
158
+ }}
159
+ </template>
160
+ </el-table-column>
161
+ <el-table-column label="起运国" align="center" prop="loadingCountry" />
162
+ <el-table-column label="目的港" align="center" prop="destinationPort" />
163
+ <el-table-column label="装货日期" align="center">
164
+ <template slot-scope="{ row }">
165
+ {{ utc2local(row.loadingTime, "YYYY-MM-DD") }}
166
+ </template>
167
+ </el-table-column>
168
+ <el-table-column label="ETD" align="center">
169
+ <template slot-scope="{ row }">
170
+ {{ utc2local(row.etd, "YYYY-MM-DD") }}
171
+ </template>
172
+ </el-table-column>
173
+
174
+ <el-table-column
175
+ label="操作"
176
+ align="center"
177
+ class-name="small-padding fixed-width"
178
+ width="150px"
179
+ >
180
+ <template slot-scope="scope">
181
+ <el-button
182
+ v-if="scope.row.chargingStatus == 'discharged'"
183
+ size="mini"
184
+ type="text"
185
+ icon="el-icon-view"
186
+ @click="confirmCharge(scope.row)"
187
+ >确认电放
188
+ </el-button>
189
+ <el-button
190
+ size="mini"
191
+ type="text"
192
+ icon="el-icon-view"
193
+ @click="handleDetail(scope.row)"
194
+ >详情
195
+ </el-button>
196
+ </template>
197
+ </el-table-column>
198
+ </el-table>
199
+
200
+ <!-- 添加或修改装运对话框 -->
201
+ <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
202
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
203
+ <el-form-item label="船公司" prop="shippingCompany">
204
+ <el-select
205
+ v-model="form.shippingCompany"
206
+ placeholder="请选择船公司"
207
+ clearable
208
+ size="small"
209
+ >
210
+ <el-option
211
+ v-for="dict in dict.type.shipping_company"
212
+ :key="dict.value"
213
+ :label="dict.label"
214
+ :value="dict.value"
215
+ />
216
+ </el-select>
217
+ </el-form-item>
218
+ <el-form-item label="订舱号" prop="bookingNo">
219
+ <el-input v-model="form.bookingNo" placeholder="请输入订舱号" />
220
+ </el-form-item>
221
+ <el-form-item label="提单号" prop="billOfLadingNo">
222
+ <el-input v-model="form.billOfLadingNo" placeholder="请输入提单号" />
223
+ </el-form-item>
224
+ <el-form-item label="目的港" prop="destinationPort">
225
+ <el-input v-model="form.destinationPort" placeholder="请输入目的港" />
226
+ </el-form-item>
227
+ <el-form-item label="预计离港日" prop="etd">
228
+ <el-date-picker
229
+ clearable
230
+ size="small"
231
+ v-model="form.etd"
232
+ type="date"
233
+ value-format="yyyy-MM-dd HH:mm:ss"
234
+ placeholder="请选择预计离港日期"
235
+ >
236
+ </el-date-picker>
237
+ </el-form-item>
238
+ <el-form-item label="预计到港日" prop="eta">
239
+ <el-date-picker
240
+ clearable
241
+ size="small"
242
+ v-model="form.eta"
243
+ type="date"
244
+ value-format="yyyy-MM-dd HH:mm:ss"
245
+ placeholder="请选择预计到港日期"
246
+ >
247
+ </el-date-picker>
248
+ </el-form-item>
249
+ <el-form-item label="实际到港日" prop="actualArrivalDate">
250
+ <el-date-picker
251
+ clearable
252
+ size="small"
253
+ v-model="form.actualArrivalDate"
254
+ type="date"
255
+ value-format="yyyy-MM-dd HH:mm:ss"
256
+ placeholder="请选择实际到港日"
257
+ >
258
+ </el-date-picker>
259
+ </el-form-item>
260
+ <el-form-item label="备注" prop="remark">
261
+ <el-input v-model="form.remark" placeholder="请输入备注" />
262
+ </el-form-item>
263
+ </el-form>
264
+ <div slot="footer" class="dialog-footer">
265
+ <el-button type="primary" @click="submitForm">确 定</el-button>
266
+ <el-button @click="cancel">取 消</el-button>
267
+ </div>
268
+ </el-dialog>
269
+
270
+ <!-- 生成尾款发票对话框 -->
271
+ <el-dialog
272
+ :title="title"
273
+ :visible.sync="generateFinalInvoiceOpen"
274
+ width="500px"
275
+ append-to-body
276
+ >
277
+ {{
278
+ "报价类型为" +
279
+ generateFinalInvoiceForm.quoteType +
280
+ ",确认用这这个装运单生成尾款发票"
281
+ }}
282
+
283
+ <div slot="footer" class="dialog-footer">
284
+ <el-form :model="generateFinalInvoiceForm" label-width="100px">
285
+ <el-form-item
286
+ label="临时价格"
287
+ v-if="generateFinalInvoiceForm.quoteType !== 'FIXED'"
288
+ >
289
+ <el-input
290
+ v-model="generateFinalInvoiceForm.pointPrice"
291
+ placeholder="请输入临时价格"
292
+ size="samll"
293
+ />
294
+ </el-form-item>
295
+ </el-form>
296
+ <el-button type="primary" @click="submitGenerateFinalInvoiceForm"
297
+ >确 定</el-button
298
+ >
299
+ <el-button @click="cancelGenerateFinalInvoiceForm">取 消</el-button>
300
+ </div>
301
+ </el-dialog>
302
+
303
+ <!-- 查看详情对话框 -->
304
+ <shipment-detail ref="shipmentDetail" />
305
+
306
+ <charging-dialog ref="chargingDialog" @refresh="getList"></charging-dialog>
307
+ </div>
308
+ </template>
309
+
310
+ <script>
311
+ import {
312
+ listBizShipment,
313
+ getBizShipment,
314
+ delBizShipment,
315
+ addBizShipment,
316
+ updateBizShipment,
317
+ } from "../../../api/biz/bizShipment";
318
+
319
+ import { listContainerWithInvoice } from "../../../api/biz/bizContainer";
320
+
321
+ import { generateFinalInvoiceByShipmentId } from "../../../api/biz/bizInvoice";
322
+ import ShipmentDetail from "../bizShipment/detail.vue";
323
+ import ChargingDialog from "./chargingDialog.vue";
324
+
325
+ export default {
326
+ name: "Shipment",
327
+ components: { ShipmentDetail, ChargingDialog },
328
+ dicts: ["shipping_company", "invoice_species", "financial_status"],
329
+ props: {
330
+ saleContractIds: {
331
+ type: Array,
332
+ default: [],
333
+ },
334
+ contract: {
335
+ type: Object,
336
+ default: {},
337
+ },
338
+ },
339
+ watch: {
340
+ saleContractIds: {
341
+ handler(val) {
342
+ if (val) {
343
+ this.queryParams.saleContractIds = this.saleContractIds;
344
+ this.getList();
345
+ }
346
+ },
347
+ },
348
+ contract: {
349
+ handler(contract) {
350
+ if (contract && contract.contractType == "sale") {
351
+ this.queryParams.saleContractIds = [];
352
+ this.queryParams.purchaseContractId = null;
353
+ this.queryParams.saleContractId = contract?.contractId;
354
+ this.getList();
355
+ } else {
356
+ this.queryParams.saleContractIds = [];
357
+ this.queryParams.saleContractId = null;
358
+ this.queryParams.purchaseContractId = contract?.contractId;
359
+ this.getList();
360
+ }
361
+ },
362
+ },
363
+ },
364
+ data() {
365
+ return {
366
+ // 遮罩层
367
+ loading: true,
368
+ // 选中数组
369
+ ids: [],
370
+ // 非单个禁用
371
+ single: true,
372
+ // 非多个禁用
373
+ multiple: true,
374
+ // 显示搜索条件
375
+ showSearch: true,
376
+ // 总条数
377
+ total: 0,
378
+ // 装运表格数据
379
+ bizShipmentList: [],
380
+ // 弹出层标题
381
+ title: "",
382
+ //是否显示生成尾款发票弹出层
383
+ generateFinalInvoiceOpen: false,
384
+ // 是否显示弹出层
385
+ open: false,
386
+ // 查询参数
387
+ queryParams: {
388
+ pageNum: 1,
389
+ pageSize: 10,
390
+ shippingCompany: null,
391
+ bookingNo: null,
392
+ billOfLadingNo: null,
393
+ destinationPort: null,
394
+ etd: null,
395
+ eta: null,
396
+ actualArrivalDate: null,
397
+ orderByColumn: "shipmentId",
398
+ isAsc: "desc",
399
+ },
400
+ // 表单参数
401
+ form: {},
402
+ //生成尾款发票参数
403
+ generateFinalInvoiceForm: {},
404
+ // 表单校验
405
+ rules: {
406
+ createTime: [
407
+ { required: true, message: "创建时间不能为空", trigger: "blur" },
408
+ ],
409
+ },
410
+ totalWeight: null,
411
+ haveWeight: null,
412
+ };
413
+ },
414
+ created() {},
415
+ methods: {
416
+ //确认电放
417
+ confirmCharge(row) {
418
+ this.$refs.chargingDialog.handleShow(row.shipmentId);
419
+ },
420
+ handleQuickQuery(type) {
421
+ this.queryParams.quickQueryStatus = type;
422
+ this.getList();
423
+ },
424
+ tableRowClassName({ row, rowIndex }) {
425
+ return "";
426
+ },
427
+ //查看详情
428
+ handleDetail(row) {
429
+ this.$refs.shipmentDetail.handleShow(row);
430
+ },
431
+ /** 提交生成尾款发票 */
432
+ submitGenerateFinalInvoiceForm() {
433
+ this.generateFinalInvoiceOpen = false;
434
+ this.loading = true;
435
+ generateFinalInvoiceByShipmentId(this.generateFinalInvoiceForm)
436
+ .then((res) => {
437
+ this.loading = false;
438
+ this.$message.success("生成尾款发票成功");
439
+ this.$router.push({
440
+ path: "/jxxg/invoice",
441
+ });
442
+ })
443
+ .catch((err) => {
444
+ this.loading = false;
445
+ this.$message.error(err.message);
446
+ });
447
+ },
448
+ /** 生成尾款发票按钮操作 */
449
+ handleGenerateFinalInvoice(row) {
450
+ this.reset();
451
+ const shipmentId = row.shipmentId || this.ids;
452
+ getBizShipment(shipmentId).then((response) => {
453
+ this.generateFinalInvoiceForm.shipmentId = shipmentId[0];
454
+ this.generateFinalInvoiceForm.quoteType = response.data.quoteType;
455
+ this.generateFinalInvoiceOpen = true;
456
+ this.title = "生成临时尾款发票";
457
+ });
458
+ },
459
+ /** 查询装运列表 */
460
+ getList() {
461
+ this.loading = true;
462
+ console.log(this.saleContractIds.length);
463
+ if (this.saleContractIds.length <= 0) {
464
+ this.queryParams.shipmentId = 0;
465
+ } else {
466
+ this.queryParams.shipmentId = null;
467
+ }
468
+ listContainerWithInvoice(this.queryParams).then((response) => {
469
+ this.bizShipmentList = response.rows;
470
+ this.totalWeight = this.bizShipmentList.reduce(
471
+ (accumulator, currentValue) =>
472
+ accumulator + currentValue.contractTotalWeight,
473
+ 0
474
+ );
475
+ this.haveWeight = this.bizShipmentList.reduce(
476
+ (accumulator, currentValue) =>
477
+ accumulator + currentValue.totalGoodsNetWeight,
478
+ 0
479
+ );
480
+ this.total = response.total;
481
+ this.loading = false;
482
+ });
483
+ },
484
+ // 取消按钮
485
+ cancel() {
486
+ this.open = false;
487
+ this.reset();
488
+ },
489
+ cancelGenerateFinalInvoiceForm() {
490
+ this.generateFinalInvoiceOpen = false;
491
+ this.reset();
492
+ },
493
+ // 表单重置
494
+ reset() {
495
+ this.form = {
496
+ shipmentId: null,
497
+ shippingCompany: null,
498
+ bookingNo: null,
499
+ billOfLadingNo: null,
500
+ destinationPort: null,
501
+ etd: null,
502
+ eta: null,
503
+ actualArrivalDate: null,
504
+ remark: null,
505
+ createTime: null,
506
+ updateTime: null,
507
+ };
508
+ this.generateFinalInvoiceForm = {
509
+ shipmentId: null,
510
+ pointPrice: null,
511
+ quoteType: null,
512
+ };
513
+ this.resetForm("form");
514
+ },
515
+ /** 搜索按钮操作 */
516
+ handleQuery() {
517
+ this.queryParams.pageNum = 1;
518
+ this.getList();
519
+ },
520
+ /** 重置按钮操作 */
521
+ resetQuery() {
522
+ this.handleQuery();
523
+ },
524
+ // 多选框选中数据
525
+ handleSelectionChange(selection) {
526
+ this.ids = selection.map((item) => item.shipmentId);
527
+ this.single = selection.length !== 1;
528
+ this.multiple = !selection.length;
529
+ },
530
+ /** 新增按钮操作 */
531
+ handleAdd() {
532
+ this.reset();
533
+ this.open = true;
534
+ this.title = "添加装运";
535
+ },
536
+ /** 修改按钮操作 */
537
+ handleUpdate(row) {
538
+ this.reset();
539
+ const shipmentId = row.shipmentId || this.ids;
540
+ getBizShipment(shipmentId).then((response) => {
541
+ this.form = response.data;
542
+ this.open = true;
543
+ this.title = "修改装运";
544
+ });
545
+ },
546
+ /** 提交按钮 */
547
+ submitForm() {
548
+ this.$refs["form"].validate((valid) => {
549
+ if (valid) {
550
+ if (this.form.shipmentId != null) {
551
+ updateBizShipment(this.form).then((response) => {
552
+ this.$modal.msgSuccess("修改成功");
553
+ this.open = false;
554
+ this.getList();
555
+ });
556
+ } else {
557
+ addBizShipment(this.form).then((response) => {
558
+ this.$modal.msgSuccess("新增成功");
559
+ this.open = false;
560
+ this.getList();
561
+ });
562
+ }
563
+ }
564
+ });
565
+ },
566
+ /** 删除按钮操作 */
567
+ handleDelete(row) {
568
+ const shipmentIds = row.shipmentId || this.ids;
569
+ this.$modal
570
+ .confirm('是否确认删除装运编号为"' + shipmentIds + '"的数据项?')
571
+ .then(function () {
572
+ return delBizShipment(shipmentIds);
573
+ })
574
+ .then(() => {
575
+ this.getList();
576
+ this.$modal.msgSuccess("删除成功");
577
+ })
578
+ .catch(() => {});
579
+ },
580
+ /** 导出按钮操作 */
581
+ handleExport() {
582
+ this.download(
583
+ "biz/shipment/export",
584
+ {
585
+ ...this.queryParams,
586
+ },
587
+ `bizShipment_${new Date().getTime()}.xlsx`
588
+ );
589
+ },
590
+ },
591
+ };
592
+ </script>
593
+ <style lang="scss">
594
+ .el-table .warning-row {
595
+ background: rgb(255, 241, 215);
596
+ }
597
+
598
+ .el-table .success-row {
599
+ background: #f0f9eb;
600
+ }
601
+ </style>