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,696 @@
1
+ <template>
2
+ <div class="app-container">
3
+ <el-form
4
+ :model="queryParams"
5
+ ref="queryForm"
6
+ :inline="true"
7
+ v-show="showSearch"
8
+ label-width="55px"
9
+ >
10
+ <el-form-item label="船公司" prop="shippingCompany">
11
+ <el-select
12
+ v-model="queryParams.shippingCompany"
13
+ placeholder="请选择船公司"
14
+ clearable
15
+ size="small"
16
+ >
17
+ <el-option
18
+ v-for="dict in dict.type.shipping_company"
19
+ :key="dict.value"
20
+ :label="dict.label"
21
+ :value="dict.value"
22
+ />
23
+ </el-select>
24
+ </el-form-item>
25
+ <el-form-item label="合同号" prop="contractNo">
26
+ <el-input
27
+ v-model="queryParams.contractNo"
28
+ placeholder="请输入合同号"
29
+ clearable
30
+ size="small"
31
+ @keyup.enter.native="handleQuery"
32
+ />
33
+ </el-form-item>
34
+ <el-form-item label="订舱号" prop="bookingNo">
35
+ <el-input
36
+ v-model="queryParams.bookingNo"
37
+ placeholder="请输入订舱号"
38
+ clearable
39
+ size="small"
40
+ @keyup.enter.native="handleQuery"
41
+ />
42
+ </el-form-item>
43
+ <el-form-item label="提单号" prop="billOfLadingNo">
44
+ <el-input
45
+ v-model="queryParams.billOfLadingNo"
46
+ placeholder="请输入提单号"
47
+ clearable
48
+ size="small"
49
+ @keyup.enter.native="handleQuery"
50
+ />
51
+ </el-form-item>
52
+ <el-form-item label="目的港" prop="destinationPort">
53
+ <el-input
54
+ v-model="queryParams.destinationPort"
55
+ placeholder="请输入目的港"
56
+ clearable
57
+ size="small"
58
+ @keyup.enter.native="handleQuery"
59
+ />
60
+ </el-form-item>
61
+ <el-form-item label="预计离港日期" prop="etd" label-width="100px">
62
+ <el-date-picker
63
+ clearable
64
+ size="small"
65
+ v-model="queryParams.etd"
66
+ type="date"
67
+ value-format="yyyy-MM-dd HH:mm:ss"
68
+ placeholder="请选择预计离港日期"
69
+ >
70
+ </el-date-picker>
71
+ </el-form-item>
72
+ <el-form-item label="预计到港日期" prop="eta" label-width="100px">
73
+ <el-date-picker
74
+ clearable
75
+ size="small"
76
+ v-model="queryParams.eta"
77
+ type="date"
78
+ value-format="yyyy-MM-dd HH:mm:ss"
79
+ placeholder="请选择预计到港日期"
80
+ >
81
+ </el-date-picker>
82
+ </el-form-item>
83
+ <el-form-item
84
+ label="实际到港日"
85
+ prop="actualArrivalDate"
86
+ label-width="100px"
87
+ >
88
+ <el-date-picker
89
+ clearable
90
+ size="small"
91
+ v-model="queryParams.actualArrivalDate"
92
+ type="date"
93
+ value-format="yyyy-MM-dd HH:mm:ss"
94
+ placeholder="请选择实际到港日"
95
+ >
96
+ </el-date-picker>
97
+ </el-form-item>
98
+ <el-form-item>
99
+ <el-button
100
+ type="primary"
101
+ icon="el-icon-search"
102
+ size="mini"
103
+ @click="handleQuery"
104
+ >搜索</el-button
105
+ >
106
+ <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
107
+ >重置</el-button
108
+ >
109
+ </el-form-item>
110
+ </el-form>
111
+
112
+ <el-row :gutter="10" class="mb8">
113
+ <el-col :span="1.5">
114
+ <el-button
115
+ type="primary"
116
+ plain
117
+ icon="el-icon-plus"
118
+ size="mini"
119
+ @click="handleAdd"
120
+ v-hasPermi="['biz:shipment:add']"
121
+ >新增</el-button
122
+ >
123
+ </el-col>
124
+ <el-col :span="1.5">
125
+ <el-button
126
+ type="success"
127
+ plain
128
+ icon="el-icon-edit"
129
+ size="mini"
130
+ :disabled="single"
131
+ @click="handleUpdate"
132
+ v-hasPermi="['biz:shipment:edit']"
133
+ >修改</el-button
134
+ >
135
+ </el-col>
136
+ <el-col :span="1.5">
137
+ <el-button
138
+ type="danger"
139
+ plain
140
+ icon="el-icon-delete"
141
+ size="mini"
142
+ :disabled="multiple"
143
+ @click="handleDelete"
144
+ v-hasPermi="['biz:shipment:remove']"
145
+ >删除</el-button
146
+ >
147
+ </el-col>
148
+ <el-col :span="1.5">
149
+ <el-button
150
+ type="warning"
151
+ plain
152
+ icon="el-icon-download"
153
+ size="mini"
154
+ @click="handleExport"
155
+ v-hasPermi="['biz:shipment:export']"
156
+ >导出</el-button
157
+ >
158
+ </el-col>
159
+ <el-col :span="1.5">
160
+ <el-button
161
+ plain
162
+ size="mini"
163
+ :disabled="single"
164
+ @click="handleGenerateFinalInvoice"
165
+ >生成临时尾款发票</el-button
166
+ >
167
+ </el-col>
168
+ <el-col :span="1.5">
169
+ <el-button
170
+ plain
171
+ size="mini"
172
+ :disabled="single"
173
+ type="primary"
174
+ @click="reGenerateFinalInvoice"
175
+ >重新生成尾款发票</el-button
176
+ >
177
+ </el-col>
178
+ <right-toolbar
179
+ :showSearch.sync="showSearch"
180
+ @queryTable="getList"
181
+ ></right-toolbar>
182
+ </el-row>
183
+
184
+ <el-table
185
+ v-loading="loading"
186
+ :data="bizShipmentList"
187
+ @selection-change="handleSelectionChange"
188
+ :row-class-name="tableRowClassName"
189
+ >
190
+ <el-table-column type="selection" width="55" align="center" />
191
+ <el-table-column
192
+ label="主键"
193
+ align="center"
194
+ prop="shipmentId"
195
+ width="100px"
196
+ />
197
+ <el-table-column label="所属合同" align="center" width="160px">
198
+ <template slot-scope="scope">
199
+ <span>{{ scope.row.contractNoList.join() }}</span>
200
+ </template>
201
+ </el-table-column>
202
+
203
+ <el-table-column
204
+ label="船公司"
205
+ align="center"
206
+ prop="shippingCompany"
207
+ width="160px"
208
+ show-overflow-tooltip
209
+ >
210
+ <template slot-scope="scope">
211
+ <dict-tag
212
+ :options="dict.type.shipping_company"
213
+ :value="scope.row.shippingCompany"
214
+ />
215
+ </template>
216
+ </el-table-column>
217
+ <el-table-column
218
+ label="订舱号"
219
+ align="center"
220
+ prop="bookingNo"
221
+ width="130"
222
+ />
223
+ <el-table-column
224
+ label="提单号"
225
+ align="center"
226
+ prop="billOfLadingNo"
227
+ width="130"
228
+ />
229
+ <el-table-column
230
+ label="目的港"
231
+ align="center"
232
+ prop="destinationPort"
233
+ width="150"
234
+ />
235
+ <el-table-column
236
+ label="预计离港日期"
237
+ align="center"
238
+ prop="etd"
239
+ width="180"
240
+ >
241
+ <template slot-scope="scope">
242
+ <span>{{ parseTime(scope.row.etd, "{y}-{m}-{d}") }}</span>
243
+ </template>
244
+ </el-table-column>
245
+ <el-table-column
246
+ label="预计到港日期"
247
+ align="center"
248
+ prop="eta"
249
+ width="180"
250
+ >
251
+ <template slot-scope="scope">
252
+ <span>{{ parseTime(scope.row.eta, "{y}-{m}-{d}") }}</span>
253
+ </template>
254
+ </el-table-column>
255
+ <el-table-column
256
+ label="实际到港日"
257
+ align="center"
258
+ prop="actualArrivalDate"
259
+ width="180"
260
+ >
261
+ <template slot-scope="scope">
262
+ <span>{{
263
+ parseTime(scope.row.actualArrivalDate, "{y}-{m}-{d}")
264
+ }}</span>
265
+ </template>
266
+ </el-table-column>
267
+ <el-table-column label="备注" align="center" prop="remark" />
268
+ <el-table-column
269
+ label="操作"
270
+ align="center"
271
+ class-name="small-padding fixed-width"
272
+ width="150px"
273
+ >
274
+ <template slot-scope="scope">
275
+ <el-button
276
+ size="mini"
277
+ type="text"
278
+ icon="el-icon-view"
279
+ @click="handleDetail(scope.row)"
280
+ >详情
281
+ </el-button>
282
+ <el-button
283
+ size="mini"
284
+ type="text"
285
+ icon="el-icon-edit"
286
+ @click="handleUpdate(scope.row)"
287
+ v-loading.fullscreen.lock="fullscreenLoading"
288
+ v-hasPermi="['biz:shipment:edit']"
289
+ >修改</el-button
290
+ >
291
+ <el-button
292
+ size="mini"
293
+ type="text"
294
+ icon="el-icon-delete"
295
+ @click="handleDelete(scope.row)"
296
+ v-hasPermi="['biz:shipment:remove']"
297
+ >删除</el-button
298
+ >
299
+ </template>
300
+ </el-table-column>
301
+ </el-table>
302
+
303
+ <pagination
304
+ v-show="total > 0"
305
+ :total="total"
306
+ :page.sync="queryParams.pageNum"
307
+ :limit.sync="queryParams.pageSize"
308
+ @pagination="getList"
309
+ />
310
+
311
+ <!-- 添加或修改装运对话框 -->
312
+ <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
313
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px">
314
+ <el-form-item label="船公司" prop="shippingCompany">
315
+ <el-select
316
+ v-model="form.shippingCompany"
317
+ placeholder="请选择船公司"
318
+ clearable
319
+ size="small"
320
+ >
321
+ <el-option
322
+ v-for="dict in dict.type.shipping_company"
323
+ :key="dict.value"
324
+ :label="dict.label"
325
+ :value="dict.value"
326
+ />
327
+ </el-select>
328
+ </el-form-item>
329
+ <el-form-item label="订舱号" prop="bookingNo">
330
+ <el-input v-model="form.bookingNo" placeholder="请输入订舱号" />
331
+ </el-form-item>
332
+ <el-form-item label="提单号" prop="billOfLadingNo">
333
+ <el-input v-model="form.billOfLadingNo" placeholder="请输入提单号" />
334
+ </el-form-item>
335
+ <el-form-item label="目的港" prop="destinationPort">
336
+ <el-input v-model="form.destinationPort" placeholder="请输入目的港" />
337
+ </el-form-item>
338
+ <el-form-item label="预计离港日" prop="etd">
339
+ <el-date-picker
340
+ clearable
341
+ size="small"
342
+ v-model="form.etd"
343
+ type="date"
344
+ value-format="yyyy-MM-dd HH:mm:ss"
345
+ placeholder="请选择预计离港日期"
346
+ >
347
+ </el-date-picker>
348
+ </el-form-item>
349
+ <el-form-item label="预计到港日" prop="eta">
350
+ <el-date-picker
351
+ clearable
352
+ size="small"
353
+ v-model="form.eta"
354
+ type="date"
355
+ value-format="yyyy-MM-dd HH:mm:ss"
356
+ placeholder="请选择预计到港日期"
357
+ >
358
+ </el-date-picker>
359
+ </el-form-item>
360
+ <el-form-item label="实际到港日" prop="actualArrivalDate">
361
+ <el-date-picker
362
+ clearable
363
+ size="small"
364
+ v-model="form.actualArrivalDate"
365
+ type="date"
366
+ value-format="yyyy-MM-dd HH:mm:ss"
367
+ placeholder="请选择实际到港日"
368
+ >
369
+ </el-date-picker>
370
+ </el-form-item>
371
+ <el-form-item label="备注" prop="remark">
372
+ <el-input v-model="form.remark" placeholder="请输入备注" />
373
+ </el-form-item>
374
+ </el-form>
375
+ <div slot="footer" class="dialog-footer">
376
+ <el-button type="primary" @click="submitForm">确 定</el-button>
377
+ <el-button @click="cancel">取 消</el-button>
378
+ </div>
379
+ </el-dialog>
380
+
381
+ <!-- 生成尾款发票对话框 -->
382
+ <el-dialog
383
+ :title="title"
384
+ :visible.sync="generateFinalInvoiceOpen"
385
+ width="500px"
386
+ append-to-body
387
+ >
388
+ {{
389
+ "报价类型为" +
390
+ generateFinalInvoiceForm.quoteType +
391
+ ",确认用这这个装运单生成尾款发票"
392
+ }}
393
+
394
+ <div slot="footer" class="dialog-footer">
395
+ <el-form :model="generateFinalInvoiceForm" label-width="100px">
396
+ <el-form-item
397
+ label="临时价格"
398
+ v-if="generateFinalInvoiceForm.quoteType !== 'FIXED'"
399
+ >
400
+ <el-input
401
+ v-model="generateFinalInvoiceForm.pointPrice"
402
+ placeholder="请输入临时价格"
403
+ size="samll"
404
+ />
405
+ </el-form-item>
406
+ </el-form>
407
+ <el-button type="primary" @click="submitGenerateFinalInvoiceForm"
408
+ >确 定</el-button
409
+ >
410
+ <el-button @click="cancelgenerateFinalInvoiceForm">取 消</el-button>
411
+ </div>
412
+ </el-dialog>
413
+
414
+ <!-- 查看详情对话框 -->
415
+ <shipment-detail ref="shipmentDetail" />
416
+
417
+ <gen-shipment
418
+ @closeFullscreenLoading="closeFullscreenLoading"
419
+ @openFullscreenLoading="openFullscreenLoading"
420
+ ref="genShipment"
421
+ @refresh="getList"
422
+ />
423
+ </div>
424
+ </template>
425
+
426
+ <script>
427
+ import {
428
+ listBizShipment,
429
+ getBizShipment,
430
+ delBizShipment,
431
+ addBizShipment,
432
+ updateBizShipment,
433
+ updateWithContainerAndInvoice,
434
+ } from "../../../api/biz/bizShipment";
435
+ import { generateFinalInvoiceByShipmentId } from "../../../api/biz/bizInvoice";
436
+ import ShipmentDetail from "./detail.vue";
437
+ import GenShipment from "./gen.vue";
438
+
439
+ export default {
440
+ name: "BizShipment",
441
+ components: {
442
+ ShipmentDetail,
443
+ GenShipment,
444
+ },
445
+ dicts: ["shipping_company"],
446
+ data() {
447
+ return {
448
+ // 遮罩层
449
+ loading: true,
450
+ // 选中数组
451
+ ids: [],
452
+ // 非单个禁用
453
+ single: true,
454
+ // 非多个禁用
455
+ multiple: true,
456
+ // 显示搜索条件
457
+ showSearch: true,
458
+ // 总条数
459
+ total: 0,
460
+ // 装运表格数据
461
+ bizShipmentList: [],
462
+ // 弹出层标题
463
+ title: "",
464
+ //是否显示生成尾款发票弹出层
465
+ generateFinalInvoiceOpen: false,
466
+ // 是否显示弹出层
467
+ open: false,
468
+ // 查询参数
469
+ queryParams: {
470
+ pageNum: 1,
471
+ pageSize: 10,
472
+ shippingCompany: null,
473
+ bookingNo: null,
474
+ billOfLadingNo: null,
475
+ destinationPort: null,
476
+ etd: null,
477
+ eta: null,
478
+ actualArrivalDate: null,
479
+ orderByColumn: "shipmentId",
480
+ isAsc: "desc",
481
+ },
482
+ // 表单参数
483
+ form: {},
484
+ //生成尾款发票参数
485
+ generateFinalInvoiceForm: {},
486
+ // 表单校验
487
+ rules: {
488
+ createTime: [
489
+ { required: true, message: "创建时间不能为空", trigger: "blur" },
490
+ ],
491
+ },
492
+ fullscreenLoading: false,
493
+ //是否重新生成发票
494
+ reGenerateSwitch: false,
495
+ //
496
+ shipment: null,
497
+ };
498
+ },
499
+ created() {
500
+ this.getList();
501
+ },
502
+ methods: {
503
+ //重新生成尾款发票
504
+ reGenerateFinalInvoice() {
505
+ this.reset();
506
+ const shipmentId = this.ids;
507
+ getBizShipment(shipmentId).then((response) => {
508
+ this.generateFinalInvoiceForm.shipmentId = shipmentId[0];
509
+ this.generateFinalInvoiceForm.bookingNo = response.data.bookingNo;
510
+ this.generateFinalInvoiceForm.quoteType = response.data.quoteType;
511
+ this.generateFinalInvoiceForm.saleInvoice = response.data.saleInvoice;
512
+ this.generateFinalInvoiceOpen = true;
513
+ this.reGenerateSwitch = true;
514
+ this.title = "重新生成尾款发票";
515
+ });
516
+ },
517
+ tableRowClassName({ row, rowIndex }) {
518
+ var eta = new Date(row.eta);
519
+ if (new Date().getTime() - 432000000 > eta.getTime()) {
520
+ return "warning-row";
521
+ }
522
+ return "";
523
+ },
524
+ //查看详情
525
+ handleDetail(row) {
526
+ this.$refs.shipmentDetail.handleShow(row);
527
+ },
528
+ /** 提交生成尾款发票 */
529
+ submitGenerateFinalInvoiceForm() {
530
+ this.generateFinalInvoiceOpen = false;
531
+ this.loading = true;
532
+ if (this.reGenerateSwitch == true) {
533
+ updateWithContainerAndInvoice(this.generateFinalInvoiceForm).then(
534
+ (res) => {
535
+ this.loading = false;
536
+ this.reGenerateSwitch == false;
537
+ this.$message.success("更新尾款发票成功");
538
+ }
539
+ );
540
+ } else {
541
+ generateFinalInvoiceByShipmentId(this.generateFinalInvoiceForm)
542
+ .then((res) => {
543
+ this.loading = false;
544
+ this.$message.success("生成尾款发票成功");
545
+ this.$router.push({
546
+ path: "/jxxg/invoice",
547
+ });
548
+ })
549
+ .catch((err) => {
550
+ this.loading = false;
551
+ });
552
+ }
553
+ },
554
+ /** 生成尾款发票按钮操作 */
555
+ handleGenerateFinalInvoice(row) {
556
+ this.reset();
557
+ const shipmentId = row.shipmentId || this.ids;
558
+ getBizShipment(shipmentId).then((response) => {
559
+ this.generateFinalInvoiceForm.shipmentId = shipmentId[0];
560
+ this.generateFinalInvoiceForm.quoteType = response.data.quoteType;
561
+ this.generateFinalInvoiceOpen = true;
562
+ this.title = "生成临时尾款发票";
563
+ });
564
+ },
565
+ /** 查询装运列表 */
566
+ getList() {
567
+ this.loading = true;
568
+ listBizShipment(this.queryParams).then((response) => {
569
+ this.bizShipmentList = response.rows;
570
+ this.total = response.total;
571
+ this.loading = false;
572
+ });
573
+ },
574
+ // 取消按钮
575
+ cancel() {
576
+ this.open = false;
577
+ this.reset();
578
+ },
579
+ cancelgenerateFinalInvoiceForm() {
580
+ this.generateFinalInvoiceOpen = false;
581
+ this.reset();
582
+ },
583
+ // 表单重置
584
+ reset() {
585
+ this.form = {
586
+ shipmentId: null,
587
+ shippingCompany: null,
588
+ bookingNo: null,
589
+ billOfLadingNo: null,
590
+ destinationPort: null,
591
+ etd: null,
592
+ eta: null,
593
+ actualArrivalDate: null,
594
+ remark: null,
595
+ createTime: null,
596
+ updateTime: null,
597
+ };
598
+ this.generateFinalInvoiceForm = {
599
+ shipmentId: null,
600
+ pointPrice: null,
601
+ quoteType: null,
602
+ };
603
+ this.resetForm("form");
604
+ },
605
+ /** 搜索按钮操作 */
606
+ handleQuery() {
607
+ this.queryParams.pageNum = 1;
608
+ this.getList();
609
+ },
610
+ /** 重置按钮操作 */
611
+ resetQuery() {
612
+ this.resetForm("queryForm");
613
+ this.handleQuery();
614
+ },
615
+ // 多选框选中数据
616
+ handleSelectionChange(selection) {
617
+ this.ids = selection.map((item) => item.shipmentId);
618
+ this.single = selection.length !== 1;
619
+ this.multiple = !selection.length;
620
+ this.shipment = selection[0];
621
+ },
622
+ /** 新增按钮操作 */
623
+ handleAdd() {
624
+ this.reset();
625
+ this.open = true;
626
+ this.title = "添加装运";
627
+ },
628
+ /** 修改按钮操作 */
629
+ handleUpdate(row) {
630
+ console.log(row);
631
+ const shipment = this.shipment || row;
632
+ console.log(shipment);
633
+ this.$refs.genShipment.handleUpdate(shipment);
634
+ },
635
+ openFullscreenLoading() {
636
+ this.fullscreenLoading = true;
637
+ },
638
+ closeFullscreenLoading() {
639
+ this.fullscreenLoading = false;
640
+ },
641
+ /** 提交按钮 */
642
+ submitForm() {
643
+ this.$refs["form"].validate((valid) => {
644
+ if (valid) {
645
+ if (this.form.shipmentId != null) {
646
+ updateBizShipment(this.form).then((response) => {
647
+ this.$modal.msgSuccess("修改成功");
648
+ this.open = false;
649
+ this.getList();
650
+ });
651
+ } else {
652
+ addBizShipment(this.form).then((response) => {
653
+ this.$modal.msgSuccess("新增成功");
654
+ this.open = false;
655
+ this.getList();
656
+ });
657
+ }
658
+ }
659
+ });
660
+ },
661
+ /** 删除按钮操作 */
662
+ handleDelete(row) {
663
+ const shipmentIds = row.shipmentId || this.ids;
664
+ this.$modal
665
+ .confirm('是否确认删除装运编号为"' + shipmentIds + '"的数据项?')
666
+ .then(function () {
667
+ return delBizShipment(shipmentIds);
668
+ })
669
+ .then(() => {
670
+ this.getList();
671
+ this.$modal.msgSuccess("删除成功");
672
+ })
673
+ .catch(() => {});
674
+ },
675
+ /** 导出按钮操作 */
676
+ handleExport() {
677
+ this.download(
678
+ "biz/shipment/export",
679
+ {
680
+ ...this.queryParams,
681
+ },
682
+ `bizShipment_${new Date().getTime()}.xlsx`
683
+ );
684
+ },
685
+ },
686
+ };
687
+ </script>
688
+ <style lang="scss">
689
+ .el-table .warning-row {
690
+ background: rgb(255, 241, 215);
691
+ }
692
+
693
+ .el-table .success-row {
694
+ background: #f0f9eb;
695
+ }
696
+ </style>