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,559 @@
1
+ <template>
2
+ <div>
3
+ <div v-if="form && form.deliveryCompanyId != null">
4
+ <div class="info" id="printPdf" v-if="!printModel">
5
+ <el-form :model="form" ref="form" size="mini" :rules="rules">
6
+ <el-row>
7
+ <el-col :span="22">
8
+ <div class="sub-title mb20">Consignee Information</div>
9
+ </el-col>
10
+ <el-col :span="2">
11
+ <el-button type="text" @click="editBill">{{$t('contractDetail.edit')}}</el-button>
12
+ </el-col>
13
+ </el-row>
14
+ <el-row>
15
+ <el-col :span="8">
16
+ <el-form-item label="Company:">
17
+ {{
18
+ this.form.deliveryCompany
19
+ ? this.form.deliveryCompany.companyEnglishName
20
+ : ""
21
+ }}
22
+ </el-form-item>
23
+ </el-col>
24
+ <el-col :span="8">
25
+ <el-form-item label="Tax ID:">
26
+ {{
27
+ this.form.deliveryCompany
28
+ ? this.form.deliveryCompany.taxNumber
29
+ : ""
30
+ }}
31
+ </el-form-item>
32
+ </el-col>
33
+ <el-col :span="8">
34
+ <el-form-item label="Address:">
35
+ {{
36
+ this.form.deliveryCompany
37
+ ? this.form.deliveryCompany.address
38
+ : ""
39
+ }}
40
+ </el-form-item>
41
+ </el-col>
42
+ </el-row>
43
+ <el-row>
44
+ <el-col :span="8">
45
+ <el-form-item label="Contacts:">
46
+ {{
47
+ this.form.deliveryCompany
48
+ ? this.form.deliveryCompany.contact
49
+ : ""
50
+ }}
51
+ </el-form-item>
52
+ </el-col>
53
+ <el-col :span="8">
54
+ <el-form-item label="Phone Number:">
55
+ {{
56
+ this.form.deliveryCompany &&
57
+ this.form.deliveryCompany.phoneNumber &&
58
+ this.form.deliveryCompany.phoneNumber.length > 0
59
+ ? this.form.deliveryCompany.phoneNumber.join("/")
60
+ : ""
61
+ }}
62
+ </el-form-item>
63
+ </el-col>
64
+ </el-row>
65
+ <el-row>
66
+ <el-form-item label="Email:">
67
+ {{
68
+ this.form.deliveryCompany &&
69
+ this.form.deliveryCompany.email &&
70
+ this.form.deliveryCompany.email.length > 0
71
+ ? this.form.deliveryCompany.email.join("/")
72
+ : ""
73
+ }}
74
+ </el-form-item>
75
+ </el-row>
76
+
77
+ <el-divider></el-divider>
78
+ <div class="sub-title mb20">Notify Information</div>
79
+ <el-row>
80
+ <el-col :span="8">
81
+ <el-form-item label="Company:">
82
+ {{
83
+ this.form.notifierCompany
84
+ ? this.form.notifierCompany.companyEnglishName
85
+ : ""
86
+ }}
87
+ </el-form-item>
88
+ </el-col>
89
+ <el-col :span="8">
90
+ <el-form-item label="Tax ID:">
91
+ {{
92
+ this.form.notifierCompany
93
+ ? this.form.notifierCompany.taxNumber
94
+ : ""
95
+ }}
96
+ </el-form-item>
97
+ </el-col>
98
+ <el-col :span="8">
99
+ <el-form-item label="Address:">
100
+ {{
101
+ this.form.notifierCompany
102
+ ? this.form.notifierCompany.address
103
+ : ""
104
+ }}
105
+ </el-form-item>
106
+ </el-col>
107
+ </el-row>
108
+
109
+ <el-row>
110
+ <el-col :span="8">
111
+ <el-form-item label="Contacts:">
112
+ {{
113
+ this.form.notifierCompany
114
+ ? this.form.notifierCompany.contact
115
+ : ""
116
+ }}
117
+ </el-form-item>
118
+ </el-col>
119
+ <el-col :span="8">
120
+ <el-form-item label="Phone Number:">
121
+ {{
122
+ this.form.notifierCompany &&
123
+ this.form.notifierCompany.phoneNumber &&
124
+ this.form.notifierCompany.phoneNumber.length > 0
125
+ ? this.form.notifierCompany.phoneNumber.join("/")
126
+ : ""
127
+ }}
128
+ </el-form-item>
129
+ </el-col>
130
+ <el-col :span="8"></el-col>
131
+ </el-row>
132
+
133
+ <el-row>
134
+ <el-form-item label="Email:">
135
+ {{
136
+ this.form.notifierCompany &&
137
+ this.form.notifierCompany.email &&
138
+ this.form.notifierCompany.email.length > 0
139
+ ? this.form.notifierCompany.email.join("/")
140
+ : ""
141
+ }}
142
+ </el-form-item>
143
+ </el-row>
144
+ <el-divider></el-divider>
145
+ <div class="sub-title mb20">Other Information</div>
146
+
147
+ <el-row>
148
+ <el-row
149
+ v-for="(buyCompanyBillGood, index) in form.buyerCompanyBillGoods"
150
+ :key="index"
151
+ class="mt5"
152
+ >
153
+ <el-col :span="3">
154
+ <div
155
+ style="
156
+ height: 26px;
157
+ margin-top: -1px;
158
+ text-align: center;
159
+ line-height: 28px;
160
+ font-size: 14px;
161
+ "
162
+ >
163
+ {{ (index == 0 ? "Preferred " : "Next ") + (index + 1) }}
164
+ </div>
165
+ </el-col>
166
+ <el-col :span="5">
167
+ <el-form-item label="Product">
168
+ {{ buyCompanyBillGood.goodsName }}
169
+ </el-form-item>
170
+ </el-col>
171
+ <el-col :span="5">
172
+ <el-form-item label="HS Code">
173
+ {{ buyCompanyBillGood.hsCode }}
174
+ </el-form-item>
175
+ </el-col>
176
+ </el-row>
177
+ </el-row>
178
+
179
+ <el-form-item label="port of destination:">
180
+ {{ contract.destination }}
181
+ </el-form-item>
182
+
183
+ <el-form-item label="Shipping mark:">
184
+ {{ form.shippingMark }}
185
+ </el-form-item>
186
+
187
+ <el-form-item label="Remark:" prop="blRemark">
188
+ {{ form.blRemark }}
189
+ </el-form-item>
190
+ </el-form>
191
+ </div>
192
+ <div class="footer" v-if="!printModel">
193
+ <el-button type="primary" @click="handleExportPdf()">
194
+ Export ( PDF format)
195
+ </el-button>
196
+ </div>
197
+
198
+ <div class="billPdf" v-if="printModel">
199
+ <bill-pdf :contract="this.contract" :deal="this.form"></bill-pdf>
200
+ </div>
201
+ </div>
202
+ <div v-else>
203
+ <div style="text-align: center; margin-top: 50px">
204
+ <svg-icon icon-class="un-submit" style="height: 100px; width: 100px" />
205
+ </div>
206
+ <div
207
+ style="
208
+ text-align: center;
209
+ margin-top: 20px;
210
+ font-weight: bold;
211
+ font-size: 25px;
212
+ "
213
+ >
214
+ The buyer has not provided the required Bill of Lading information.
215
+ </div>
216
+ <div
217
+ style="
218
+ margin-left: 50px;
219
+ margin-right: 50px;
220
+ color: grey;
221
+ font-size: 25px;
222
+ font-weight: bold;
223
+ text-align: center;
224
+ "
225
+ >
226
+ Once the buyer submits the Bill of Lading information, you will be able
227
+ to view it at this location.
228
+ </div>
229
+ </div>
230
+
231
+ <edit-bill ref="editBill" @edit="edit"></edit-bill>
232
+ </div>
233
+ </template>
234
+
235
+ <script>
236
+ import {
237
+ getBizDealRecordByAskId,
238
+ updateBizDealRecord,
239
+ } from "../../../api/biz/bizDealRecord";
240
+ import { exportPdf } from "../../../utils/pdf";
241
+ import { listBizContractCompany } from "../../../api/biz/bizContractCompany";
242
+ import BillPdf from "./billPdf.vue";
243
+ import { listCompanyBillGoods } from "../../../api/biz/bizCompanyBillGoods";
244
+ import EditBill from "./editBill.vue";
245
+ export default {
246
+ name: "BillInfo",
247
+ props: {
248
+ contract: {
249
+ type: Object,
250
+ default: null,
251
+ },
252
+ },
253
+ components: { BillPdf, EditBill },
254
+ data() {
255
+ return {
256
+ // 遮罩层
257
+ loading: true,
258
+ // 弹出层标题
259
+ title: "",
260
+ // 是否显示弹出层
261
+ open: false,
262
+ // 表单参数
263
+ form: {
264
+ //买家公司提单货物名称
265
+ buyerCompanyBillGoods: [
266
+ {
267
+ goodsName: "",
268
+ hsCode: "",
269
+ },
270
+ ],
271
+ },
272
+ printModel: false,
273
+ //
274
+ deliveryCompanyList: [],
275
+ //
276
+ notifierCompanyList: [],
277
+ //
278
+ billGoodsList: [],
279
+ //
280
+ contractId: null,
281
+ //
282
+ dealId: null,
283
+ rules: {
284
+ shippingMark: [{ required: true, trigger: "blur" }],
285
+ deliveryCompanyId: [{ required: true, trigger: "blur" }],
286
+ notifierCompanyId: [{ required: true, trigger: "blur" }],
287
+ goodsName: [{ required: true, trigger: "blur" }],
288
+ },
289
+ };
290
+ },
291
+ created() {
292
+ const { contractId, printModel } = this.$route.query;
293
+ this.contractId = contractId;
294
+ this.getDealRecord(this.contract.askId);
295
+ if (printModel == 1) {
296
+ this.printModel = true;
297
+ }
298
+ },
299
+ methods: {
300
+ edit() {
301
+ this.getDealRecord(this.contract.askId);
302
+ },
303
+ editBill() {
304
+ this.$refs.editBill.handleEdit(
305
+ this.contract.contractId,
306
+ this.form.dealId
307
+ );
308
+ },
309
+ //子公司更新
310
+ changeSubCompanyList() {
311
+ this.getContractCompanyList(this.form.buyerCompanyId);
312
+ },
313
+ //子组件更新
314
+ changeBillGoods() {
315
+ this.getCompanyBillGoods(this.form.buyerCompanyId);
316
+ },
317
+ //
318
+ handleBillGoods(companyId) {
319
+ this.$refs.billGoods.handleShow(companyId);
320
+ },
321
+ //选中提单货物时
322
+ changeBillGood(val, index) {
323
+ const billGood = this.billGoodsList.find((i) => i.goodsName == val);
324
+ this.form.buyerCompanyBillGoods[index].hsCode = billGood.hsCode;
325
+ },
326
+ //添加提单货物
327
+ addBillGoods() {
328
+ this.form.buyerCompanyBillGoods.push({
329
+ goodsName: "",
330
+ hsCode: "",
331
+ });
332
+ },
333
+ //删除提单货物
334
+ deleteBillGoods(index) {
335
+ this.form.buyerCompanyBillGoods.splice(index, 1);
336
+ },
337
+ //获取公司提单货物
338
+ getCompanyBillGoods(companyId) {
339
+ listCompanyBillGoods({ companyId: companyId }).then((res) => {
340
+ const billGoodsList = res.rows;
341
+ this.billGoodsList = billGoodsList;
342
+ if (!this.form.buyerCompanyBillGoods) {
343
+ const defaultBillGoods =
344
+ billGoodsList.filter((item) => item.defaultFlag).length > 0
345
+ ? billGoodsList.filter((item) => item.defaultFlag)[0]
346
+ : null;
347
+ this.form.buyerCompanyBillGoods.push({
348
+ goodsName: defaultBillGoods.goodsName,
349
+ hsCode: defaultBillGoods.hsCode,
350
+ });
351
+ }
352
+ });
353
+ },
354
+ //更改收货人或者通知人公司时 相应显示变更
355
+ changeSubCompany(val, type) {
356
+ if (type == "delivery") {
357
+ this.form.deliveryCompany = this.deliveryCompanyList.filter(
358
+ (item) => item.contractCompanyId == val
359
+ )[0];
360
+ }
361
+ if (type == "notifier") {
362
+ this.form.notifierCompany = this.notifierCompanyList.filter(
363
+ (item) => item.contractCompanyId == val
364
+ )[0];
365
+ }
366
+ },
367
+ //获取收货人公司与通知人公司
368
+ getContractCompanyList(companyId) {
369
+ listBizContractCompany({ companyId: companyId }).then((res) => {
370
+ const contractCompanyList = res.rows;
371
+ this.deliveryCompanyList = contractCompanyList.filter(
372
+ (item) => item.companyType == "delivery"
373
+ );
374
+ this.notifierCompanyList = contractCompanyList.filter(
375
+ (item) => item.companyType == "notifier"
376
+ );
377
+
378
+ const defaultDeliveryCompany = this.deliveryCompanyList.find(
379
+ (item) => item.defaultFlag
380
+ );
381
+
382
+ const notifierDeliveryCompany = this.notifierCompanyList.find(
383
+ (item) => item.defaultFlag
384
+ );
385
+ //成交没收货人公司取默认 否则取收货人公司信息
386
+ if (!this.form.deliveryCompanyId && defaultDeliveryCompany) {
387
+ this.form.deliveryCompanyId =
388
+ defaultDeliveryCompany.contractCompanyId;
389
+ this.form.deliveryCompany = defaultDeliveryCompany;
390
+ } else {
391
+ const deliveryCompany = contractCompanyList.find(
392
+ (item) => item.contractCompanyId == this.form.deliveryCompanyId
393
+ );
394
+ this.$set(this.form, "deliveryCompany", deliveryCompany);
395
+ }
396
+
397
+ //成交没通知人公司取默认 否则取通知人公司信息
398
+ if (!this.form.notifierCompanyId && notifierDeliveryCompany) {
399
+ this.form.notifierCompanyId =
400
+ notifierDeliveryCompany.contractCompanyId;
401
+ this.form.notifierCompany = notifierDeliveryCompany;
402
+ } else {
403
+ const notifierCompany = contractCompanyList.find(
404
+ (item) => item.contractCompanyId == this.form.notifierCompanyId
405
+ );
406
+ this.$set(this.form, "notifierCompany", notifierCompany);
407
+ }
408
+ });
409
+ },
410
+ // 表单重置
411
+ reset() {
412
+ this.form = {
413
+ dealId: null,
414
+ dealNo: null,
415
+ askId: null,
416
+ askName: null,
417
+ askNameZh: null,
418
+ market: null,
419
+ descriptions: null,
420
+ descriptionsZh: null,
421
+ askExpireAt: null,
422
+ sellerAccount: null,
423
+ sellerCompanyId: null,
424
+ sellerCompanyName: null,
425
+ sellerCompanyAddress: null,
426
+ sellerFirstname: null,
427
+ sellerLastname: null,
428
+ sellerEmail: null,
429
+ sellerDestination: null,
430
+ sellerPhoneNumber: null,
431
+ sellerPaymentTerm: null,
432
+ sellerOtherPaymentTerm: null,
433
+ sellerFee: null,
434
+ sellerTotalPrice: null,
435
+ sellerUnitPrice: null,
436
+ totalWeight: null,
437
+ terms: null,
438
+ advanceRatio: null,
439
+ contactAccountId: null,
440
+ contactFirstname: null,
441
+ contactLastname: null,
442
+ contactEmail: null,
443
+ contactPhoneNumber: null,
444
+ buyerAccountId: null,
445
+ buyerEmail: null,
446
+ buyerCompanyId: null,
447
+ buyerFirstname: null,
448
+ buyerLastname: null,
449
+ buyerCompanyName: null,
450
+ buyerCompanyNameCn: null,
451
+ buyerCompanyAddress: null,
452
+ buyerPhoneNumber: null,
453
+ buyerTotalPrice: null,
454
+ buyerUnitPrice: null,
455
+ buyerDestination: null,
456
+ buyerPaymentTerm: null,
457
+ buyerOtherPaymentTerm: null,
458
+ buyerFee: null,
459
+ fixedQuotedPrice: null,
460
+ dynamicQuotedPrice: null,
461
+ quoteType: null,
462
+ paymentType: null,
463
+ cmxCu: null,
464
+ lmeCu: null,
465
+ al: null,
466
+ zn: null,
467
+ sn: null,
468
+ pb: null,
469
+ ni: null,
470
+ dealTime: null,
471
+ shipmentDays: null,
472
+ preferredQuoteMethod: null,
473
+ originCertificateFlag: null,
474
+ customsRejectionFlag: null,
475
+ containerNumber: null,
476
+ warnFlag: null,
477
+ contractState: null,
478
+ pricingRight: null,
479
+ deliveryCompanyId: null,
480
+ notifierCompanyId: null,
481
+ shippingMark: null,
482
+ blRemark: null,
483
+ buyerCompanyBillGoods: null,
484
+ };
485
+ this.resetForm("form");
486
+ },
487
+ getDealRecord(askId) {
488
+ this.loading = false;
489
+ this.reset();
490
+ getBizDealRecordByAskId(askId).then((response) => {
491
+ this.form = response.data;
492
+ if (this.form.buyerCompanyBillGoods) {
493
+ this.form.buyerCompanyBillGoods = JSON.parse(
494
+ this.form.buyerCompanyBillGoods
495
+ );
496
+ } else {
497
+ this.form.buyerCompanyBillGoods = [];
498
+ this.addBillGoods();
499
+ }
500
+
501
+ this.getContractCompanyList(this.form.buyerCompanyId);
502
+ this.getCompanyBillGoods(this.form.buyerCompanyId);
503
+ this.form.dealRecordDetailList.map((item) => {
504
+ if (item.imageList) {
505
+ item.askCover = item.imageList.toString();
506
+ }
507
+ });
508
+ this.loading = true;
509
+ });
510
+ },
511
+ /** 提交按钮 */
512
+ submitForm() {
513
+ this.$refs["form"].validate((valid) => {
514
+ if (valid) {
515
+ if (this.form.dealId != null) {
516
+ var deal = JSON.parse(JSON.stringify(this.form));
517
+ deal.buyerCompanyBillGoods = JSON.stringify(
518
+ deal.buyerCompanyBillGoods
519
+ );
520
+ updateDealRecord(deal).then((response) => {
521
+ this.$modal.msgSuccess("保存成功");
522
+ });
523
+ }
524
+ }
525
+ });
526
+ },
527
+ //设置打印model为true
528
+ setPrintModel(val) {
529
+ this.printModel = val;
530
+ return Promise.resolve();
531
+ },
532
+ /** 下载 */
533
+ handleExportPdf() {
534
+ this.setPrintModel(true)
535
+ .then(() => {
536
+ exportPdf(".billPdf", "bill");
537
+ })
538
+ .then(() => {
539
+ this.printModel = false;
540
+ });
541
+ },
542
+ },
543
+ };
544
+ </script>
545
+ <style lang="scss" scoped>
546
+ .info {
547
+ border: 1px solid #606676;
548
+ padding: 20px;
549
+
550
+ .sub-title {
551
+ text-align: left;
552
+ font-size: 16px;
553
+ }
554
+ }
555
+ .footer {
556
+ padding: 10px 20px;
557
+ text-align: right;
558
+ }
559
+ </style>