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,184 @@
1
+ <template>
2
+ <div class="app-container">
3
+ <!-- 添加或修改公司提单货物对话框 -->
4
+ <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
5
+ <el-form ref="form" :model="form" :rules="rules" label-width="130px">
6
+ <el-form-item :label="$t('bill.goodsName')" prop="goodsName">
7
+ <el-input v-model="form.goodsName" placeholder="请输入货物名称" />
8
+ </el-form-item>
9
+ <el-form-item :label="$t('contract.hsCode')" prop="hsCode">
10
+ <el-input v-model="form.hsCode" placeholder="请输入海关编号" />
11
+ </el-form-item>
12
+ </el-form>
13
+ <div slot="footer" class="dialog-footer">
14
+ <el-button type="primary" @click="submitForm">
15
+ {{ $t("button.confirm") }}
16
+ </el-button>
17
+ <el-button @click="cancel">{{ $t("button.cancel") }}</el-button>
18
+ </div>
19
+ </el-dialog>
20
+ </div>
21
+ </template>
22
+
23
+ <script>
24
+ import {
25
+ listCompanyBillGoods,
26
+ getCompanyBillGoods,
27
+ delCompanyBillGoods,
28
+ addCompanyBillGoods,
29
+ updateCompanyBillGoods,
30
+ } from "../../../api/biz/bizCompanyBillGoods";
31
+
32
+ export default {
33
+ name: "BillGoods",
34
+ data() {
35
+ return {
36
+ // 遮罩层
37
+ loading: true,
38
+ // 选中数组
39
+ ids: [],
40
+ // 非单个禁用
41
+ single: true,
42
+ // 非多个禁用
43
+ multiple: true,
44
+ // 显示搜索条件
45
+ showSearch: true,
46
+ // 总条数
47
+ total: 0,
48
+ // 公司提单货物表格数据
49
+ bizCompanyBillGoodsList: [],
50
+ // 弹出层标题
51
+ title: "",
52
+ // 是否显示弹出层
53
+ open: false,
54
+ // 查询参数
55
+ queryParams: {
56
+ pageNum: 1,
57
+ pageSize: 10,
58
+ companyId: null,
59
+ goodsName: null,
60
+ defaultFlag: null,
61
+ hsCode: null,
62
+ },
63
+ // 表单参数
64
+ form: {},
65
+ // 表单校验
66
+ rules: {
67
+ goodsName: [
68
+ { required: true, trigger: "blur", message: this.$t("bill.tip1") },
69
+ ],
70
+ hsCode: [
71
+ { required: true, trigger: "blur", message: this.$t("bill.tip2") },
72
+ ],
73
+ },
74
+ };
75
+ },
76
+ created() {},
77
+ methods: {
78
+ /** 查询公司提单货物列表 */
79
+ getList() {
80
+ this.loading = true;
81
+ listCompanyBillGoods(this.queryParams).then((response) => {
82
+ this.bizCompanyBillGoodsList = response.rows;
83
+ this.total = response.total;
84
+ this.loading = false;
85
+ });
86
+ },
87
+ // 取消按钮
88
+ cancel() {
89
+ this.open = false;
90
+ this.reset();
91
+ },
92
+ // 表单重置
93
+ reset() {
94
+ this.form = {
95
+ companyBillGoodsId: null,
96
+ companyId: null,
97
+ goodsName: null,
98
+ defaultFlag: null,
99
+ hsCode: null,
100
+ createTime: null,
101
+ updateTime: null,
102
+ };
103
+ this.resetForm("form");
104
+ },
105
+ /** 搜索按钮操作 */
106
+ handleQuery() {
107
+ this.queryParams.pageNum = 1;
108
+ this.getList();
109
+ },
110
+ /** 重置按钮操作 */
111
+ resetQuery() {
112
+ this.resetForm("queryForm");
113
+ this.handleQuery();
114
+ },
115
+ // 多选框选中数据
116
+ handleSelectionChange(selection) {
117
+ this.ids = selection.map((item) => item.companyBillGoodsId);
118
+ this.single = selection.length !== 1;
119
+ this.multiple = !selection.length;
120
+ },
121
+ /** 新增按钮操作 */
122
+ handleAdd(companyId) {
123
+ this.reset();
124
+ this.open = true;
125
+ this.form.companyId = companyId;
126
+ this.title = this.$t("bill.addBill");
127
+ },
128
+ /** 修改按钮操作 */
129
+ handleUpdate(row) {
130
+ this.reset();
131
+ const companyBillGoodsId = row.companyBillGoodsId || this.ids;
132
+ getCompanyBillGoods(companyBillGoodsId).then((response) => {
133
+ this.form = response.data;
134
+ this.open = true;
135
+ this.title = this.$t("bill.editBill");
136
+ });
137
+ },
138
+ /** 提交按钮 */
139
+ submitForm() {
140
+ this.$refs["form"].validate((valid) => {
141
+ if (valid) {
142
+ if (this.form.companyBillGoodsId != null) {
143
+ updateCompanyBillGoods(this.form).then((response) => {
144
+ this.$modal.msgSuccess(this.$t("button.editTip"));
145
+ this.open = false;
146
+ this.$emit("submit");
147
+ });
148
+ } else {
149
+ addCompanyBillGoods(this.form).then((response) => {
150
+ this.$modal.msgSuccess(this.$t("button.addTip"));
151
+ this.open = false;
152
+ this.$emit("submit");
153
+ });
154
+ }
155
+ }
156
+ });
157
+ },
158
+ /** 删除按钮操作 */
159
+ handleDelete(row) {
160
+ const companyBillGoodsIds = row.companyBillGoodsId || this.ids;
161
+ this.$modal
162
+ .confirm("是否确认删除该提单货物数据项?")
163
+ .then(function () {
164
+ return delCompanyBillGoods(companyBillGoodsIds);
165
+ })
166
+ .then(() => {
167
+ this.$emit("submit");
168
+ this.$modal.msgSuccess("删除成功");
169
+ })
170
+ .catch(() => {});
171
+ },
172
+ /** 导出按钮操作 */
173
+ handleExport() {
174
+ this.download(
175
+ "biz/company/bill/goods/export",
176
+ {
177
+ ...this.queryParams,
178
+ },
179
+ `bizCompanyBillGoods_${new Date().getTime()}.xlsx`
180
+ );
181
+ },
182
+ },
183
+ };
184
+ </script>
@@ -0,0 +1,337 @@
1
+ <template>
2
+ <div class="app-container">
3
+ <!-- 添加或修改合同公司记录对话框 -->
4
+ <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
5
+ <el-form ref="form" :model="form" :rules="rules" label-width="150px">
6
+ <el-row>
7
+ <el-col :span="12">
8
+ <el-form-item
9
+ :label="$t('contract.companyName')"
10
+ prop="companyEnglishName"
11
+ >
12
+ <el-input
13
+ v-model="form.companyEnglishName"
14
+ :placeholder="
15
+ $t('placeholder.enter') + $t('contract.companyName')
16
+ "
17
+ />
18
+ </el-form-item>
19
+ </el-col>
20
+ <el-col :span="12">
21
+ <el-form-item
22
+ :label="$t('contract.taxId')"
23
+ prop="taxNumber"
24
+ v-if="this.companyType !== 'contract'"
25
+ >
26
+ <el-input
27
+ v-model="form.taxNumber"
28
+ :placeholder="$t('placeholder.enter') + $t('contract.taxId')"
29
+ />
30
+ </el-form-item>
31
+ </el-col>
32
+ </el-row>
33
+ <el-row>
34
+ <el-col :span="20">
35
+ <el-form-item :label="$t('contract.companyAddress')" prop="address">
36
+ <el-input
37
+ v-model="form.address"
38
+ :placeholder="
39
+ $t('placeholder.enter') + $t('contract.companyAddress')
40
+ "
41
+ />
42
+ </el-form-item>
43
+ </el-col>
44
+ </el-row>
45
+ <el-divider></el-divider>
46
+ <el-row type="flex" justify="space-between">
47
+ <h4>{{ $t("contract.contactInfo") }}</h4>
48
+ </el-row>
49
+
50
+ <el-row>
51
+ <el-col :span="12">
52
+ <el-form-item :label="$t('contract.contact')" prop="contact">
53
+ <el-input
54
+ v-model="form.contact"
55
+ :placeholder="$t('placeholder.enter') + $t('contract.contact')"
56
+ style="width: 75%"
57
+ />
58
+ </el-form-item>
59
+ </el-col>
60
+ <el-col :span="12">
61
+ <el-form-item
62
+ :label="$t('contract.landline')"
63
+ prop="landline"
64
+ v-if="this.companyType == 'contract'"
65
+ >
66
+ <el-input
67
+ v-model="form.landline"
68
+ :placeholder="$t('placeholder.enter') + $t('contract.landline')"
69
+ style="width: 75%"
70
+ />
71
+ </el-form-item>
72
+ </el-col>
73
+ </el-row>
74
+ <el-row>
75
+ <el-col :span="12">
76
+ <!-- 循环 -->
77
+ <el-row v-for="(item, index) in form.phoneNumber" :key="index">
78
+ <el-col :span="20">
79
+ <el-form-item
80
+ :label="$t('contract.phoneNumber')"
81
+ prop="phoneNumber"
82
+ >
83
+ <el-input
84
+ v-model="form.phoneNumber[index]"
85
+ :placeholder="
86
+ $t('placeholder.enter') + $t('contract.phoneNumber')
87
+ "
88
+ ></el-input>
89
+ </el-form-item>
90
+ </el-col>
91
+ <el-col
92
+ :span="2"
93
+ style="padding-top: 5px"
94
+ v-if="companyType !== 'contract'"
95
+ >
96
+ <el-button
97
+ icon="el-icon-plus"
98
+ size="mini"
99
+ circle
100
+ class="ml5"
101
+ v-if="index === form.phoneNumber.length - 1"
102
+ @click="addArr('phoneNumber')"
103
+ ></el-button>
104
+ </el-col>
105
+ <el-col
106
+ :span="2"
107
+ style="padding-top: 5px"
108
+ :push="1"
109
+ v-if="companyType !== 'contract'"
110
+ >
111
+ <el-button
112
+ v-if="index > 0"
113
+ size="mini"
114
+ icon="el-icon-minus"
115
+ circle
116
+ @click="deleteArr('phoneNumber', index)"
117
+ ></el-button>
118
+ </el-col>
119
+ </el-row>
120
+ </el-col>
121
+ <el-col :span="12">
122
+ <!-- 循环 -->
123
+ <el-row v-for="(item, index) in form.email" :key="index">
124
+ <el-col :span="20">
125
+ <el-form-item
126
+ :label="$t('contract.email')"
127
+ :prop="'email.' + index"
128
+ :rules="rules.email"
129
+ >
130
+ <el-input
131
+ v-model="form.email[index]"
132
+ :placeholder="
133
+ $t('placeholder.enter') + $t('contract.email')
134
+ "
135
+ />
136
+ </el-form-item>
137
+ </el-col>
138
+ <el-col :span="2" style="padding-top: 5px">
139
+ <el-button
140
+ icon="el-icon-plus"
141
+ size="mini"
142
+ circle
143
+ class="ml5"
144
+ v-if="index === form.email.length - 1"
145
+ @click="addArr('email')"
146
+ ></el-button>
147
+ </el-col>
148
+ <el-col :span="2" style="padding-top: 5px" :push="1">
149
+ <el-button
150
+ v-if="index > 0"
151
+ size="mini"
152
+ icon="el-icon-minus"
153
+ circle
154
+ @click="deleteArr('email', index)"
155
+ ></el-button>
156
+ </el-col>
157
+ </el-row>
158
+ </el-col>
159
+ </el-row>
160
+
161
+ <el-form-item :label="$t('button.setDefault')" prop="defaultFlag">
162
+ <el-switch
163
+ v-model="form.defaultFlag"
164
+ active-color="#13ce66"
165
+ inactive-color="#ff4949"
166
+ ></el-switch>
167
+ </el-form-item>
168
+ </el-form>
169
+ <div slot="footer" class="dialog-footer">
170
+ <el-button type="primary" @click="submitForm">
171
+ {{ $t("button.confirm") }}
172
+ </el-button>
173
+ <el-button @click="cancel">{{ $t("button.cancel") }}</el-button>
174
+ </div>
175
+ </el-dialog>
176
+ </div>
177
+ </template>
178
+
179
+ <script>
180
+ import {
181
+ getBizContractCompany,
182
+ addBizContractCompany,
183
+ updateBizContractCompany,
184
+ } from "../../../api/biz/bizContractCompany";
185
+
186
+ export default {
187
+ name: "AddSubCompanyDialog",
188
+ data() {
189
+ return {
190
+ //父公司编号
191
+ companyId: null,
192
+ //公司类型
193
+ companyType: "",
194
+ // 遮罩层
195
+ loading: true,
196
+ // 弹出层标题
197
+ title: "",
198
+ // 是否显示弹出层
199
+ open: false,
200
+ // 表单参数
201
+ form: { email: [], phoneNumber: [] },
202
+ // 表单校验
203
+ rules: {
204
+ companyEnglishName: [
205
+ {
206
+ required: true,
207
+ message: this.$t("contract.tip7"),
208
+ trigger: "blur",
209
+ },
210
+ ],
211
+ address: [
212
+ {
213
+ required: true,
214
+ message: this.$t("contract.tip8"),
215
+ trigger: "blur",
216
+ },
217
+ ],
218
+ email: [
219
+ {
220
+ required: true,
221
+ message: this.$t("contract.tip9"),
222
+ trigger: "blur",
223
+ },
224
+ ],
225
+ taxNumber: [
226
+ {
227
+ required: true,
228
+ message: this.$t("contract.tip10"),
229
+ trigger: "blur",
230
+ },
231
+ ],
232
+ },
233
+ };
234
+ },
235
+ created() {},
236
+ methods: {
237
+ //增加手机号
238
+ addArr(type) {
239
+ this.form[type].push("");
240
+ },
241
+ //增加邮箱
242
+ deleteArr(type, index) {
243
+ this.form[type].splice(index, 1);
244
+ },
245
+ // 取消按钮
246
+ cancel() {
247
+ this.open = false;
248
+ this.reset();
249
+ },
250
+ // 表单重置
251
+ reset() {
252
+ this.form = {
253
+ contractCompanyId: null,
254
+ companyId: null,
255
+ companyName: null,
256
+ companyEnglishName: null,
257
+ address: null,
258
+ contact: null,
259
+ phoneNumber: [],
260
+ email: [],
261
+ createTime: null,
262
+ updateTime: null,
263
+ companyType: null,
264
+ defaultFlag: false,
265
+ landline: null,
266
+ taxNumber: null,
267
+ };
268
+ this.resetForm("form");
269
+ },
270
+ /** 修改按钮操作 */
271
+ handleUpdate(row) {
272
+ this.reset();
273
+ const contractCompanyId = row.contractCompanyId;
274
+ getBizContractCompany(contractCompanyId).then((response) => {
275
+ this.form = response.data;
276
+ this.companyId = row.companyId;
277
+ this.companyType = response.data.companyType;
278
+ if (this.form.phoneNumber.length <= 0) {
279
+ this.addArr("phoneNumber");
280
+ }
281
+
282
+ console.log(this.companyType);
283
+ const title =
284
+ this.companyType == "contract"
285
+ ? this.$t("button.edit") + this.$t("contract.contract")
286
+ : this.companyType == "delivery"
287
+ ? this.$t("button.edit") + this.$t("contract.consignee")
288
+ : this.companyType == "notifier"
289
+ ? this.$t("button.edit") + this.$t("contract.notifier")
290
+ : this.$t("button.edit");
291
+ this.title = title;
292
+ this.open = true;
293
+ });
294
+ },
295
+ /** 新增按钮操作 */
296
+ handleAdd(companyId, companyType) {
297
+ this.reset();
298
+ this.open = true;
299
+ this.companyType = companyType;
300
+ this.companyId = companyId;
301
+ const title =
302
+ companyType == "contract"
303
+ ? this.$t("button.add") + this.$t("contract.contract")
304
+ : companyType == "delivery"
305
+ ? this.$t("button.add") + this.$t("contract.consignee")
306
+ : companyType == "notifier"
307
+ ? this.$t("button.add") + this.$t("contract.notifier")
308
+ : this.$t("button.add");
309
+ this.addArr("phoneNumber");
310
+ this.addArr("email");
311
+ this.title = title;
312
+ },
313
+ /** 提交按钮 */
314
+ submitForm() {
315
+ this.$refs["form"].validate((valid) => {
316
+ if (valid) {
317
+ this.form.companyType = this.companyType;
318
+ this.form.companyId = this.companyId;
319
+ if (this.form.contractCompanyId != null) {
320
+ updateBizContractCompany(this.form).then((response) => {
321
+ this.$modal.msgSuccess(this.$t("button.editTip"));
322
+ this.open = false;
323
+ this.$emit("submit");
324
+ });
325
+ } else {
326
+ addBizContractCompany(this.form).then((response) => {
327
+ this.$modal.msgSuccess(this.$t("button.addTip"));
328
+ this.open = false;
329
+ this.$emit("submit");
330
+ });
331
+ }
332
+ }
333
+ });
334
+ },
335
+ },
336
+ };
337
+ </script>
@@ -0,0 +1,189 @@
1
+ <template>
2
+ <div class="app-container">
3
+ <!-- 合同详情对话框 -->
4
+ <el-dialog :title="title" :visible.sync="open" width="550px" append-to-body>
5
+ <el-form ref="form" :model="form" label-width="100px">
6
+ <el-form-item label="合同编号" v-if="form.contractType == 'purchase'">
7
+ <el-select
8
+ v-model="form.saleContractNos"
9
+ placeholder=""
10
+ multiple
11
+ filterable
12
+ remote
13
+ :remote-method="selectContract"
14
+ >
15
+ <el-option
16
+ v-for="item in this.saleContractList"
17
+ :key="item.contractId"
18
+ :label="item.contractNo"
19
+ :value="item.contractNo"
20
+ />
21
+ </el-select>
22
+ </el-form-item>
23
+
24
+ <el-form-item label="合同编号" v-if="form.contractType == 'sale'">
25
+ <el-select
26
+ v-model="form.purchaseContractNos"
27
+ placeholder=""
28
+ multiple
29
+ filterable
30
+ remote
31
+ :remote-method="selectContract"
32
+ >
33
+ <el-option
34
+ v-for="item in this.purchaseContractList"
35
+ :key="item.contractId"
36
+ :label="item.contractNo"
37
+ :value="item.contractNo"
38
+ />
39
+ </el-select>
40
+ </el-form-item>
41
+ </el-form>
42
+ <div slot="footer" class="dialog-footer">
43
+ <el-button type="primary" @click="submitForm">确 定</el-button>
44
+ <el-button @click="cancel">取 消</el-button>
45
+ </div>
46
+ </el-dialog>
47
+ </div>
48
+ </template>
49
+
50
+ <script>
51
+ import {
52
+ getBizContract,
53
+ listBizContract,
54
+ associationContract,
55
+ } from "../../../api/biz/bizContract";
56
+
57
+ export default {
58
+ name: "AssociationContract",
59
+ data() {
60
+ return {
61
+ // 遮罩层
62
+ loading: true,
63
+ // 弹出层标题
64
+ title: "",
65
+ // 是否显示弹出层
66
+ open: false,
67
+ // 表单参数
68
+ form: {},
69
+ //销售合同选项表
70
+ saleContractList: [],
71
+ //采购合同选项表
72
+ purchaseContractList: [],
73
+ };
74
+ },
75
+ created() {},
76
+ methods: {
77
+ selectContract(query) {
78
+ if (this.form.contractType == "sale") {
79
+ listBizContract({ contractType: "purchase", contractNo: query }).then(
80
+ (res) => {
81
+ this.purchaseContractList = res.rows;
82
+ }
83
+ );
84
+ } else {
85
+ listBizContract({ contractType: "sale", contractNo: query }).then(
86
+ (res) => {
87
+ this.saleContractList = res.rows;
88
+ }
89
+ );
90
+ }
91
+ },
92
+ /** 提交按钮 */
93
+ submitForm() {
94
+ associationContract(this.form).then((response) => {
95
+ this.$modal.msgSuccess("关联成功");
96
+ this.open = false;
97
+ this.$emit("refresh");
98
+ });
99
+ },
100
+ // 取消按钮
101
+ cancel() {
102
+ this.open = false;
103
+ this.reset();
104
+ },
105
+ // 表单重置
106
+ reset() {
107
+ this.form = {
108
+ contractId: null,
109
+ transactionId: null,
110
+ dealId: null,
111
+ askId: null,
112
+ askName: null,
113
+ contractNo: null,
114
+ contractType: null,
115
+ quoteType: null,
116
+ currency: null,
117
+ buyerAccountId: null,
118
+ buyCompanyId: null,
119
+ buyContractCompanyId: null,
120
+ buyCompanyName: null,
121
+ buyCompanyNameEn: null,
122
+ buyCompanyAddress: null,
123
+ supplierAccountId: null,
124
+ supplierCompanyId: null,
125
+ supplierContractCompanyId: null,
126
+ supplierCompanyName: null,
127
+ supplierCompanyNameEn: null,
128
+ supplierCompanyAddress: null,
129
+ totalWeight: null,
130
+ serviceFee: null,
131
+ serviceFeeSwitch: null,
132
+ freightTerms: null,
133
+ deposit: null,
134
+ depositDays: null,
135
+ balance: null,
136
+ balanceDays: null,
137
+ balancePaymentType: null,
138
+ balancePaymentForm: null,
139
+ loadingCountry: null,
140
+ originCountry: null,
141
+ destination: null,
142
+ numberOfContainersForTwenty: null,
143
+ numberOfContainersForForty: null,
144
+ numberOfContainersForTwentyOrForty: null,
145
+ toleranceFloat: null,
146
+ weightTolerance: null,
147
+ latestShipment: null,
148
+ livePriceSwitch: null,
149
+ livePriceDays: null,
150
+ livePriceForm: null,
151
+ livePriceUsertype: null,
152
+ requiredDocuments: null,
153
+ qualityCertificate: null,
154
+ qualityCertificateSwitch: null,
155
+ claim: null,
156
+ claimSwitch: null,
157
+ arbitration: null,
158
+ arbitrationSwitch: null,
159
+ memo: null,
160
+ memoSwitch: null,
161
+ contractState: null,
162
+ invoiceState: null,
163
+ remark: null,
164
+ imported: null,
165
+ submitFlag: null,
166
+ createTime: null,
167
+ updateTime: null,
168
+ completionTime: null,
169
+ dealTime: null,
170
+ contractStatus: "0",
171
+ contractFlag: null,
172
+ submitEndTime: null,
173
+ saleContractNos: null,
174
+ purchaseContractNos: null,
175
+ };
176
+ this.resetForm("form");
177
+ },
178
+ /** 展示按钮操作 */
179
+ handleAssociation(row) {
180
+ this.reset();
181
+ getBizContract(row.contractId).then((res) => {
182
+ this.form = res.data;
183
+ this.open = true;
184
+ this.title = "关联合同";
185
+ });
186
+ },
187
+ },
188
+ };
189
+ </script>