Showing
5 changed files
with
687 additions
and
74 deletions
src/api/system/customer-ai.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | + | ||
| 3 | +// 查询客户数据 | ||
| 4 | +/** | ||
| 5 | + * @param clientId 客户ID | ||
| 6 | + * @param ecomEntCode 电商企业代码 | ||
| 7 | + * @param ecomEntEmail 电商企业邮箱 | ||
| 8 | + * @param ecomEntName 电商企业名称 | ||
| 9 | + * @param endCreationTime 结束创建时间 | ||
| 10 | + * @param startCreationTime开始创建时间 | ||
| 11 | + * @param pageIndex * | ||
| 12 | + * @param pageSize * | ||
| 13 | + */ | ||
| 14 | +export function getCustomerList(data) { | ||
| 15 | + return request({ | ||
| 16 | + url: '/bus-customer/customers/getCustomerList', | ||
| 17 | + method: 'post', | ||
| 18 | + data: data | ||
| 19 | + }) | ||
| 20 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -30,6 +30,7 @@ | ... | @@ -30,6 +30,7 @@ |
| 30 | resize="none" | 30 | resize="none" |
| 31 | v-model="formData.cipherMachineNumber" | 31 | v-model="formData.cipherMachineNumber" |
| 32 | clearable | 32 | clearable |
| 33 | + :disabled="type == 'update'" | ||
| 33 | placeholder="" | 34 | placeholder="" |
| 34 | ></el-input> | 35 | ></el-input> |
| 35 | </Formitem> | 36 | </Formitem> |
| ... | @@ -62,6 +63,7 @@ | ... | @@ -62,6 +63,7 @@ |
| 62 | resize="none" | 63 | resize="none" |
| 63 | v-model="formData.availableUserCount" | 64 | v-model="formData.availableUserCount" |
| 64 | clearable | 65 | clearable |
| 66 | + :disabled="type == 'update'" | ||
| 65 | oninput="value=value.replace(/[^0-9]/g,'')" | 67 | oninput="value=value.replace(/[^0-9]/g,'')" |
| 66 | placeholder="" | 68 | placeholder="" |
| 67 | ></el-input> | 69 | ></el-input> | ... | ... |
src/views/customerConfig/dialog.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-dialog | ||
| 3 | + class="entryDialog classCUploadDialog" | ||
| 4 | + :title="title" | ||
| 5 | + :visible.sync="outerVisible" | ||
| 6 | + :show-close="false" | ||
| 7 | + width="40%" | ||
| 8 | + :close-on-click-modal="false" | ||
| 9 | + v-loading="loadings.dialogLoading" | ||
| 10 | + @close="close" | ||
| 11 | + > | ||
| 12 | + <div class="modelItem"> | ||
| 13 | + <el-form | ||
| 14 | + class="fedexFormStyle" | ||
| 15 | + ref="formData" | ||
| 16 | + :model="formData" | ||
| 17 | + :rules="type == 'roleChange' ? {} : rules" | ||
| 18 | + label-position="top" | ||
| 19 | + :disabled="type == 'roleChange'" | ||
| 20 | + size="small" | ||
| 21 | + > | ||
| 22 | + <el-row :gutter="5"> | ||
| 23 | + <!-- 电商企业代码 --> | ||
| 24 | + <el-col :span="8"> | ||
| 25 | + <Formitem label="电商企业代码" prop="ecomEntCode" type="edit"> | ||
| 26 | + <el-input | ||
| 27 | + type="text" | ||
| 28 | + class="inputShadow" | ||
| 29 | + id="inputInner-edit-ecomEntCode" | ||
| 30 | + resize="none" | ||
| 31 | + v-model="formData.ecomEntCode" | ||
| 32 | + clearable | ||
| 33 | + placeholder="" | ||
| 34 | + ></el-input> | ||
| 35 | + </Formitem> | ||
| 36 | + </el-col> | ||
| 37 | + <!-- 电商企业名称 --> | ||
| 38 | + <el-col :span="8"> | ||
| 39 | + <Formitem label="电商企业名称" prop="ecomEntName" type="edit"> | ||
| 40 | + <el-input | ||
| 41 | + type="text" | ||
| 42 | + class="inputShadow" | ||
| 43 | + id="inputInner-edit-ecomEntName" | ||
| 44 | + resize="none" | ||
| 45 | + v-model="formData.ecomEntName" | ||
| 46 | + clearable | ||
| 47 | + maxlength="4" | ||
| 48 | + placeholder="" | ||
| 49 | + ></el-input> | ||
| 50 | + </Formitem> | ||
| 51 | + </el-col> | ||
| 52 | + <!-- 电商企业邮箱 --> | ||
| 53 | + <el-col :span="8"> | ||
| 54 | + <Formitem label="电商企业邮箱" prop="ecomEntEmail" type="edit"> | ||
| 55 | + <el-input | ||
| 56 | + type="text" | ||
| 57 | + class="inputShadow" | ||
| 58 | + id="inputInner-edit-ecomEntEmail" | ||
| 59 | + resize="none" | ||
| 60 | + v-model="formData.ecomEntEmail" | ||
| 61 | + clearable | ||
| 62 | + maxlength="18" | ||
| 63 | + placeholder="" | ||
| 64 | + ></el-input> | ||
| 65 | + </Formitem> | ||
| 66 | + </el-col> | ||
| 67 | + </el-row> | ||
| 68 | + <el-row :gutter="5"> | ||
| 69 | + <!-- 订单申报方 --> | ||
| 70 | + <el-col :span="8"> | ||
| 71 | + <Formitem label="订单申报方" prop="declarationUnit10" type="edit"> | ||
| 72 | + <el-select | ||
| 73 | + type="text" | ||
| 74 | + id="inputInner--portCode" | ||
| 75 | + v-model="sreachFormData.portCode" | ||
| 76 | + clearable | ||
| 77 | + placeholder="" | ||
| 78 | + > | ||
| 79 | + <el-option | ||
| 80 | + v-for="(item, index) in dict.port" | ||
| 81 | + :key="index" | ||
| 82 | + :label="item" | ||
| 83 | + :value="item" | ||
| 84 | + ></el-option> | ||
| 85 | + </el-select> | ||
| 86 | + </Formitem> | ||
| 87 | + </el-col> | ||
| 88 | + <!-- DXPID --> | ||
| 89 | + <el-col :span="8"> | ||
| 90 | + <Formitem | ||
| 91 | + label="DXPID" | ||
| 92 | + prop="qingdaoDanyiUserDxpid" | ||
| 93 | + type="edit" | ||
| 94 | + > | ||
| 95 | + <el-input | ||
| 96 | + type="text" | ||
| 97 | + class="inputShadow" | ||
| 98 | + id="inputInner-edit-qingdaoDanyiUserDxpid" | ||
| 99 | + resize="none" | ||
| 100 | + v-model="formData.qingdaoDanyiUserDxpid" | ||
| 101 | + clearable | ||
| 102 | + placeholder="" | ||
| 103 | + ></el-input> | ||
| 104 | + </Formitem> | ||
| 105 | + </el-col> | ||
| 106 | + </el-row> | ||
| 107 | + <div>青岛</div> | ||
| 108 | + <el-row :gutter="5"> | ||
| 109 | + <!-- User ID --> | ||
| 110 | + <el-col :span="8"> | ||
| 111 | + <Formitem label="User ID" prop="qingdaoUserId" type="edit"> | ||
| 112 | + <el-input | ||
| 113 | + type="text" | ||
| 114 | + class="inputShadow" | ||
| 115 | + id="inputInner-edit-qingdaoUserId" | ||
| 116 | + resize="none" | ||
| 117 | + v-model="formData.qingdaoUserId" | ||
| 118 | + clearable | ||
| 119 | + placeholder="" | ||
| 120 | + ></el-input> | ||
| 121 | + </Formitem> | ||
| 122 | + </el-col> | ||
| 123 | + <!-- DXPID --> | ||
| 124 | + <el-col :span="8"> | ||
| 125 | + <Formitem label="DXPID" prop="qingdaoUserDxpid" type="edit"> | ||
| 126 | + <el-input | ||
| 127 | + type="text" | ||
| 128 | + class="inputShadow" | ||
| 129 | + id="inputInner-edit-qingdaoUserDxpid" | ||
| 130 | + resize="none" | ||
| 131 | + v-model="formData.qingdaoUserDxpid" | ||
| 132 | + clearable | ||
| 133 | + placeholder="" | ||
| 134 | + ></el-input> | ||
| 135 | + </Formitem> | ||
| 136 | + </el-col> | ||
| 137 | + <!-- Key --> | ||
| 138 | + <el-col :span="8"> | ||
| 139 | + <Formitem label="Key" prop="qingdaoKey" type="edit"> | ||
| 140 | + <el-input | ||
| 141 | + type="text" | ||
| 142 | + class="inputShadow" | ||
| 143 | + id="inputInner-edit-qingdaoKey" | ||
| 144 | + resize="none" | ||
| 145 | + v-model="formData.qingdaoKey" | ||
| 146 | + clearable | ||
| 147 | + placeholder="" | ||
| 148 | + ></el-input> | ||
| 149 | + </Formitem> | ||
| 150 | + </el-col> | ||
| 151 | + </el-row> | ||
| 152 | + <div>北京</div> | ||
| 153 | + <el-row :gutter="5"> | ||
| 154 | + <!-- DXPID --> | ||
| 155 | + <el-col :span="8"> | ||
| 156 | + <Formitem label="DXPID" prop="beijingDxpid" type="edit"> | ||
| 157 | + <el-input | ||
| 158 | + type="text" | ||
| 159 | + class="inputShadow" | ||
| 160 | + id="inputInner-edit-beijingDxpid" | ||
| 161 | + resize="none" | ||
| 162 | + v-model="formData.beijingDxpid" | ||
| 163 | + clearable | ||
| 164 | + placeholder="" | ||
| 165 | + ></el-input> | ||
| 166 | + </Formitem> | ||
| 167 | + </el-col> | ||
| 168 | + </el-row> | ||
| 169 | + <div class="uploadItem"> | ||
| 170 | + <div class="uploadbox"> | ||
| 171 | + <el-button | ||
| 172 | + size="mini" | ||
| 173 | + type="text" | ||
| 174 | + v-loading="loadings.uploadLoading" | ||
| 175 | + @click="uploadFile" | ||
| 176 | + >上传文件 | ||
| 177 | + </el-button> | ||
| 178 | + <el-upload | ||
| 179 | + class="upload-demo" | ||
| 180 | + ref="uploadFile" | ||
| 181 | + action="/manager-server/attachment/picImg" | ||
| 182 | + :http-request="fileUpload" | ||
| 183 | + :auto-upload="true" | ||
| 184 | + :show-file-list="false" | ||
| 185 | + :data="{}" | ||
| 186 | + accept=".xlsx" | ||
| 187 | + :before-upload="beforeUpload" | ||
| 188 | + :on-remove="handleRemove" | ||
| 189 | + :on-success="handleSuccess" | ||
| 190 | + :on-change="fileChange" | ||
| 191 | + :file-list="fileList" | ||
| 192 | + @clearFiles="clearFile" | ||
| 193 | + > | ||
| 194 | + </el-upload> | ||
| 195 | + </div> | ||
| 196 | + <div class="fileList" v-if="formData.file != null"> | ||
| 197 | + <div class="fileList-item"> | ||
| 198 | + <div class="uploadbox-fileName"> | ||
| 199 | + <svg-icon | ||
| 200 | + class="el-icon-user-solid" | ||
| 201 | + icon-class="exl" | ||
| 202 | + style="font-size: 18px; color: #de002e" | ||
| 203 | + /> | ||
| 204 | + <Tooltip | ||
| 205 | + :content="formData.file.name" | ||
| 206 | + :refName="formData.file.name" | ||
| 207 | + /> | ||
| 208 | + </div> | ||
| 209 | + <div class="uploadbox-option"> | ||
| 210 | + <el-popconfirm | ||
| 211 | + :title="$t('entry.upload.delTip')" | ||
| 212 | + @confirm="delTypeDFile" | ||
| 213 | + > | ||
| 214 | + <el-button slot="reference" type="text">{{ | ||
| 215 | + $t("entry.upload.del") | ||
| 216 | + }}</el-button> | ||
| 217 | + </el-popconfirm> | ||
| 218 | + </div> | ||
| 219 | + </div> | ||
| 220 | + </div> | ||
| 221 | + </div> | ||
| 222 | + </el-form> | ||
| 223 | + </div> | ||
| 224 | + <div class="dialogOption entrySave"> | ||
| 225 | + <el-button | ||
| 226 | + class="entrySaveButton" | ||
| 227 | + :disabled="loadings.submitLoading" | ||
| 228 | + @click="submit" | ||
| 229 | + >确 定</el-button | ||
| 230 | + > | ||
| 231 | + <el-button | ||
| 232 | + class="entrySaveButton" | ||
| 233 | + :disabled="loadings.uploadLoading" | ||
| 234 | + @click="close" | ||
| 235 | + >关 闭</el-button | ||
| 236 | + > | ||
| 237 | + </div> | ||
| 238 | + </el-dialog> | ||
| 239 | +</template> | ||
| 240 | + | ||
| 241 | +<script> | ||
| 242 | +import { addPortData, updatePortData } from "@/api/system/port-api.js"; | ||
| 243 | +export default { | ||
| 244 | + props: { | ||
| 245 | + outerVisible: { | ||
| 246 | + type: Boolean, | ||
| 247 | + default: false, | ||
| 248 | + }, | ||
| 249 | + title: { | ||
| 250 | + type: String, | ||
| 251 | + default: "新增口岸", | ||
| 252 | + }, | ||
| 253 | + type: { | ||
| 254 | + type: String, | ||
| 255 | + default: "", | ||
| 256 | + }, | ||
| 257 | + active: { | ||
| 258 | + type: Object, | ||
| 259 | + default: null, | ||
| 260 | + }, | ||
| 261 | + }, | ||
| 262 | + data() { | ||
| 263 | + return { | ||
| 264 | + formData: { | ||
| 265 | + declarationPortCode: "", | ||
| 266 | + declarationUnit10: "", | ||
| 267 | + declarationUnit10Inspection: "", | ||
| 268 | + declarationUnit18: "", | ||
| 269 | + declarationUnitCompanyName: "", | ||
| 270 | + dxpid: "", | ||
| 271 | + portCode: "", | ||
| 272 | + }, | ||
| 273 | + rules: { | ||
| 274 | + portCode: [ | ||
| 275 | + { | ||
| 276 | + required: true, | ||
| 277 | + trigger: "blur", | ||
| 278 | + message: "口岸代码不能为空!", | ||
| 279 | + }, | ||
| 280 | + ], | ||
| 281 | + declarationPortCode: [ | ||
| 282 | + { | ||
| 283 | + required: true, | ||
| 284 | + trigger: "blur", | ||
| 285 | + message: "申报地海关代码不能为空!", | ||
| 286 | + }, | ||
| 287 | + { | ||
| 288 | + validator: (rule, value, callback) => { | ||
| 289 | + if (value.length != 4) { | ||
| 290 | + callback("申报地海关代码必须为4位!"); | ||
| 291 | + } else { | ||
| 292 | + callback(); | ||
| 293 | + } | ||
| 294 | + }, | ||
| 295 | + trigger: "blur", | ||
| 296 | + }, | ||
| 297 | + ], | ||
| 298 | + declarationUnit18: [ | ||
| 299 | + { | ||
| 300 | + required: true, | ||
| 301 | + trigger: "blur", | ||
| 302 | + message: "申报单位(18位社会信用代码)不能为空!", | ||
| 303 | + }, | ||
| 304 | + { | ||
| 305 | + validator: (rule, value, callback) => { | ||
| 306 | + if (value.length != 18) { | ||
| 307 | + callback("18位社会信用代码必须为18位!"); | ||
| 308 | + } else { | ||
| 309 | + callback(); | ||
| 310 | + } | ||
| 311 | + }, | ||
| 312 | + trigger: "blur", | ||
| 313 | + }, | ||
| 314 | + ], | ||
| 315 | + declarationUnit10: [ | ||
| 316 | + { | ||
| 317 | + required: true, | ||
| 318 | + trigger: "blur", | ||
| 319 | + message: "申报单位(10位海关代码)不能为空!", | ||
| 320 | + }, | ||
| 321 | + { | ||
| 322 | + validator: (rule, value, callback) => { | ||
| 323 | + if (value.length != 10) { | ||
| 324 | + callback("10位海关代码必须为10位!"); | ||
| 325 | + } else { | ||
| 326 | + callback(); | ||
| 327 | + } | ||
| 328 | + }, | ||
| 329 | + trigger: "blur", | ||
| 330 | + }, | ||
| 331 | + ], | ||
| 332 | + declarationUnitCompanyName: [ | ||
| 333 | + { | ||
| 334 | + required: true, | ||
| 335 | + trigger: "blur", | ||
| 336 | + message: "申报单位 (企业名称)不能为空!", | ||
| 337 | + }, | ||
| 338 | + ], | ||
| 339 | + }, | ||
| 340 | + loadings: { | ||
| 341 | + dialogLoading: false, | ||
| 342 | + uploadLoading: false, | ||
| 343 | + submitLoading: false, | ||
| 344 | + }, | ||
| 345 | + loadingText: "", | ||
| 346 | + }; | ||
| 347 | + }, | ||
| 348 | + watch: { | ||
| 349 | + outerVisible(val) { | ||
| 350 | + if (val) { | ||
| 351 | + this.loadings.dialogLoading = false; | ||
| 352 | + if (this.type == "update") { | ||
| 353 | + this.formData = this.active; | ||
| 354 | + } | ||
| 355 | + } | ||
| 356 | + }, | ||
| 357 | + }, | ||
| 358 | + methods: { | ||
| 359 | + //查询用户信息详情 | ||
| 360 | + searchUserData(id) { | ||
| 361 | + this.loadings.dialogLoading = true; | ||
| 362 | + getUserDetailData({ id: id }) | ||
| 363 | + .then((res) => { | ||
| 364 | + if (res.code === "200") { | ||
| 365 | + this.formData = res.data; | ||
| 366 | + } else { | ||
| 367 | + this.alertWarningMsg(res.message); | ||
| 368 | + } | ||
| 369 | + this.loadings.dialogLoading = false; | ||
| 370 | + }) | ||
| 371 | + .catch((err) => { | ||
| 372 | + console.log(err); | ||
| 373 | + this.loadings.dialogLoading = false; | ||
| 374 | + }); | ||
| 375 | + }, | ||
| 376 | + //数据保存 | ||
| 377 | + submit() { | ||
| 378 | + this.loadings.dialogLoading = true; | ||
| 379 | + let obj = {}; | ||
| 380 | + if (this.type == "add") { | ||
| 381 | + this.$refs.formData.validate((valid) => { | ||
| 382 | + if (valid) { | ||
| 383 | + obj = this.formData; | ||
| 384 | + this.addApi(obj); | ||
| 385 | + } else { | ||
| 386 | + this.loadings.dialogLoading = false; | ||
| 387 | + } | ||
| 388 | + }); | ||
| 389 | + } else if (this.type == "update") { | ||
| 390 | + this.$refs.formData.validate((valid) => { | ||
| 391 | + if (valid) { | ||
| 392 | + obj = this.formData; | ||
| 393 | + this.updateapi(obj); | ||
| 394 | + } else { | ||
| 395 | + this.loadings.dialogLoading = false; | ||
| 396 | + } | ||
| 397 | + }); | ||
| 398 | + } | ||
| 399 | + }, | ||
| 400 | + //新增 | ||
| 401 | + addApi(val) { | ||
| 402 | + addPortData(val) | ||
| 403 | + .then((res) => { | ||
| 404 | + if (res.code === "200") { | ||
| 405 | + this.msgSuccess(res.message); | ||
| 406 | + this.close(); | ||
| 407 | + } else { | ||
| 408 | + this.alertWarningMsg(res.message); | ||
| 409 | + this.loadings.dialogLoading = false; | ||
| 410 | + } | ||
| 411 | + }) | ||
| 412 | + .catch((err) => { | ||
| 413 | + console.log(err); | ||
| 414 | + this.loadings.dialogLoading = false; | ||
| 415 | + }); | ||
| 416 | + }, | ||
| 417 | + //修改 | ||
| 418 | + updateapi(val) { | ||
| 419 | + updatePortData(val) | ||
| 420 | + .then((res) => { | ||
| 421 | + if (res.code === "200") { | ||
| 422 | + this.msgSuccess(res.message); | ||
| 423 | + this.close(); | ||
| 424 | + } else { | ||
| 425 | + this.alertWarningMsg(res.message); | ||
| 426 | + this.loadings.dialogLoading = false; | ||
| 427 | + } | ||
| 428 | + }) | ||
| 429 | + .catch((err) => { | ||
| 430 | + console.log(err); | ||
| 431 | + this.loadings.dialogLoading = false; | ||
| 432 | + }); | ||
| 433 | + }, | ||
| 434 | + close() { | ||
| 435 | + this.formData = { | ||
| 436 | + declarationPortCode: "", | ||
| 437 | + declarationUnit10: "", | ||
| 438 | + declarationUnit10Inspection: "", | ||
| 439 | + declarationUnit18: "", | ||
| 440 | + declarationUnitCompanyName: "", | ||
| 441 | + dxpid: "", | ||
| 442 | + portCode: "", | ||
| 443 | + }; | ||
| 444 | + this.$emit("close"); | ||
| 445 | + }, | ||
| 446 | + }, | ||
| 447 | +}; | ||
| 448 | +</script> | ||
| 449 | + | ||
| 450 | +<style lang="scss" scoped> | ||
| 451 | +@import "@/assets/styles/variables.scss"; | ||
| 452 | +</style> |
| ... | @@ -8,70 +8,62 @@ | ... | @@ -8,70 +8,62 @@ |
| 8 | size="small" | 8 | size="small" |
| 9 | > | 9 | > |
| 10 | <el-row class="row-border"> | 10 | <el-row class="row-border"> |
| 11 | - <!-- 姓名 --> | 11 | + <!-- Client ID --> |
| 12 | <el-col :span="5"> | 12 | <el-col :span="5"> |
| 13 | - <Formitem label="姓名" prop="userName"> | 13 | + <Formitem label="Client ID" prop="clientId"> |
| 14 | <el-input | 14 | <el-input |
| 15 | type="text" | 15 | type="text" |
| 16 | class="inputShadow" | 16 | class="inputShadow" |
| 17 | - id="inputInner--userName" | 17 | + id="inputInner--clientId" |
| 18 | resize="none" | 18 | resize="none" |
| 19 | - v-model="sreachFormData.userName" | 19 | + v-model="sreachFormData.clientId" |
| 20 | clearable | 20 | clearable |
| 21 | placeholder="" | 21 | placeholder="" |
| 22 | ></el-input> | 22 | ></el-input> |
| 23 | </Formitem> | 23 | </Formitem> |
| 24 | </el-col> | 24 | </el-col> |
| 25 | - <!-- 员工号 --> | 25 | + <!-- 电商企业名称 --> |
| 26 | <el-col :span="5"> | 26 | <el-col :span="5"> |
| 27 | - <Formitem label="员工号" prop="employeeNumber"> | 27 | + <Formitem label="电商企业名称" prop="ecomEntName"> |
| 28 | <el-input | 28 | <el-input |
| 29 | type="text" | 29 | type="text" |
| 30 | class="inputShadow" | 30 | class="inputShadow" |
| 31 | - id="inputInner--employeeNumber" | 31 | + id="inputInner--ecomEntName" |
| 32 | resize="none" | 32 | resize="none" |
| 33 | - v-model="sreachFormData.employeeNumber" | 33 | + v-model="sreachFormData.ecomEntName" |
| 34 | clearable | 34 | clearable |
| 35 | placeholder="" | 35 | placeholder="" |
| 36 | ></el-input> | 36 | ></el-input> |
| 37 | </Formitem> | 37 | </Formitem> |
| 38 | </el-col> | 38 | </el-col> |
| 39 | - <!-- 口岸 --> | 39 | + <!-- 电商企业代码 --> |
| 40 | <el-col :span="5"> | 40 | <el-col :span="5"> |
| 41 | - <Formitem label="口岸" prop="port"> | 41 | + <Formitem label="电商企业代码" prop="ecomEntCode"> |
| 42 | - <el-select | 42 | + <el-input |
| 43 | type="text" | 43 | type="text" |
| 44 | - id="inputInner--port" | 44 | + class="inputShadow" |
| 45 | - v-model="sreachFormData.port" | 45 | + id="inputInner--ecomEntCode" |
| 46 | + resize="none" | ||
| 47 | + v-model="sreachFormData.ecomEntCode" | ||
| 46 | clearable | 48 | clearable |
| 47 | placeholder="" | 49 | placeholder="" |
| 48 | - > | 50 | + ></el-input> |
| 49 | - <el-option | ||
| 50 | - v-for="(item, index) in dictData.port" | ||
| 51 | - :key="index" | ||
| 52 | - :label="item.name" | ||
| 53 | - :value="item.code" | ||
| 54 | - ></el-option> | ||
| 55 | - </el-select> | ||
| 56 | </Formitem> | 51 | </Formitem> |
| 57 | </el-col> | 52 | </el-col> |
| 58 | - <!-- 角色 --> | 53 | + <!-- 创建日期 --> |
| 59 | <el-col :span="5"> | 54 | <el-col :span="5"> |
| 60 | - <Formitem label="角色" prop="roleIds"> | 55 | + <Formitem label="创建日期" prop="creationTime" :activeType="true"> |
| 61 | - <el-select | 56 | + <el-date-picker |
| 62 | - type="text" | 57 | + class="inputInner--creationTime" |
| 63 | - id="inputInner--roleIds" | 58 | + id="inputInner--creationTime" |
| 64 | - v-model="sreachFormData.roleIds" | 59 | + v-model="sreachFormData.creationTime" |
| 65 | - clearable | 60 | + type="daterange" |
| 66 | - placeholder="" | 61 | + format="yyyy-MM-dd" |
| 67 | - > | 62 | + prefix-icon="none" |
| 68 | - <el-option | 63 | + value-format="yyyy-MM-dd" |
| 69 | - v-for="(item, index) in dict.roleList" | 64 | + range-separator="至" |
| 70 | - :key="index" | 65 | + @change="dateChange" |
| 71 | - :label="item.roleName" | 66 | + /> |
| 72 | - :value="item.roleId" | ||
| 73 | - ></el-option> | ||
| 74 | - </el-select> | ||
| 75 | </Formitem> | 67 | </Formitem> |
| 76 | </el-col> | 68 | </el-col> |
| 77 | <el-col :span="2"> | 69 | <el-col :span="2"> |
| ... | @@ -85,17 +77,58 @@ | ... | @@ -85,17 +77,58 @@ |
| 85 | ></el-button> | 77 | ></el-button> |
| 86 | </el-form-item> | 78 | </el-form-item> |
| 87 | </el-col> | 79 | </el-col> |
| 80 | + <el-col :span="2"> | ||
| 81 | + <!-- 清空查询条件--> | ||
| 82 | + <el-form-item class="textLeft textCenter"> | ||
| 83 | + <el-button | ||
| 84 | + type="text" | ||
| 85 | + size="small" | ||
| 86 | + icon="el-icon-refresh" | ||
| 87 | + @click="clear" | ||
| 88 | + > | ||
| 89 | + 重置 | ||
| 90 | + </el-button> | ||
| 91 | + </el-form-item> | ||
| 92 | + </el-col> | ||
| 93 | + </el-row> | ||
| 94 | + <el-row> | ||
| 95 | + <!-- 电商企业邮箱 --> | ||
| 96 | + <el-col :span="5"> | ||
| 97 | + <Formitem label="电商企业邮箱" prop="ecomEntEmail"> | ||
| 98 | + <el-input | ||
| 99 | + type="text" | ||
| 100 | + class="inputShadow" | ||
| 101 | + id="inputInner--ecomEntEmail" | ||
| 102 | + resize="none" | ||
| 103 | + v-model="sreachFormData.ecomEntEmail" | ||
| 104 | + clearable | ||
| 105 | + placeholder="" | ||
| 106 | + ></el-input> | ||
| 107 | + </Formitem> | ||
| 108 | + </el-col> | ||
| 88 | </el-row> | 109 | </el-row> |
| 89 | </el-form> | 110 | </el-form> |
| 90 | <div class="optionButton"> | 111 | <div class="optionButton"> |
| 91 | - <!-- <el-button | 112 | + <div> |
| 92 | - class="entrySaveButton" | 113 | + <el-button |
| 93 | - icon="el-icon-plus" | 114 | + class="entrySaveButton" |
| 94 | - size="small" | 115 | + icon="el-icon-plus" |
| 95 | - @click="addRole" | 116 | + size="small" |
| 96 | - > | 117 | + @click="addCustomer" |
| 97 | - 新增角色 | 118 | + > |
| 98 | - </el-button> --> | 119 | + 新 增 |
| 120 | + </el-button> | ||
| 121 | + </div> | ||
| 122 | + <div> | ||
| 123 | + <el-button | ||
| 124 | + class="entrySaveButton" | ||
| 125 | + size="small" | ||
| 126 | + icon="el-icon-download" | ||
| 127 | + @click="downloadData" | ||
| 128 | + > | ||
| 129 | + 导出 | ||
| 130 | + </el-button> | ||
| 131 | + </div> | ||
| 99 | </div> | 132 | </div> |
| 100 | <Table | 133 | <Table |
| 101 | class="fedexDetialTable fedexSreachTable" | 134 | class="fedexDetialTable fedexSreachTable" |
| ... | @@ -105,7 +138,8 @@ | ... | @@ -105,7 +138,8 @@ |
| 105 | :maxHeight="tableMaxheight" | 138 | :maxHeight="tableMaxheight" |
| 106 | :border="true" | 139 | :border="true" |
| 107 | :pagination="true" | 140 | :pagination="true" |
| 108 | - :order="false" | 141 | + :order="true" |
| 142 | + noLabel="序号" | ||
| 109 | :loading="loadings.searchLoading" | 143 | :loading="loadings.searchLoading" |
| 110 | :page="page.pageIndex" | 144 | :page="page.pageIndex" |
| 111 | :pageSizes="[20, 30, 50, 100]" | 145 | :pageSizes="[20, 30, 50, 100]" |
| ... | @@ -117,32 +151,40 @@ | ... | @@ -117,32 +151,40 @@ |
| 117 | :rowSelectDataType="false" | 151 | :rowSelectDataType="false" |
| 118 | > | 152 | > |
| 119 | <template slot="optionColumn"> | 153 | <template slot="optionColumn"> |
| 120 | - <el-table-column align="left" label="操作"> | 154 | + <el-table-column align="left" label="操作" width="100"> |
| 121 | <template slot-scope="scope"> | 155 | <template slot-scope="scope"> |
| 122 | - <el-button type="text" @click="update(scope.row)"> | 156 | + <el-button type="text" @click="update(scope.row)"> 修改 </el-button> |
| 123 | - 角色修改 | ||
| 124 | - </el-button> | ||
| 125 | - <el-button type="text" @click="muenChange(scope.row)"> | ||
| 126 | - 权限绑定 | ||
| 127 | - </el-button> | ||
| 128 | </template> | 157 | </template> |
| 129 | </el-table-column> | 158 | </el-table-column> |
| 130 | </template> | 159 | </template> |
| 131 | </Table> | 160 | </Table> |
| 161 | + <DialogVue | ||
| 162 | + :outerVisible="outerVisible" | ||
| 163 | + :title="dialogTitle" | ||
| 164 | + :type="editType" | ||
| 165 | + :active="activeData" | ||
| 166 | + @close="dialogClose" | ||
| 167 | + /> | ||
| 132 | </div> | 168 | </div> |
| 133 | </template> | 169 | </template> |
| 134 | 170 | ||
| 135 | <script> | 171 | <script> |
| 136 | -import { getRoleList } from "@/api/system/user.js"; | 172 | +import { getCustomerList } from "@/api/system/customer-ai.js"; |
| 173 | +import { getPortList } from "@/api/system/user.js"; | ||
| 174 | +import DialogVue from "./dialog.vue"; | ||
| 137 | export default { | 175 | export default { |
| 138 | - name: "RoleConfig", | 176 | + name: "PortConfig", |
| 177 | + components: { | ||
| 178 | + DialogVue, | ||
| 179 | + }, | ||
| 139 | data() { | 180 | data() { |
| 140 | return { | 181 | return { |
| 141 | sreachFormData: { | 182 | sreachFormData: { |
| 142 | - userName: "", | 183 | + clientId: "", |
| 143 | - employeeNumber: "", | 184 | + ecomEntCode: "", |
| 144 | - roleIds: "", | 185 | + ecomEntEmail: "", |
| 145 | - port: "", | 186 | + ecomEntName: "", |
| 187 | + creationTime: [], | ||
| 146 | }, | 188 | }, |
| 147 | page: { | 189 | page: { |
| 148 | pageIndex: 1, | 190 | pageIndex: 1, |
| ... | @@ -153,14 +195,62 @@ export default { | ... | @@ -153,14 +195,62 @@ export default { |
| 153 | tableData: [], | 195 | tableData: [], |
| 154 | headerData: [ | 196 | headerData: [ |
| 155 | { | 197 | { |
| 156 | - name: "角色名", | 198 | + name: "Client ID", |
| 157 | - value: "roleName", | 199 | + value: "clientId", |
| 200 | + width: "", | ||
| 201 | + align: "left", | ||
| 202 | + }, | ||
| 203 | + { | ||
| 204 | + name: "电商企业代码", | ||
| 205 | + value: "ecomEntCode", | ||
| 206 | + width: "", | ||
| 207 | + align: "left", | ||
| 208 | + }, | ||
| 209 | + { | ||
| 210 | + name: "电商企业名称", | ||
| 211 | + value: "ecomEntName", | ||
| 212 | + width: "", | ||
| 213 | + align: "left", | ||
| 214 | + }, | ||
| 215 | + { | ||
| 216 | + name: "电商企业邮箱", | ||
| 217 | + value: "ecomEntEmail", | ||
| 218 | + width: "", | ||
| 219 | + align: "left", | ||
| 220 | + }, | ||
| 221 | + { | ||
| 222 | + name: "证书", | ||
| 223 | + value: "certificare", | ||
| 224 | + width: "", | ||
| 225 | + align: "left", | ||
| 226 | + }, | ||
| 227 | + { | ||
| 228 | + name: "创建时间", | ||
| 229 | + value: "creationTime", | ||
| 230 | + width: "", | ||
| 231 | + align: "left", | ||
| 232 | + }, | ||
| 233 | + { | ||
| 234 | + name: "创建人", | ||
| 235 | + value: "creator", | ||
| 236 | + width: "", | ||
| 237 | + align: "left", | ||
| 238 | + }, | ||
| 239 | + { | ||
| 240 | + name: "修改时间", | ||
| 241 | + value: "modificationTime", | ||
| 242 | + width: "", | ||
| 243 | + align: "left", | ||
| 244 | + }, | ||
| 245 | + { | ||
| 246 | + name: "修改人", | ||
| 247 | + value: "modifier", | ||
| 158 | width: "", | 248 | width: "", |
| 159 | align: "left", | 249 | align: "left", |
| 160 | }, | 250 | }, |
| 161 | ], | 251 | ], |
| 162 | dict: { | 252 | dict: { |
| 163 | - roleList: [], | 253 | + port: [], |
| 164 | }, | 254 | }, |
| 165 | loadings: { | 255 | loadings: { |
| 166 | searchLoading: false, | 256 | searchLoading: false, |
| ... | @@ -172,35 +262,74 @@ export default { | ... | @@ -172,35 +262,74 @@ export default { |
| 172 | }; | 262 | }; |
| 173 | }, | 263 | }, |
| 174 | created() { | 264 | created() { |
| 175 | - this.searchRole(); | 265 | + this.searchPortDictData(); |
| 176 | this.search(0); | 266 | this.search(0); |
| 177 | }, | 267 | }, |
| 178 | mounted() { | 268 | mounted() { |
| 179 | this.tableMaxheight = window.innerHeight - 300; | 269 | this.tableMaxheight = window.innerHeight - 300; |
| 180 | }, | 270 | }, |
| 181 | methods: { | 271 | methods: { |
| 182 | - search(val) {}, | ||
| 183 | //查询 | 272 | //查询 |
| 184 | - searchRole(val) { | 273 | + search(val) { |
| 185 | - getRoleList({ roleName: "", pageIndex: 1, pageSize: 999999 }) | 274 | + this.loadings.searchLoading = true; |
| 275 | + if (val == 0) { | ||
| 276 | + this.page.pageIndex = 1; | ||
| 277 | + } | ||
| 278 | + let obj = this.sreachFormData; | ||
| 279 | + obj.pageIndex = this.page.pageIndex; | ||
| 280 | + obj.pageSize = this.page.pageSize; | ||
| 281 | + obj.endCreationTime = ""; | ||
| 282 | + obj.startCreationTime = ""; | ||
| 283 | + if (obj.creationTime.length > 0) { | ||
| 284 | + obj.startCreationTime = obj.creationTime[0]; | ||
| 285 | + obj.endCreationTime = obj.creationTime[1]; | ||
| 286 | + } | ||
| 287 | + getCustomerList(obj) | ||
| 186 | .then((res) => { | 288 | .then((res) => { |
| 187 | if (res.code === "200") { | 289 | if (res.code === "200") { |
| 188 | - this.dict.roleList = res.data.value; | 290 | + this.tableData = res.data.value; |
| 291 | + this.page.total = res.data.totalItems; | ||
| 292 | + this.tableData.forEach((item, idx) => { | ||
| 293 | + item.index = idx; | ||
| 294 | + }); | ||
| 295 | + } else { | ||
| 296 | + this.alertWarningMsg(res.message); | ||
| 189 | } | 297 | } |
| 298 | + this.loadings.searchLoading = false; | ||
| 190 | }) | 299 | }) |
| 191 | .catch((err) => { | 300 | .catch((err) => { |
| 192 | console.log(err); | 301 | console.log(err); |
| 302 | + this.loadings.searchLoading = false; | ||
| 193 | }); | 303 | }); |
| 194 | }, | 304 | }, |
| 195 | - update(val) { | 305 | + //获取口岸子字典 |
| 196 | - this.dialogTitle = "修改角色"; | 306 | + searchPortDictData() { |
| 197 | - this.editType = "update"; | 307 | + getPortList() |
| 308 | + .then((res) => { | ||
| 309 | + if (res.code === "200") { | ||
| 310 | + this.dict.port = res.data; | ||
| 311 | + } | ||
| 312 | + }) | ||
| 313 | + .catch((err) => { | ||
| 314 | + console.log(err); | ||
| 315 | + }); | ||
| 316 | + }, | ||
| 317 | + clear() { | ||
| 318 | + this.sreachFormData = { | ||
| 319 | + portCode: "", | ||
| 320 | + dxpid: "", | ||
| 321 | + }; | ||
| 322 | + }, | ||
| 323 | + //导出 | ||
| 324 | + downloadData() {}, | ||
| 325 | + addCustomer() { | ||
| 326 | + this.dialogTitle = "新增口岸"; | ||
| 327 | + this.editType = "add"; | ||
| 198 | this.outerVisible = true; | 328 | this.outerVisible = true; |
| 199 | - this.activeData = val; | ||
| 200 | }, | 329 | }, |
| 201 | - muenChange(val) { | 330 | + update(val) { |
| 202 | - this.dialogTitle = "绑定权限"; | 331 | + this.dialogTitle = "修改口岸"; |
| 203 | - this.editType = "menuChange"; | 332 | + this.editType = "update"; |
| 204 | this.outerVisible = true; | 333 | this.outerVisible = true; |
| 205 | this.activeData = val; | 334 | this.activeData = val; |
| 206 | }, | 335 | }, |
| ... | @@ -221,6 +350,13 @@ export default { | ... | @@ -221,6 +350,13 @@ export default { |
| 221 | input() { | 350 | input() { |
| 222 | this.$forceUpdate(); | 351 | this.$forceUpdate(); |
| 223 | }, | 352 | }, |
| 353 | + dateChange(val) { | ||
| 354 | + if (val == "" || val == null) { | ||
| 355 | + this.$nextTick(() => { | ||
| 356 | + this.sreachFormData.creationTime = []; | ||
| 357 | + }); | ||
| 358 | + } | ||
| 359 | + }, | ||
| 224 | }, | 360 | }, |
| 225 | }; | 361 | }; |
| 226 | </script> | 362 | </script> |
| ... | @@ -240,6 +376,8 @@ export default { | ... | @@ -240,6 +376,8 @@ export default { |
| 240 | .optionButton { | 376 | .optionButton { |
| 241 | padding: 10px; | 377 | padding: 10px; |
| 242 | text-align: left; | 378 | text-align: left; |
| 379 | + display: flex; | ||
| 380 | + justify-content: space-between; | ||
| 243 | 381 | ||
| 244 | .el-button { | 382 | .el-button { |
| 245 | color: $fedexButton; | 383 | color: $fedexButton; | ... | ... |
| ... | @@ -30,6 +30,7 @@ | ... | @@ -30,6 +30,7 @@ |
| 30 | resize="none" | 30 | resize="none" |
| 31 | v-model="formData.portCode" | 31 | v-model="formData.portCode" |
| 32 | clearable | 32 | clearable |
| 33 | + :disabled="type == 'update'" | ||
| 33 | placeholder="" | 34 | placeholder="" |
| 34 | ></el-input> | 35 | ></el-input> |
| 35 | </Formitem> | 36 | </Formitem> | ... | ... |
-
Please register or login to post a comment