Commit e95f1aa7 by 黑潮

Merge branch 'feature/福利中心-礼品管理' of git.gicdev.com:dm4/welfare into feature/福利中心-礼品管理

parents 7d9ae12d 31111210
.el-icon-delete[data-v-ea3f6f90]{display:inline-block;font-size:17px;padding:9px;margin-right:10px;color:#909399;border:1px solid #e4e7ed;border-radius:50%;vertical-align:middle;cursor:pointer;position:relative;top:-60px}.el-icon-delete[data-v-ea3f6f90]:hover{background:#fef0f0;border:1px solid #fbc4c4;color:#f5222d}
\ No newline at end of file
.el-icon-delete[data-v-9e2dfcd8]{display:inline-block;font-size:17px;padding:9px;margin-right:10px;color:#909399;border:1px solid #e4e7ed;border-radius:50%;vertical-align:middle;cursor:pointer;position:relative;top:-60px}.el-icon-delete[data-v-9e2dfcd8]:hover{background:#fef0f0;border:1px solid #fbc4c4;color:#f5222d}
\ No newline at end of file
.transfer-trigger[data-v-7d6a41ba]{margin-left:10px;width:160px}.transfer-trigger[data-v-7d6a41ba]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;background:transparent;cursor:pointer}.transfer-trigger[data-v-7d6a41ba]:focus{outline:none}.transfer-trigger.is-focus[data-v-7d6a41ba] .el-input__inner{border-color:#2f54eb;-webkit-box-shadow:0 0 0 2px rgba(47,84,237,.2);box-shadow:0 0 0 2px rgba(47,84,237,.2)}.transfer-trigger.is-focus .el-input__icon[data-v-7d6a41ba]{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.transfer[data-v-7d6a41ba] .el-transfer-panel__item{padding-top:8px;padding-bottom:8px;width:100%;height:auto;line-height:normal}.transfer[data-v-7d6a41ba] .el-transfer-panel__item .el-checkbox__input{top:10px}.transfer[data-v-7d6a41ba] .el-transfer-panel__empty:before{content:"";display:block;margin:0 auto;width:30px;height:30px;background:url([object Module]) 50% no-repeat;background-size:contain}.transfer[data-v-7d6a41ba] .el-transfer-panel__header{pointer-events:none}.transfer[data-v-7d6a41ba] .el-transfer-panel__header .el-checkbox__input{display:none}.transfer .transfer-item[data-v-7d6a41ba]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.transfer .transfer-item .store-name[data-v-7d6a41ba]{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:400;color:#303133;line-height:22px}.transfer .transfer-item .store-code[data-v-7d6a41ba]{font-size:12px;font-weight:400;color:#303133;line-height:16px}.transfer[data-v-7d6a41ba] .el-transfer__buttons .el-button{padding:0;width:24px;min-width:24px}.transfer[data-v-7d6a41ba] .el-transfer__buttons .el-button:first-child{margin-bottom:0;-webkit-transform:translateY(calc(100% + 4px));transform:translateY(calc(100% + 4px))}.transfer[data-v-7d6a41ba] .el-transfer__buttons .el-button:last-child{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.pickup-upload[data-v-7d6a41ba]{display:inline-block;vertical-align:top;margin-left:10px}.pickup-upload .upload-trigger[data-v-7d6a41ba]{border-style:dashed}.pickup-upload .upload-trigger .upload-icon[data-v-7d6a41ba]{font-size:14px}.pickup-upload .upload-tip[data-v-7d6a41ba]{display:inline-block}.pickup-upload .pickup-list[data-v-7d6a41ba]{margin-top:18px}.pickup-upload .pickup-list .pickup-list-name[data-v-7d6a41ba]{font-size:14px;font-weight:400;color:#303133;line-height:20px}.pickup-upload .pickup-list .pickup-list-name .file-icon[data-v-7d6a41ba]{font-size:14px}.pickup-upload .pickup-list .download-pickup[data-v-7d6a41ba]{margin-left:8px}.pickup-upload .pickup-list .pickup-list-total[data-v-7d6a41ba]{margin-top:8px;font-size:12px;font-weight:400;color:#909399;line-height:17px}.pickup-upload .pickup-list .pickup-list-total .pickup-list-error[data-v-7d6a41ba],.pickup-upload .pickup-list .pickup-list-total .pickup-list-number[data-v-7d6a41ba],.pickup-upload .pickup-list .pickup-list-total .pickup-list-success[data-v-7d6a41ba]{padding:0 5px}.pickup-upload .pickup-list .pickup-list-total .pickup-list-number[data-v-7d6a41ba]{color:#303133}.pickup-upload .pickup-list .pickup-list-total .pickup-list-success[data-v-7d6a41ba]{color:#33af4a}.pickup-upload .pickup-list .pickup-list-total .pickup-list-error[data-v-7d6a41ba]{color:#f5222d}.upload-tip-text[data-v-7d6a41ba]{width:308px}.upload-tip-text p[data-v-7d6a41ba]{font-size:12px;font-weight:400;color:#303133;line-height:16px}.upload-tip-text p+p[data-v-7d6a41ba]{margin-top:9px}.error-item[data-v-7d6a41ba]{font-size:14px;font-weight:400;color:#303133;line-height:20px}.error-item+.error-item[data-v-7d6a41ba]{margin-top:10px}.error-list[data-v-7d6a41ba] .el-dialog__body{max-height:400px;overflow-y:auto}.upload-popper{padding:10px 12px!important}.transfer-tip{width:auto!important}.dash-style[data-v-afa04934]{border-bottom:1px dashed #2f54eb}.w-630[data-v-afa04934]{width:630px}.w-480[data-v-afa04934]{width:480px}.w-350[data-v-afa04934]{width:350px}.w-900[data-v-afa04934]{width:900px}.mb56[data-v-afa04934]{margin-bottom:56px}.from-content[data-v-afa04934]{position:relative}.from-content .demo-ruleForm .form-section[data-v-afa04934]{padding:30px 20px}.from-content .demo-ruleForm .form-section h3[data-v-afa04934]{color:#303133;font-size:14px;font-weight:700;margin-bottom:31px;margin-left:20px;padding-bottom:9px;border-bottom:1px solid #dfdfdf}.from-content .demo-ruleForm .form-section h3[data-v-afa04934]:before{clear:both;content:"";display:inline-block;overflow:hidden;width:3px;height:12px;line-height:14px;margin-right:8px;background:#2f54eb}.from-content .demo-ruleForm .form-section .tip-warm[data-v-afa04934]{color:#909399;font-size:12px}.from-content .demo-ruleForm .form-section .tip-warm i[data-v-afa04934]{color:#faad14;margin-right:5px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list[data-v-afa04934]{width:900px;margin-bottom:20px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item[data-v-afa04934]{width:100%}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name[data-v-afa04934]{padding:8px;background:#f3f6f9;position:relative}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .sku-title[data-v-afa04934]{color:#909399;margin-right:7px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .sku-value-title[data-v-afa04934]{color:#909399;width:55px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .delete-btn[data-v-afa04934]{color:#909399;font-size:14px;position:absolute;right:20px;cursor:pointer}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .delete-btn[data-v-afa04934]:hover{color:#2f54ed}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content[data-v-afa04934]{padding:15px 8px 5px 8px;display:-webkit-box;display:-ms-flexbox;display:flex}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .sku-value-title[data-v-afa04934]{color:#909399;width:55px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list[data-v-afa04934]{display:inline-block;-webkit-box-flex:1;-ms-flex:1;flex:1}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list .value-item[data-v-afa04934]{border:1px solid #e4e7ed;padding:10px 8px;border-radius:4px;display:inline-block;margin-right:7px;position:relative;margin-bottom:10px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list .value-item .el-icon-error[data-v-afa04934]{font-size:16px;position:absolute;right:-10px;top:-5px;color:#c0c4cc;display:none;cursor:pointer}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list .value-item:hover .el-icon-error[data-v-afa04934]{display:inline-block;color:#909399}.from-content .demo-ruleForm .form-section .standard-info .sku-table-content[data-v-afa04934]{padding:10px;width:900px;border:1px solid #dcdfe6;border-radius:2px}.from-content .demo-ruleForm .form-section .standard-info .sku-table-content .batch-box[data-v-afa04934]{padding-left:130px;font-size:0;height:40px}.from-content .demo-ruleForm .fixed-btn[data-v-afa04934]{width:100%;height:56px;position:fixed;bottom:0;left:200px;background:#fff;border-top:1px solid #e4e7ed;text-align:center;margin-left:-100px;z-index:2;font-size:0}.from-content .demo-ruleForm .fixed-btn .el-button[data-v-afa04934]{margin-top:12px}.from-content .anchor-link[data-v-afa04934]{width:120px;position:fixed;right:24px;top:180px;background:#fff}.from-content .anchor-link .link-item[data-v-afa04934]{height:24px;line-height:24px;color:#606266;font-size:12px;border-left:2px solid #ebeef5;padding-left:18px;cursor:pointer}.from-content .see-btn[data-v-afa04934]{color:#909399;margin-left:15px}.from-content .see-btn[data-v-afa04934]:hover{color:#2f54ed}.ml20[data-v-afa04934]{margin-left:20px}.mr10[data-v-afa04934]{margin-right:10px}.mr16[data-v-afa04934]{margin-right:16px}.table-img[data-v-afa04934]{display:inline-block;width:32px;height:32px;border-radius:4px;border:1px dashed #d9d9d9;cursor:pointer;text-align:center;vertical-align:top;position:relative}.table-img img[data-v-afa04934]{width:30px;height:30px}.table-img[data-v-afa04934]:hover{border:1px dashed #2f54ed}.img-modal[data-v-afa04934]{width:32px;height:32px;position:absolute;left:-1px;top:-1px;background:rgba(0,0,0,.5);display:none;cursor:pointer;border-radius:4px}.img-modal .el-icon-delete[data-v-afa04934]{color:#fff}.table-img:hover .img-modal[data-v-afa04934]{display:inline-block}.tips-content[data-v-afa04934]{position:absolute;left:-4px;top:8px}.store-tips[data-v-afa04934]{width:200px;position:absolute;left:-10px}.sku-table th.star div:before{content:"*";color:red}.right-border{border-right:1px solid #ebeef5}.sku-table-content .sku-table th{line-height:17px!important}
\ No newline at end of file
.order-info[data-v-72acb715]{margin:20px 0;display:-webkit-box;display:-ms-flexbox;display:flex}.order-info .li[data-v-72acb715]{width:33%;margin:10px 0}
\ No newline at end of file
.upload-btn[data-v-d08664b6]{height:40px;border:1px dashed #c0c4cc;display:inline-block;font-size:14px;color:#c0c4cc;cursor:pointer;margin-right:10px;width:250px;border-radius:4px}.upload-btn .el-icon-upload2[data-v-d08664b6]{font-size:18px;color:#c0c4cc}.upload-btn[data-v-d08664b6]:hover{border-color:#1890ff}.upload-ele .el-button[data-v-d08664b6]{border:none;color:#c0c4cc;margin-left:60px}.upload-ele .el-button--small[data-v-d08664b6]{padding:0}.uploadText p[data-v-d08664b6]{line-height:26px}.tab-top[data-v-4b0bc947]{height:32px;margin:20px 20px 0 20px}.tab-top .fl[data-v-4b0bc947],.tab-top[data-v-4b0bc947]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.table-content[data-v-4b0bc947]{margin:20px;padding-bottom:20px}.table-content .img-text[data-v-4b0bc947]{height:60px}.table-content .img-text img[data-v-4b0bc947]{width:60px;height:60px;border:1px solid #dcdfe6;padding:4px;border-radius:2px}.table-content .img-text .text[data-v-4b0bc947]{display:inline-block;vertical-align:top;width:75%;margin-left:3px;font-size:13px;line-height:14px}.table-content .img-text .text .goods-descript[data-v-4b0bc947]{color:#606266;line-height:18px;font-size:14px;margin-bottom:10px}.table-content .img-text .text .goods-code[data-v-4b0bc947]{color:#909399;font-size:12px;line-height:16px}.table-content .img-text :hover .el-icon-edit-outline[data-v-4b0bc947]{display:inline-block;cursor:pointer}.table-content .img-text .el-icon-edit-outline[data-v-4b0bc947]:hover{color:#2f54ed}.table-content .stock-box:hover .el-icon-edit-outline[data-v-4b0bc947]{display:inline-block;cursor:pointer}.el-icon-edit-outline[data-v-4b0bc947]:hover{color:#2f54ed}.undeline-dash[data-v-4b0bc947]{border-bottom:1px dashed #2f54eb;font-weight:500}.spanclass[data-v-4b0bc947]{display:inline-block;line-height:32px}.damolish .el-tooltip__popper{width:240px}
\ No newline at end of file
.upload-btn[data-v-5f050120]{height:40px;border:1px dashed #c0c4cc;display:inline-block;font-size:14px;color:#c0c4cc;cursor:pointer;margin-right:10px;width:250px;border-radius:4px}.upload-btn .el-icon-upload2[data-v-5f050120]{font-size:18px;color:#c0c4cc}.upload-btn[data-v-5f050120]:hover{border-color:#1890ff}.upload-ele .el-button[data-v-5f050120]{border:none;color:#c0c4cc}.upload-ele .el-button--small[data-v-5f050120]{padding:0}.w-630[data-v-5f050120]{width:630px}.mb56[data-v-5f050120]{margin-bottom:56px}.from-content[data-v-5f050120]{position:relative}.from-content .demo-ruleForm .form-section[data-v-5f050120]{padding:30px 20px}.from-content .demo-ruleForm .form-section h3[data-v-5f050120]{color:#303133;font-size:14px;font-weight:700;margin-bottom:20px;margin-left:20px;padding-bottom:20px;border-bottom:1px solid #dfdfdf}.from-content .demo-ruleForm .form-section .tip-warm[data-v-5f050120]{color:#909399;font-size:12px}.from-content .demo-ruleForm .form-section .tip-warm i[data-v-5f050120]{color:#faad14;margin-right:5px}.from-content .demo-ruleForm .fixed-btn[data-v-5f050120]{width:100%;height:56px;position:fixed;bottom:0;left:200px;background:#fff;border-top:1px solid #e4e7ed;text-align:center;margin-left:-100px;z-index:2;font-size:0}.from-content .demo-ruleForm .fixed-btn .el-button[data-v-5f050120]{margin-top:12px}.from-content .anchor-link[data-v-5f050120]{width:120px;position:fixed;right:24px;top:180px;background:#fff}.from-content .anchor-link .link-item[data-v-5f050120]{height:24px;line-height:24px;color:#606266;font-size:12px;border-left:2px solid #ebeef5;padding-left:18px;cursor:pointer}.ml20[data-v-5f050120]{margin-left:20px}.mr10[data-v-5f050120]{margin-right:10px}.tips-content[data-v-5f050120]{position:absolute;left:-4px;top:8px}.store-tips[data-v-5f050120]{width:200px;position:absolute;left:-10px}.underline[data-v-5f050120]{text-decoration:underline}.table-error .el-form-item__error{display:none!important}.damolish .el-form-item__label:after{content:""}.damolish .el-tooltip__popper{width:245px}table th.star div:before{content:"*";color:red}.right-border{border-right:1px solid #ebeef5}.mopney-input span{display:none!important}.from-content .see-btn{color:#909399;margin-left:15px}.from-content .see-btn:hover{color:#2f54ed}
\ No newline at end of file
.step-text[data-v-7643a70d]{color:#000;font-size:14px}.dash-style[data-v-7643a70d]{border-bottom:1px dashed #2f54eb}.upload-btn[data-v-7643a70d]{height:40px;border:1px dashed #c0c4cc;display:inline-block;font-size:14px;color:#c0c4cc;cursor:pointer;margin-right:10px;width:250px;border-radius:4px}.upload-btn .el-icon-upload2[data-v-7643a70d]{font-size:18px;color:#c0c4cc}.upload-btn[data-v-7643a70d]:hover{border-color:#1890ff}.upload-ele .el-button[data-v-7643a70d]{border:none;color:#c0c4cc}.upload-ele .el-button--small[data-v-7643a70d]{padding:0}.w-630[data-v-7643a70d]{width:630px}.mb56[data-v-7643a70d]{margin-bottom:56px}.from-content[data-v-7643a70d]{position:relative}.from-content .demo-ruleForm .form-section[data-v-7643a70d]{padding:30px 20px}.from-content .demo-ruleForm .form-section h3[data-v-7643a70d]{color:#303133;font-size:14px;font-weight:700;margin-bottom:31px;margin-left:20px;padding-bottom:9px;border-bottom:1px solid #dfdfdf}.from-content .demo-ruleForm .form-section h3[data-v-7643a70d]:before{clear:both;content:"";display:inline-block;overflow:hidden;width:3px;height:12px;line-height:14px;margin-right:8px;background:#2f54eb}.from-content .demo-ruleForm .form-section .tip-warm[data-v-7643a70d]{color:#909399;font-size:12px}.from-content .demo-ruleForm .form-section .tip-warm i[data-v-7643a70d]{color:#faad14;margin-right:5px}.from-content .demo-ruleForm .fixed-btn[data-v-7643a70d]{width:100%;height:56px;position:fixed;bottom:0;left:200px;background:#fff;border-top:1px solid #e4e7ed;text-align:center;margin-left:-100px;z-index:2;font-size:0}.from-content .demo-ruleForm .fixed-btn .el-button[data-v-7643a70d]{margin-top:12px}.from-content .anchor-link[data-v-7643a70d]{width:120px;position:fixed;right:24px;top:180px;background:#fff}.from-content .anchor-link .link-item[data-v-7643a70d]{height:24px;line-height:24px;color:#606266;font-size:12px;border-left:2px solid #ebeef5;padding-left:18px;cursor:pointer}.from-content .see-btn[data-v-7643a70d]{color:#909399;margin-left:15px}.from-content .see-btn[data-v-7643a70d]:hover{color:#2f54ed}.ml20[data-v-7643a70d]{margin-left:20px}.mr10[data-v-7643a70d]{margin-right:10px}.tips-content[data-v-7643a70d]{position:absolute;left:-4px;top:6px}.store-tips[data-v-7643a70d]{width:200px;position:absolute;left:-10px}.underline[data-v-7643a70d]{text-decoration:underline}.right-border{border-right:1px solid #ebeef5}.el-step.is-vertical .el-step__line{top:4px}
\ No newline at end of file
.tab-top[data-v-40c29954]{height:32px;margin:20px 20px 0 20px}.tab-top .fl[data-v-40c29954],.tab-top[data-v-40c29954]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.table-content[data-v-40c29954]{margin:20px;padding-bottom:20px}.table-content .img-text[data-v-40c29954]{height:60px}.table-content .img-text img[data-v-40c29954]{width:60px;height:60px;border:1px solid #dcdfe6;padding:4px;border-radius:2px}.table-content .img-text .text[data-v-40c29954]{display:inline-block;vertical-align:top;width:75%;margin-left:3px;font-size:13px;line-height:14px}.table-content .img-text .text .goods-descript[data-v-40c29954]{color:#606266;line-height:18px;font-size:14px;margin-bottom:10px}.table-content .img-text .text .goods-code[data-v-40c29954]{color:#909399;font-size:12px;line-height:16px}.table-content .img-text :hover .el-icon-edit-outline[data-v-40c29954]{display:inline-block;cursor:pointer}.table-content .img-text .el-icon-edit-outline[data-v-40c29954]:hover{color:#2f54ed}.table-content .stock-box:hover .el-icon-edit-outline[data-v-40c29954]{display:inline-block;cursor:pointer}.el-icon-edit-outline[data-v-40c29954]:hover{color:#2f54ed}.undeline-dash[data-v-40c29954]{border-bottom:1px dashed #2f54eb;font-weight:500}.spanclass[data-v-40c29954]{display:inline-block;line-height:32px}.damolish .el-tooltip__popper{width:240px}
\ No newline at end of file
.goods-info[data-v-65109406]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.goods-info img[data-v-65109406]{width:62px;height:62px;border:1px solid #f1f3f7;border-radius:5px}.goods-info .goods-text[data-v-65109406]{margin-left:18px;font-size:13px;color:#303133;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.goods-info .goods-text-info[data-v-65109406]{color:#909399;font-size:12px}.goods-info .goods-text-name[data-v-65109406]{margin-bottom:5px;line-height:16px}
\ No newline at end of file
.w-630[data-v-40843b7e]{width:630px}.w-480[data-v-40843b7e]{width:480px}.w-350[data-v-40843b7e]{width:350px}.w-900[data-v-40843b7e]{width:900px}.mb56[data-v-40843b7e]{margin-bottom:56px}.from-content[data-v-40843b7e]{position:relative}.from-content .demo-ruleForm .form-section[data-v-40843b7e]{padding:30px 20px}.from-content .demo-ruleForm .form-section h3[data-v-40843b7e]{color:#303133;font-size:14px;font-weight:700;margin-bottom:20px;margin-left:20px;padding-bottom:20px;border-bottom:1px solid #dfdfdf}.from-content .demo-ruleForm .form-section .prefix-money[data-v-40843b7e]{color:#303133}.from-content .demo-ruleForm .form-section .add-time[data-v-40843b7e]{color:#606266;margin-left:150px}.from-content .demo-ruleForm .form-section .add-time[data-v-40843b7e]:hover{color:#2f54eb}.from-content .demo-ruleForm .form-section .tip-warm[data-v-40843b7e]{color:#909399;font-size:12px}.from-content .demo-ruleForm .form-section .tip-warm i[data-v-40843b7e]{color:#faad14;margin-right:5px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list[data-v-40843b7e]{width:900px;margin-bottom:20px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item[data-v-40843b7e]{width:100%}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name[data-v-40843b7e]{padding:8px;background:#f3f6f9;position:relative}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .sku-title[data-v-40843b7e]{color:#909399;margin-right:7px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .sku-value-title[data-v-40843b7e]{color:#909399;width:55px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .delete-btn[data-v-40843b7e]{color:#909399;font-size:14px;position:absolute;right:20px;cursor:pointer}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .sku-name .delete-btn[data-v-40843b7e]:hover{color:#2f54ed}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content[data-v-40843b7e]{padding:15px 8px 5px 8px;display:-webkit-box;display:-ms-flexbox;display:flex}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .sku-value-title[data-v-40843b7e]{color:#909399;width:55px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list[data-v-40843b7e]{display:inline-block;-webkit-box-flex:1;-ms-flex:1;flex:1}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list .value-item[data-v-40843b7e]{border:1px solid #e4e7ed;padding:10px 8px;border-radius:4px;display:inline-block;margin-right:7px;position:relative;margin-bottom:10px}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list .value-item .el-icon-error[data-v-40843b7e]{font-size:16px;position:absolute;right:-10px;top:-5px;color:#c0c4cc;display:none;cursor:pointer}.from-content .demo-ruleForm .form-section .standard-info .add-sku-list .add-sku-item .value-content .value-list .value-item:hover .el-icon-error[data-v-40843b7e]{display:inline-block;color:#909399}.from-content .demo-ruleForm .form-section .standard-info .sku-table-content[data-v-40843b7e]{padding:10px;width:900px;border:1px solid #dcdfe6;border-radius:2px}.from-content .demo-ruleForm .form-section .standard-info .sku-table-content .batch-box[data-v-40843b7e]{padding-left:130px;font-size:0;height:40px}.from-content .demo-ruleForm .fixed-btn[data-v-40843b7e]{width:100%;height:56px;position:fixed;bottom:0;left:200px;background:#fff;border-top:1px solid #e4e7ed;text-align:center;margin-left:-100px;z-index:2;font-size:0}.from-content .demo-ruleForm .fixed-btn .el-button[data-v-40843b7e]{margin-top:12px}.from-content .anchor-link[data-v-40843b7e]{width:120px;position:fixed;right:24px;top:180px;background:#fff}.from-content .anchor-link .link-item[data-v-40843b7e]{height:24px;line-height:24px;color:#606266;font-size:12px;border-left:2px solid #ebeef5;padding-left:18px;cursor:pointer}.ml20[data-v-40843b7e]{margin-left:20px}.mr10[data-v-40843b7e]{margin-right:10px}.mr16[data-v-40843b7e]{margin-right:16px}.table-img[data-v-40843b7e]{display:inline-block;width:32px;height:32px;border-radius:4px;border:1px dashed #d9d9d9;cursor:pointer;text-align:center;vertical-align:top;position:relative}.table-img img[data-v-40843b7e]{width:30px;height:30px}.table-img[data-v-40843b7e]:hover{border:1px dashed #2f54ed}.img-modal[data-v-40843b7e]{width:32px;height:32px;position:absolute;left:-1px;top:-1px;background:rgba(0,0,0,.5);display:none;cursor:pointer;border-radius:4px}.img-modal .el-icon-delete[data-v-40843b7e]{color:#fff}.table-img:hover .img-modal[data-v-40843b7e]{display:inline-block}.tips-content[data-v-40843b7e]{position:absolute;left:-4px;top:8px}.store-tips[data-v-40843b7e]{width:200px;position:absolute;left:-10px}.table-error .el-form-item__error{display:none!important}.damolish .el-form-item__label:after{content:""}.damolish .el-tooltip__popper{width:245px}table th.star div:before{content:"*";color:red}.right-border{border-right:1px solid #ebeef5}.sku-table-content .sku-table th{line-height:17px!important}.mopney-input span{display:none!important}.from-content .see-btn{color:#909399;margin-left:15px}.from-content .see-btn:hover{color:#2f54ed}
\ No newline at end of file
.goods-info[data-v-5e22701f]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.goods-info img[data-v-5e22701f]{width:62px;height:62px;border:1px solid #f1f3f7;border-radius:5px}.goods-info .goods-text[data-v-5e22701f]{margin-left:18px;font-size:13px;color:#303133;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.goods-info .goods-text-info[data-v-5e22701f]{color:#909399;font-size:12px}.goods-info .goods-text-name[data-v-5e22701f]{margin-bottom:5px;line-height:16px}
\ No newline at end of file
.hidden-limit .dm-input__counter{display:none}.popver-button .el-button:not(.el-button--text){min-width:50px}.right-border{border-right:1px solid #ebeef5}.tab-top[data-v-dd74c7f6]{height:32px;margin:20px 20px 0 20px}.tab-top .fl[data-v-dd74c7f6],.tab-top[data-v-dd74c7f6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.table-content[data-v-dd74c7f6]{margin:20px;padding-bottom:20px}.table-content .img-text[data-v-dd74c7f6]{height:60px}.table-content .img-text img[data-v-dd74c7f6]{width:60px;height:60px;border:1px solid #dcdfe6;padding:4px;border-radius:2px}.table-content .img-text .text[data-v-dd74c7f6]{display:inline-block;vertical-align:top;width:75%;margin-left:3px;font-size:13px;line-height:14px}.table-content .img-text .text .goods-descript[data-v-dd74c7f6]{color:#606266;line-height:18px;font-size:14px;margin-bottom:25px}.table-content .img-text .text .goods-code[data-v-dd74c7f6]{color:#909399;font-size:12px;line-height:16px}.table-content .img-text .el-icon-edit-outline[data-v-dd74c7f6]{display:none;cursor:pointer}.table-content .img-text :hover .el-icon-edit-outline[data-v-dd74c7f6]{display:inline-block;cursor:pointer}.table-content .img-text .el-icon-edit-outline[data-v-dd74c7f6]:hover{color:#2f54ed}.table-content .stock-box .el-icon-edit-outline[data-v-dd74c7f6]{display:none;cursor:pointer}.table-content .stock-box:hover .el-icon-edit-outline[data-v-dd74c7f6]{display:inline-block;cursor:pointer}.el-icon-edit-outline[data-v-dd74c7f6]:hover{color:#2f54ed}.undeline-dash[data-v-dd74c7f6]{border-bottom:1px dashed #2f54eb;font-weight:500}.spanclass[data-v-dd74c7f6]{display:inline-block;line-height:32px}.stock-box .el-tooltip__popper{width:150px}
\ No newline at end of file
.performance-record[data-v-27d31a10]{padding:20px}.goods-info[data-v-27d31a10]{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.goods-info img[data-v-27d31a10]{width:62px;height:62px;border:1px solid #f1f3f7;border-radius:5px}.goods-info .goods-text[data-v-27d31a10]{margin-left:18px;font-size:13px;color:#303133;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.goods-info .goods-text-info[data-v-27d31a10]{color:#909399;font-size:12px}.goods-info .goods-text-name[data-v-27d31a10]{margin-bottom:5px;line-height:16px}
\ No newline at end of file
.right-border{border-right:1px solid #ebeef5}.hidden-limit .dm-input__counter{display:none}.popver-button .el-button:not(.el-button--text){min-width:50px}.upload-btn[data-v-3ae08bba]{height:40px;border:1px dashed #c0c4cc;display:inline-block;font-size:14px;color:#c0c4cc;cursor:pointer;margin-right:20px;border-radius:4px}.upload-btn .el-icon-upload2[data-v-3ae08bba]{font-size:18px;color:#c0c4cc}.upload-btn[data-v-3ae08bba]:hover{border-color:#1890ff}.upload-ele .el-button[data-v-3ae08bba]{border:none;color:#c0c4cc;margin-left:60px}.upload-ele .el-button--small[data-v-3ae08bba]{padding:0}.uploadText p[data-v-3ae08bba]{line-height:26px}.tab-top[data-v-c65cbe5a]{height:32px;margin:20px 20px 0 20px}.tab-top .fl[data-v-c65cbe5a],.tab-top[data-v-c65cbe5a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.table-content[data-v-c65cbe5a]{margin:20px;padding-bottom:20px}.table-content .img-text[data-v-c65cbe5a]{height:60px}.table-content .img-text img[data-v-c65cbe5a]{width:60px;height:60px;border:1px solid #dcdfe6;padding:4px;border-radius:2px}.table-content .img-text .text[data-v-c65cbe5a]{display:inline-block;vertical-align:top;width:75%;margin-left:3px;font-size:13px;line-height:14px}.table-content .img-text .text .goods-descript[data-v-c65cbe5a]{color:#606266;line-height:18px;font-size:14px;margin-bottom:25px}.table-content .img-text .text .goods-code[data-v-c65cbe5a]{color:#909399;font-size:12px;line-height:16px}.table-content .img-text .el-icon-edit-outline[data-v-c65cbe5a]{display:none;cursor:pointer}.table-content .img-text :hover .el-icon-edit-outline[data-v-c65cbe5a]{display:inline-block;cursor:pointer}.table-content .img-text .el-icon-edit-outline[data-v-c65cbe5a]:hover{color:#2f54ed}.table-content .stock-box .el-icon-edit-outline[data-v-c65cbe5a]{display:none;cursor:pointer}.table-content .stock-box:hover .el-icon-edit-outline[data-v-c65cbe5a]{display:inline-block;cursor:pointer}.el-icon-edit-outline[data-v-c65cbe5a]:hover{color:#2f54ed}.undeline-dash[data-v-c65cbe5a]{border-bottom:1px dashed #2f54eb;font-weight:500}.spanclass[data-v-c65cbe5a]{display:inline-block;line-height:32px}.stock-box .el-tooltip__popper{width:150px}
\ No newline at end of file
.w-600[data-v-5ef7bbd6]{width:600px}.form-section[data-v-5ef7bbd6]{margin-bottom:20px;padding:30px 20px}.form-section h3[data-v-5ef7bbd6]{color:#303133;font-weight:500;font-size:14px;margin-bottom:20px}.warm-tip[data-v-5ef7bbd6]{color:#909399;font-size:12px;margin-bottom:20px}.radio-item[data-v-5ef7bbd6]{margin-bottom:20px}.add-time[data-v-5ef7bbd6]{color:#606266;margin-left:140px}.delete-btn[data-v-5ef7bbd6]{display:none;color:#909399;margin-left:7px}.delete-btn[data-v-5ef7bbd6]:hover{color:#2f54ed}.form-item:hover .delete-btn[data-v-5ef7bbd6]{display:inline-block}.add-time .el-icon-plus[data-v-5ef7bbd6]{margin-right:5px}.time-tip[data-v-5ef7bbd6]{color:#909399;font-size:12px;margin-left:7px}.fixed-btn[data-v-5ef7bbd6]{width:100%;height:56px;line-height:56px;position:fixed;bottom:0;left:200px;background:#fff;border-top:1px solid #e4e7ed;text-align:center;margin-left:-100px;z-index:2}.img-list[data-v-5ef7bbd6]{display:inline-block;margin-right:10px;vertical-align:top}.img-list img[data-v-5ef7bbd6]{width:110px;height:110px;border-radius:4px;border:1px solid #e4e7ed}.time-list[data-v-5ef7bbd6]{font-size:0;margin-bottom:22px}
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-08d82f95"],{"5b67":function(e,l,t){},"62b5":function(e,l,t){"use strict";t("5b67")},de2d:function(e,l,t){"use strict";t.r(l);var n=function(){var e=this,l=e.$createElement,t=e._self._c||l;return t("div",{staticStyle:{padding:"20px"}},[e._m(0),t("el-divider"),t("p",[e._v("\n 发货单信息\n ")]),e._m(1),t("el-table",[t("el-table-column",{attrs:{label:"商品",width:"300"}}),t("el-table-column",{attrs:{label:"商品编码"}}),t("el-table-column",{attrs:{label:"成本"}}),t("el-table-column",{attrs:{label:"数量"}}),t("el-table-column",{attrs:{label:"物流公司 | 运单号"}})],1)],1)},a=[function(){var e=this,l=e.$createElement,t=e._self._c||l;return t("div",[t("div",[e._v("核销成功")]),t("div",[e._v("仓库已核销,发货单完成")])])},function(){var e=this,l=e.$createElement,t=e._self._c||l;return t("ul",{staticClass:"order-info"},[t("li",[e._v("发货单号:")]),t("li",[e._v("履约单号:")]),t("li",[e._v("会员姓名:")]),t("li",[e._v("会员卡号:")]),t("li",[e._v("配货方式:")]),t("li",[e._v("收货信息:")])])}],i={name:"DeliveryDetail"},c=i,r=(t("62b5"),t("2877")),s=Object(r["a"])(c,n,a,!1,null,"72acb715",null);l["default"]=s.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-0d4ebdfa"],{"48c3":function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"p20"},[a("div",{staticClass:"pb20 clearfix flex-center"},[a("el-button",{staticClass:"mlAuto",attrs:{type:"primary"},on:{click:function(e){return t.$router.push("/setting/address-lib-add")}}},[t._v("新建地址")])],1),a("el-table",{staticStyle:{width:"100%"},attrs:{"tooltip-effect":"dark",data:t.tableList}},[a("el-table-column",{attrs:{prop:"contact",label:"联系人"}}),a("el-table-column",{attrs:{prop:"phone",label:"联系方式"}}),a("el-table-column",{attrs:{prop:"address",label:"地址"}}),a("el-table-column",{attrs:{label:"地址类型"},scopedSlots:t._u([{key:"default",fn:function(e){return[e.row.defaultFlag?a("el-tag",{staticClass:"mr5"},[t._v("默认")]):t._e(),t._v("\n "+t._s(1==e.row.type?"退款地址":"--")+"\n ")]}}])}),a("el-table-column",{attrs:{label:"操作"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text"},on:{click:function(a){return t.$router.push("/setting/address-lib-add?id="+e.row.addressId)}}},[t._v("编辑")]),a("dm-delete",{attrs:{tips:"确认删除?"},on:{confirm:function(a){return t.del(e.row)}}},[a("el-button",{attrs:{type:"text"}},[t._v("删除")])],1)]}}])})],1)],1)},s=[],r=a("fab6"),o=a("cdc8"),d=o["a"].getAddressList,n=o["a"].delAddress,l={name:"AddressLibList",mixins:[r["c"]],data:function(){return{loading:!1,listParams:{currentPage:1,pageSize:20},total:0,tableList:[],dialogVisible:!1,addressId:""}},created:function(){this.$emit("updateBread",[{breadName:"福利中心"},{breadName:"通用设置"},{breadName:"地址库管理"}])},mounted:function(){this.getTableList()},methods:{del:function(t){var e=this,a=t.addressId;this.loading=!0,n({addressId:a}).then((function(t){e.loading=!1,e.$tips({type:"success",message:"删除成功"}),e.getTableList()})).finally((function(){e.loading=!1}))},getTableList:function(){var t=this;this.loading||(this.loading=!0,d().then((function(e){t.loading=!1,t.tableList=e.result||[]})).finally((function(){t.loading=!1})))}}},c=l,u=a("2877"),p=Object(u["a"])(c,i,s,!1,null,null,null);e["default"]=p.exports},cdc8:function(t,e,a){"use strict";a("8e6e"),a("ac6a"),a("456d");var i=a("ade3"),s=a("71f6"),r=a("f121");function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,i)}return a}function d(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?o(Object(a),!0).forEach((function(e){Object(i["a"])(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):o(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}var n={getGiftId:"/gift/get-gift-id",giftGet:"/gift/get",giftSave:{url:"/gift/save",method:"post"},giftUpdate:{url:"/gift/update",method:"post"},giftPage:{url:"/gift/page",method:"post"},giftStockRecord:"/gift/stock-record",giftStockLog:"/gift/stock-record-log",giftActivity:"/gift/activity-statistics",giftTemplateDownload:{url:"/gift/vir-gift-template-download",useFormData:!0,method:"post"},giftTemplateUpload:"/gift/template-upload",giftBatchUpdate:{url:"/gift/batch-update",method:"post"},giftStandardNew:"/gift/spec-save",giftStandardList:"/gift/spec-list",giftStandardValueNew:"/gift/spec-value-save",giftStandardValueList:"/gift/spec-value-list",virtualCardList:"/gift/vir-card-page",virtualUploadLog:{url:"/gift/vir-card-log-page",method:"post"},batchUpdate:{url:"/gift/batch-update",method:"post"},realCostUpdate:{url:"/gift/real-cost-update",method:"post"},realStockUpdate:{url:"/gift/real-stock-update",method:"post"},getPickupList:"/pickup/get-pickup-list",getGiftShopList:"/gift/get-gift-shop-list",updateName:"/gift/update-name",virtualGiftUpload:{url:"/gift/vir-gift-upload",useFormData:!0},operatorSave:{url:"/auth/operator-save",method:"post"},getOperatorList:"/auth/operator-list",virtualCostUpdate:"/gift/vir-cost-update"},l={updateConfig:{url:"/config/update-config",method:"post",headers:{"Content-Type":"application/json"}},getConfigDetail:"/config/get-config-detail",getAddressList:"/address/get-address-list",getAddressDetails:"address/get-address-details",delAddress:"/address/del-address",insertOrUpdateAddress:{url:"/address/insert-or-update-address",method:"post",headers:{"Content-Type":"application/json"}},pickupList:"/pickup/get-pickup-list",getPickupDetails:"/pickup/get-pickup-details",delPickup:"/pickup/del-pickup",insertPickupStore:{url:"/pickup/insert-pickup-store",method:"post",headers:{"Content-Type":"application/json"}}};n=Object(s["a"])(n,r["f"]),l=Object(s["a"])(l,r["f"]),e["a"]=d(d({},n),l);r["c"].api,r["b"]},fab6:function(t,e,a){"use strict";a.d(e,"c",(function(){return s})),a.d(e,"a",(function(){return r})),a.d(e,"b",(function(){return o}));var i=a("ed08"),s={methods:{refresh:function(){this.listParams.currentPage=1,this.getTableList()},handleSizeChange:function(t){this.listParams.pageSize=t,this.getTableList()},handleCurrentChange:function(t){this.listParams.currentPage=t,this.getTableList()}}},r={methods:{formatterTimeFunc:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"startTime",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"endTime",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"yyyy-MM-dd",s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"dateTime";this[s]?(this.listParams[t]=Object(i["e"])(this[s][0],a),this.listParams[e]=Object(i["e"])(this[s][1],a)):this.listParams[t]=this.listParams[e]=""}}},o={methods:{mainHeight:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.$store.state.mainHeight-52-t}}}}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6287d3af"],{cdc8:function(t,e,a){"use strict";a("8e6e"),a("ac6a"),a("456d");var r=a("ade3"),i=a("71f6"),o=a("f121");function s(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function c(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?s(Object(a),!0).forEach((function(e){Object(r["a"])(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}var l={getGiftId:"/gift/get-gift-id",giftGet:"/gift/get",giftSave:{url:"/gift/save",method:"post"},giftUpdate:{url:"/gift/update",method:"post"},giftPage:{url:"/gift/page",method:"post"},giftStockRecord:"/gift/stock-record",giftStockLog:"/gift/stock-record-log",giftActivity:"/gift/activity-statistics",giftTemplateDownload:{url:"/gift/vir-gift-template-download",useFormData:!0,method:"post"},giftTemplateUpload:"/gift/template-upload",giftBatchUpdate:{url:"/gift/batch-update",method:"post"},giftStandardNew:"/gift/spec-save",giftStandardList:"/gift/spec-list",giftStandardValueNew:"/gift/spec-value-save",giftStandardValueList:"/gift/spec-value-list",virtualCardList:"/gift/vir-card-page",virtualUploadLog:{url:"/gift/vir-card-log-page",method:"post"},batchUpdate:{url:"/gift/batch-update",method:"post"},realCostUpdate:{url:"/gift/real-cost-update",method:"post"},realStockUpdate:{url:"/gift/real-stock-update",method:"post"},getPickupList:"/pickup/get-pickup-list",getGiftShopList:"/gift/get-gift-shop-list",updateName:"/gift/update-name",virtualGiftUpload:{url:"/gift/vir-gift-upload",useFormData:!0},operatorSave:{url:"/auth/operator-save",method:"post"},getOperatorList:"/auth/operator-list",virtualCostUpdate:"/gift/vir-cost-update"},p={updateConfig:{url:"/config/update-config",method:"post",headers:{"Content-Type":"application/json"}},getConfigDetail:"/config/get-config-detail",getAddressList:"/address/get-address-list",getAddressDetails:"address/get-address-details",delAddress:"/address/del-address",insertOrUpdateAddress:{url:"/address/insert-or-update-address",method:"post",headers:{"Content-Type":"application/json"}},pickupList:"/pickup/get-pickup-list",getPickupDetails:"/pickup/get-pickup-details",delPickup:"/pickup/del-pickup",insertPickupStore:{url:"/pickup/insert-pickup-store",method:"post",headers:{"Content-Type":"application/json"}}};l=Object(i["a"])(l,o["f"]),p=Object(i["a"])(p,o["f"]),e["a"]=c(c({},l),p);o["c"].api,o["b"]},fa56:function(t,e,a){"use strict";a.r(e);var r=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"p20"},[a("el-form",{ref:"ruleForm",staticStyle:{"min-height":"400px"},attrs:{model:t.ruleForm,rules:t.rules,"label-width":"150px"}},[a("el-form-item",{attrs:{label:"收货自动加库存",prop:"backStockFlag"}},[a("el-switch",{attrs:{"active-value":1,"inactive-value":0},model:{value:t.ruleForm.backStockFlag,callback:function(e){t.$set(t.ruleForm,"backStockFlag",e)},expression:"ruleForm.backStockFlag"}}),a("div",{staticClass:"gray03 fz12"},[t._v("开启自动加库存后,在退货单同意收货后,福利中心可占库存将会增加")])],1),a("el-form-item",[a("el-button",{attrs:{type:"primary"},on:{click:t.submitForm}},[t._v("保存")]),t.ruleForm.updateTime?a("span",{staticClass:"ml10 gray02"},[t._v("最近修改:"+t._s(t.formatDateTimeByType(t.ruleForm.updateTime,"yyyy-MM-dd HH:mm:ss")))]):t._e()],1)],1)],1)},i=[],o=(a("8e6e"),a("ac6a"),a("456d"),a("ade3")),s=a("ed08"),c=a("cdc8");function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function p(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?l(Object(a),!0).forEach((function(e){Object(o["a"])(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}var n=c["a"].updateConfig,d=c["a"].getConfigDetail,u={name:"SalesReturnSetting",data:function(){return{loading:!1,ruleForm:{configId:"",backStockFlag:0,createTime:"",updateTime:""},rules:{}}},created:function(){this.$emit("updateBread",[{breadName:"福利中心"},{breadName:"通用设置"},{breadName:"退货单设置"}])},mounted:function(){this.getDetail()},methods:{formatDateTimeByType:s["e"],submitForm:function(){var t=this;this.loading||(this.loading=!0,n({configId:this.ruleForm.configId,backStockFlag:this.ruleForm.backStockFlag}).then((function(e){t.loading=!1,t.getDetail(),t.$tips({message:"保存成功",type:"success"})})).finally((function(){t.loading=!1})))},getDetail:function(){var t=this;d().then((function(e){t.ruleForm=p(p({},t.ruleForm),e.result)}))}}},g=u,f=a("2877"),m=Object(f["a"])(g,r,i,!1,null,null,null);e["default"]=m.exports}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-53f4695c"],{"1e4b":function(t,e,s){"use strict";s.r(e);var n=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{staticClass:"enter"},t._l(t.wfTypes,(function(e,n){return s("div",{key:n,class:"b"+(n+1)},[s("span",{staticClass:"title"},[t._v(t._s(e.title))]),s("p",{staticClass:"desc"},[t._v(t._s(e.desc))]),s("router-link",{staticClass:"target",attrs:{to:e.target}},[s("i",{staticClass:"icon-right-circle iconfont-welfare4"})])],1)})),0)])},c=[],i=s("f9e4"),a={name:"Index",data:function(){return{wfTypes:i["b"]}}},r=a,l=(s("d457"),s("2877")),u=Object(l["a"])(r,n,c,!1,null,"2fe4d5e4",null);e["default"]=u.exports},b46e:function(t,e,s){},d457:function(t,e,s){"use strict";s("b46e")}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7f6e53d4"],{"1e4b":function(t,e,s){"use strict";s.r(e);var n=function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{staticClass:"enter"},t._l(t.wfTypes,(function(e,n){return s("div",{key:n,class:"b"+(n+1)},[s("span",{staticClass:"title"},[t._v(t._s(e.title))]),s("p",{staticClass:"desc"},[t._v(t._s(e.desc))]),s("router-link",{staticClass:"target",attrs:{to:e.target}},[s("i",{staticClass:"icon-right-circle iconfont-welfare4"})])],1)})),0)])},i=[],a=s("f9e4"),c={name:"Index",data:function(){return{wfTypes:a["b"]}}},r=c,l=(s("d457"),s("2877")),u=Object(l["a"])(r,n,i,!1,null,"2fe4d5e4",null);e["default"]=u.exports},b46e:function(t,e,s){},d457:function(t,e,s){"use strict";s("b46e")}}]);
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-ad95361e"],{cdc8:function(t,e,a){"use strict";a("8e6e"),a("ac6a"),a("456d");var i=a("ade3"),s=a("71f6"),r=a("f121");function n(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,i)}return a}function l(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?n(Object(a),!0).forEach((function(e){Object(i["a"])(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):n(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}var o={getGiftId:"/gift/get-gift-id",giftGet:"/gift/get",giftSave:{url:"/gift/save",method:"post"},giftUpdate:{url:"/gift/update",method:"post"},giftPage:{url:"/gift/page",method:"post"},giftStockRecord:"/gift/stock-record",giftStockLog:"/gift/stock-record-log",giftActivity:"/gift/activity-statistics",giftTemplateDownload:{url:"/gift/vir-gift-template-download",useFormData:!0,method:"post"},giftTemplateUpload:"/gift/template-upload",giftBatchUpdate:{url:"/gift/batch-update",method:"post"},giftStandardNew:"/gift/spec-save",giftStandardList:"/gift/spec-list",giftStandardValueNew:"/gift/spec-value-save",giftStandardValueList:"/gift/spec-value-list",virtualCardList:"/gift/vir-card-page",virtualUploadLog:{url:"/gift/vir-card-log-page",method:"post"},batchUpdate:{url:"/gift/batch-update",method:"post"},realCostUpdate:{url:"/gift/real-cost-update",method:"post"},realStockUpdate:{url:"/gift/real-stock-update",method:"post"},getPickupList:"/pickup/get-pickup-list",getGiftShopList:"/gift/get-gift-shop-list",updateName:"/gift/update-name",virtualGiftUpload:{url:"/gift/vir-gift-upload",useFormData:!0},operatorSave:{url:"/auth/operator-save",method:"post"},getOperatorList:"/auth/operator-list",virtualCostUpdate:"/gift/vir-cost-update"},c={updateConfig:{url:"/config/update-config",method:"post",headers:{"Content-Type":"application/json"}},getConfigDetail:"/config/get-config-detail",getAddressList:"/address/get-address-list",getAddressDetails:"address/get-address-details",delAddress:"/address/del-address",insertOrUpdateAddress:{url:"/address/insert-or-update-address",method:"post",headers:{"Content-Type":"application/json"}},pickupList:"/pickup/get-pickup-list",getPickupDetails:"/pickup/get-pickup-details",delPickup:"/pickup/del-pickup",insertPickupStore:{url:"/pickup/insert-pickup-store",method:"post",headers:{"Content-Type":"application/json"}}};o=Object(s["a"])(o,r["f"]),c=Object(s["a"])(c,r["f"]),e["a"]=l(l({},o),c);r["c"].api,r["b"]},e54f:function(t,e,a){"use strict";a.r(e);var i=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{directives:[{name:"loading",rawName:"v-loading",value:t.loading,expression:"loading"}],staticClass:"p20"},[a("div",{staticClass:"pb20 clearfix flex-center"},[a("el-input",{staticClass:"w400 mrAuto",attrs:{"prefix-icon":"el-icon-search",clearable:"",placeholder:"请输入自提点名称进行搜索"},on:{change:t.refresh},model:{value:t.listParams.name,callback:function(e){t.$set(t.listParams,"name",e)},expression:"listParams.name"}}),a("el-select",{staticClass:"more-select mr10",attrs:{placeholder:"批量操作"},on:{change:t.mutiOption}},[a("el-option",{attrs:{disabled:!t.selectList.length,value:0}},[t._v("批量设置")]),a("el-option",{attrs:{disabled:!t.selectList.length,value:1}},[t._v("批量删除")])],1),a("el-button",{attrs:{type:"default"}},[t._v("导出自提点")]),a("el-button",{attrs:{type:"primary"},on:{click:function(e){return t.$router.push("/setting/pickup-add")}}},[t._v("新建自提点")])],1),a("el-table",{staticStyle:{width:"100%"},attrs:{"tooltip-effect":"dark",data:t.tableList},on:{"selection-change":function(e){t.selectList=e}}},[a("el-table-column",{attrs:{type:"selection",width:"55"}}),a("el-table-column",{attrs:{label:"自提点名称",prop:"name","min-width":"180px;"}}),a("el-table-column",{attrs:{label:"自提点地址",prop:"address","min-width":"180px;"}}),a("el-table-column",{attrs:{label:"联系电话",prop:"phone","min-width":"140px;"}}),a("el-table-column",{attrs:{label:"自提时间可选","min-width":"120px;"},scopedSlots:t._u([{key:"default",fn:function(e){return[0===e.row.openChooseTime?a("p",{staticClass:"address-type"},[t._v("不可选")]):t._e(),1===e.row.openChooseTime?a("p",{staticClass:"address-type"},[t._v("可选")]):t._e()]}}])}),a("el-table-column",{attrs:{label:"操作"},scopedSlots:t._u([{key:"default",fn:function(e){return[a("el-button",{attrs:{type:"text"},on:{click:function(a){return t.$router.push("setting/pickup-edit?id="+e.row.pickupId)}}},[t._v("编辑")]),a("dm-delete",{attrs:{tips:"确认删除?"},on:{confirm:function(a){return t.del(e.row.pickupId)}}},[a("el-button",{attrs:{type:"text"}},[t._v("删除")])],1)]}}])})],1),a("div",{staticClass:"clearfix"},[t.tableList.length?a("dm-pagination",{staticClass:"fr mb0",attrs:{background:"","current-page":t.listParams.currentPage,"page-sizes":[20,40,60,80],"page-size":t.listParams.pageSize,layout:"total, sizes, prev, pager, next",total:t.total},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}}):t._e()],1)],1)},s=[],r=a("fab6"),n=a("cdc8"),l=n["a"].pickupList,o=n["a"].delPickup,c={name:"PickupList",mixins:[r["c"]],data:function(){return{loading:!1,listParams:{name:"",currentPage:1,pageSize:20},total:0,tableList:[],pickedForm:{dialogVisible:!1,selectIdList:[],list:[{timeRange:[]}]},selectList:[]}},created:function(){this.$emit("updateBread",[{breadName:"福利中心"},{breadName:"通用设置"},{breadName:"地址库管理"}])},mounted:function(){this.getTableList()},methods:{mutiOption:function(t){1==t&&this.del(this.selectList.map((function(t){return t.pickupId})).join(","))},del:function(t){var e=this;this.loading=!0,o({pickupIds:t}).then((function(t){e.loading=!1,e.$tips({type:"success",message:"操作成功"}),e.getTableList()})).finally((function(){e.loading=!1}))},getTableList:function(){var t=this;this.loading||(this.loading=!0,l().then((function(e){t.loading=!1;var a=e.result;t.tableList=a.result||[],t.total=a.totalCount,0===t.tableList.length&&1!==t.listParams.currentPage&&(t.listParams.currentPage-=1,t.getTableList())})).finally((function(){t.loading=!1})))}}},d=c,p=a("2877"),u=Object(p["a"])(d,i,s,!1,null,null,null);e["default"]=u.exports},fab6:function(t,e,a){"use strict";a.d(e,"c",(function(){return s})),a.d(e,"a",(function(){return r})),a.d(e,"b",(function(){return n}));var i=a("ed08"),s={methods:{refresh:function(){this.listParams.currentPage=1,this.getTableList()},handleSizeChange:function(t){this.listParams.pageSize=t,this.getTableList()},handleCurrentChange:function(t){this.listParams.currentPage=t,this.getTableList()}}},r={methods:{formatterTimeFunc:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"startTime",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"endTime",a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"yyyy-MM-dd",s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"dateTime";this[s]?(this.listParams[t]=Object(i["e"])(this[s][0],a),this.listParams[e]=Object(i["e"])(this[s][1],a)):this.listParams[t]=this.listParams[e]=""}}},n={methods:{mainHeight:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.$store.state.mainHeight-52-t}}}}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -48,6 +48,6 @@
<script src="//web-1251519181.file.myqcloud.com/components/delete.1.1.4.js"></script><!-- 删除轻弹窗 -->
<script src="//web-1251519181.file.myqcloud.com/components/input-number.1.0.10.js"></script><!-- 输入框 -->
<script src="//web-1251519181.file.myqcloud.com/components/acc-group-select.1.0.3.js"></script><!-- 账号分组组件 -->
<script src="//web-1251519181.file.myqcloud.com/components/editor.1.1.12.js"></script><!-- 富文本编辑器 -->
<script src="//web-1251519181.file.myqcloud.com/components/editor.1.1.13.js"></script><!-- 富文本编辑器 -->
</body>
</html>
......@@ -13,6 +13,12 @@ let common = {
let o2 = {
getSubappList: '/area/member-cards', // 获取域列表
getAppList: '/stock/application-list', // 获取应用列表
getStockList: {
// 库存记录
url: '/stock/stock-list',
method: 'post',
useFormData: true,
},
};
// other
......
......@@ -29,10 +29,11 @@ let card = {
couponLogPage: '/coupon/coupon-log-page', // 卡券领取列表
giveLogList: '/coupon-log/coupon-give-log-page', // 卡券转赠记录
checkDemoCode: {
// 根据demo code TODO:
// 根据demo code
url: '/coupon/check-demo-code',
alertError: false
},
getMallShopList: '/area/all-mall-shop', // 获取微盟店铺
couponlogList: {
// 会员领取记录
url: '/coupon-log/coupon-log-page',
......
......@@ -28,7 +28,11 @@ let realGift = {
giftStockRecord: '/gift/stock-record', // 库存记录
giftStockLog: '/gift/stock-record-log', // 库存操作记录
giftActivity: '/gift/activity-statistics', // 活动统计
giftTemplateDownload: '/gift/template-download', // 下载模板
giftTemplateDownload: {
url: '/gift/vir-gift-template-download',
useFormData: true,
method: 'post'
}, // 下载虚拟礼品模板
giftTemplateUpload: '/gift/template-upload', // 上传模板
giftBatchUpdate: {
// 礼品批量操作
......@@ -49,7 +53,7 @@ let realGift = {
method: 'post'
}, // 批量操作
realCostUpdate: {
url: '/gift/real-cost-updat',
url: '/gift/real-cost-update',
method: 'post'
}, // 实物礼品调整成本
realStockUpdate: {
......@@ -63,14 +67,42 @@ let realGift = {
url: '/gift/vir-gift-upload',
useFormData: true,
}, // 虚拟礼品卡密卡号上传
operatorSave: {
url: '/auth/operator-save',
method: 'post'
}, // 保存操作人权限数据
getOperatorList: '/auth/operator-list', // 查询操作人权限回显数据
virtualCostUpdate: '/gift/vir-cost-update', // 虚拟礼品调整库存
};
realGift = getFetch(realGift, welfarePrefix);
export default { ...realGift };
// 通用配置
let setting = {
updateConfig: {
url: '/config/update-config',
method: 'post',
headers: { 'Content-Type': 'application/json' }
},
getConfigDetail: '/config/get-config-detail',
getAddressList: '/address/get-address-list',
getAddressDetails: 'address/get-address-details',
delAddress: '/address/del-address',
insertOrUpdateAddress: { // 新增或修改退货地址
url: '/address/insert-or-update-address',
method: 'post',
headers: { 'Content-Type': 'application/json' }
},
pickupList: '/pickup/get-pickup-list',
getPickupDetails: '/pickup/get-pickup-details',
delPickup: '/pickup/del-pickup',
insertPickupStore: { // 新增或修改自提点
url: '/pickup/insert-pickup-store',
method: 'post',
headers: { 'Content-Type': 'application/json' }
},
};
realGift = getFetch(realGift, welfarePrefix);
setting = getFetch(setting, welfarePrefix);
export default { ...realGift, ...setting };
// export const downloadCouponCSV = config.api + marketPrefix + '/download-code-csv-template'; // 下载导入GIC券号csv示例文件 TODO:
// export const importCode = config.api + marketPrefix + '/import-gic-custom-code'; // 导入券码 TODO:
// export const importDestoryCode = marketPrefix + '/destroy-plugin/import-destroy-code'; // 上传销毁code列表 TODO:
// export const downloadDestroyCodeTemplate = config.api + marketPrefix + '/destroy-plugin/download-destroy-code-template'; // 下载销毁模板示例 TODO:
export const getGiftLoginUser = config.api + commonPrefix + '/user/get-login-user'; // 获取商户名称
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -310,9 +310,6 @@ body .damo-goods-selector{
// 覆盖部分
.damolish {
// overflow-y: auto !important;
.el-tooltip__popper {
max-width: 400px;
}
.dm-input__counter {
bottom: 2px !important;
}
......
......@@ -28,7 +28,7 @@
<app-info :code="moduleCode" />
</div>
</dm-layout>
<el-dialog :visible="noAreaWarnVisible" append-to-body width="500px" :close-on-press-escape="false" :close-on-click-modal="true" :show-close="false" lock-scroll>
<!-- <el-dialog :visible="noAreaWarnVisible" append-to-body width="500px" :close-on-press-escape="false" :close-on-click-modal="true" :show-close="false" lock-scroll>
<div class="text-center">
<p class="gray02 fz16" style="display:flex;justify-content: center;align-items: center;"><i class="el-icon-warning fz30 mr5 warning-color"></i>暂无资源权限</p>
<p class="fz13 gray03 mt20">没有资源权限,如:可操作的会员卡、服务号等,请联系管理员进行配置</p>
......@@ -38,7 +38,7 @@
<el-button @click="toAppCenter"> 返回应用中心</el-button>
</div>
</span>
</el-dialog>
</el-dialog> -->
<switch-page />
</div>
</template>
......
......@@ -7,31 +7,29 @@
<div>
<p class="fz16 mb15">操作记录<span class="fz12 ml10 gray03">主要对手动调整库存,应用占用库存,应用释放库存的场景下对福利“可占库存”引起变更进行记录</span></p>
<div class="table-search-head">
<el-select class="mr10 w140" clearable v-model="listParams.status" placeholder="全部操作类型" @change="refresh">
<el-option v-for="item in stockAdjustStatus" :key="item.value" :label="item.label" :value="item.value"></el-option>
<el-select class="mr10 w140" clearable v-model="listParams.modifyType" placeholder="全部操作类型" @change="refresh">
<el-option v-for="item in stockAdjustType" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-select class="mr10 w140" clearable v-model="listParams.status" placeholder="全部应用" @change="refresh">
<el-option label="福利调整(手动)" :value="1"></el-option>
<el-option label="福利调整(同步)" :value="2"></el-option>
<el-option label="积分商城" :value="3"></el-option>
<el-select v-model="appCodes" class="w250 mr10" multiple placeholder="全部来源" clearable @change="changeAppCode">
<el-option v-for="item in appList" :key="item.appCode" :label="item.appName" :value="item.appCode"></el-option>
</el-select>
<el-input class="mr10 w300" v-model="listParams.activityName" clearable placeholder="请输入活动名称搜索" @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-date-picker class="w300 mr10" v-model="dateTime" type="daterange" range-separator="~" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
</div>
</div>
<el-table tooltip-effect="dark" :data="tableList" style="width:100%">
<el-table-column prop="giveTime" label="操作时间" min-width="120">
<span slot-scope="scope" v-html="listTime(scope.row.createTime)"></span>
<el-table-column prop="modifyTime" label="操作时间" min-width="120" fixed="left">
<span slot-scope="scope" v-html="listTime(scope.row.modifyTime)"></span>
</el-table-column>
<el-table-column label="调整类型" min-width="120" fixed="left">
<span slot-scope="scope">{{ scope.row.type | fType }}</span>
<el-table-column label="调整类型" min-width="120">
<span slot-scope="scope">{{ scope.row.modifyType | fType }}</span>
</el-table-column>
<el-table-column prop="couponCode" label="调整数量" min-width="120"> </el-table-column>
<el-table-column prop="couponCode" label="可占库存" min-width="120"> </el-table-column>
<el-table-column prop="couponCode" label="操作人" min-width="120"> </el-table-column>
<el-table-column prop="couponCode" label="调整应用" min-width="120"> </el-table-column>
<el-table-column prop="couponCode" label="活动名称" min-width="120"> </el-table-column>
<el-table-column prop="couponCode" label="备注" min-width="140" show-overflow-tooltip> </el-table-column>
<el-table-column prop="modifyStock" label="调整数量" min-width="120"> </el-table-column>
<el-table-column prop="afterRemainedStock" label="可占库存" min-width="120"> </el-table-column>
<el-table-column prop="creatorName" label="操作人" min-width="120"> </el-table-column>
<el-table-column prop="appName" label="调整应用" min-width="120"> </el-table-column>
<el-table-column prop="activityName" label="活动名称" min-width="120"> </el-table-column>
<el-table-column prop="descr" label="备注" min-width="140" show-overflow-tooltip> </el-table-column>
</el-table>
<div class="clearfix">
<dm-pagination class="fr mb0" v-if="tableList.length" background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></dm-pagination>
......@@ -42,14 +40,14 @@
<script>
import { page, formate } from '@/mixins/table.js';
import { listTime } from '@/utils/index.js';
import fetch from '@/api/gic-card.js';
import fetch from '@/api/common.js';
import { cardType } from '@/config/mapping/gic-card';
import { stockAdjustStatus } from '@/config/mapping/common';
import { stockAdjustType } from '@/config/mapping/common';
import welfareItem from './welfare-item';
const { giveLogList } = fetch;
const { getStockList, getAppList } = fetch;
export default {
name: 'SendList',
name: 'StockList',
components: {
welfareItem,
},
......@@ -58,6 +56,10 @@ export default {
welfareId: {
type: String,
required: true
},
type: {
type: Number, // 1实物礼品 2虚拟礼品 3卡券 4卡券包
required: true
}
},
data() {
......@@ -65,23 +67,27 @@ export default {
loading: false,
dateTime: [ , ],
listParams: {
appCode: '',
welfareId: this.welfareId,
modifyType: '', // 调整类型(1:加,2:减)
startDate: '',
endDate: '',
activityName: '',
receiveBeginTime: '',
receiveEndTime: '',
appCodes: '',
currentPage: 1,
pageSize: 20
},
stockAdjustStatus: Object.keys(stockAdjustStatus).map(v => { return { label: stockAdjustStatus[v], value: v }; }),
stockAdjustType: Object.keys(stockAdjustType).map(v => { return { label: stockAdjustType[v], value: v }; }),
total: 0,
tableList: [],
appList: [],
appCodes: []
};
},
created() {
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: 'GIC卡券' }, { breadName: '卡券日志' }, { breadName: '转赠记录' } ]);
},
mounted() {
this.getTableList();
if(this.welfareId) {
this.getAppList();
this.getTableList();
}
},
methods: {
listTime,
......@@ -96,16 +102,22 @@ export default {
formatCardType(row) {
return cardType[row.cardType].label;
},
changeAppCode(ids) {
this.listParams.appCodes = ids.join(',');
this.refresh();
},
getAppList() {
getAppList().then(res => {
this.appList = res.result || [];
});
},
getTableList() {
return;
if(this.loading) {
return;
}
this.formatterTimeFunc('startDate', 'endDate', 'yyyy-MM-dd', 'dateTime');
this.loading = true;
this.formatterTimeFunc('giveBeginTime', 'giveEndTime', 'yyyy-MM-dd', 'dateTime');
let params = { ...this.listParams, memberCardId: this.currentAreaId };
// TODO: search
giveLogList(params).then(res => {
getStockList(this.listParams).then(res => {
this.loading = false;
const data = res.result;
this.tableList = data.result || [];
......@@ -120,9 +132,9 @@ export default {
});
},
},
filter: {
filters: {
fType(v) {
return stockAdjustStatus[v] || '未知操作';
return stockAdjustType[v] || '--';
}
}
};
......
......@@ -37,10 +37,8 @@ export const wfTypes = [
{ title: 'GIC 卡券包', desc: '文案描述文案描述文案描述', target: '/card-package/list', code: 'w-card-package' },
];
export const stockAdjustStatus = {
// 调整类型(1:加,2:减)
export const stockAdjustType = {
1: '增加',
2: '减少',
3: '占用',
4: '释放',
};
\ No newline at end of file
import Layout from '@/components/layout/layout';
export default [
{
path: '/gift-manage', // 库存记录
component: Layout,
redirect: '/gift-manage/stock-record',
children: [
{
path: 'stock-record',
component: () => import('@/views/gift-manage/stock-record.vue'),
},
// {
// path: 'virtual-gift-detail',
// component: () => import('@/views/gift-manage/virtual-gift-detail.vue'),
// }
],
},
// ****通用配置开始****
{
path: '/setting',
component: Layout,
redirect: '/setting/sales-return-setting',
children: [
{
path: 'sales-return-setting', // 退货单设置
component: () => import('@/views/gift-manage/sales-return-setting.vue'),
},
{
path: 'address-lib-list', // 地址库管理
component: () => import('@/views/gift-manage/address-lib-list.vue'),
},
{
path: 'address-lib-add', // 新建地址库
component: () => import('@/views/gift-manage/address-lib-form.vue'),
meta: {
type: 'add',
path: '/settinge/address-lib-list'
}
},
{
path: 'address-lib-edit', // 编辑地址库
component: () => import('@/views/gift-manage/address-lib-form.vue'),
meta: {
type: 'edit',
path: '/settinge/address-lib-list'
}
},
{
path: 'pickup-list', // 自提点管理列表
component: () => import('@/views/gift-manage/pickup-list.vue'),
},
{
path: 'pickup-add', // 新建自提点
component: () => import('@/views/gift-manage/pickup-form.vue'),
meta: {
type: 'add',
path: '/settinge/pickup-list'
}
},
{
path: 'pickup-edit', // 编辑自提点
component: () => import('@/views/gift-manage/pickup-form.vue'),
meta: {
type: 'edit',
path: '/settinge/pickup-list'
}
},
],
},
// ****通用配置结束****
];
\ No newline at end of file
......@@ -13,7 +13,15 @@ export default [
{
path: 'real-gift-detail',
component: () => import('@/views/gift-manage/real-gift-detail.vue'),
}
},
// 库存记录
{
path: 'real-stock-list',
component: () => import(/* webpackChunkName: "gic-card" */'@/views/gift-manage/real-stock-list.vue'),
meta: {
path: '/gift-manage/list'
}
},
],
},
];
\ No newline at end of file
......@@ -4,7 +4,8 @@ import cardPackage from './card-package';
import realGift from './real-gift';
import Layout from '@/components/layout/layout';
import virtualGift from './virtual-gift';
import stockRecord from './stock-record';
import giftOther from './gift-other';
// import stockRecord from './stock-record';
import Performance from './performance';
export const asyncRoutes = [
......@@ -12,7 +13,8 @@ export const asyncRoutes = [
...cardPackage,
...realGift,
...virtualGift,
...stockRecord,
...giftOther,
// ...stockRecord,
...Performance
];
......
import Layout from '@/components/layout/layout';
export default [
{
path: '/gift-manage',
component: Layout,
redirect: '/gift-manage/stock-record',
children: [
{
path: 'stock-record',
component: () => import('@/views/gift-manage/stock-record.vue'),
},
// {
// path: 'virtual-gift-detail',
// component: () => import('@/views/gift-manage/virtual-gift-detail.vue'),
// }
],
},
];
\ No newline at end of file
......@@ -13,7 +13,15 @@ export default [
{
path: 'virtual-gift-detail',
component: () => import('@/views/gift-manage/virtual-gift-detail.vue'),
}
},
// 库存记录
{
path: 'virtual-stock-list',
component: () => import(/* webpackChunkName: "gic-card" */'@/views/gift-manage/virtual-stock-list.vue'),
meta: {
path: '/gift-manage/list'
}
},
],
},
];
\ No newline at end of file
......@@ -176,4 +176,52 @@ export const toLog = (appCode, id, name, ecuId) => {
// second >= 10 ? (second = second) : (second = '0' + second); //判断小于10的秒的情况
// return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
// };
\ No newline at end of file
// };
//
/**
* 时间戳转换成时分秒
* @param {String} time 时间
* @returns {String}
*/
export const getSeconds = (time) => {
if (!isNaN(time)) time = Number(time);
let now = new Date(time);
let hour = now.getHours();
hour >= 10 && (hour = '0' + hour); // 判断小于10的时的情况
let minute = now.getMinutes();
minute >= 10 && (minute = '0' + minute); // 判断小于10的分的情况
let second = now.getSeconds();
second >= 10 && (second = '0' + second); // 判断小于10的秒的情况
return hour + ':' + minute + ':' + second;
};
/**
* 时间戳转换成时分08:10
* @param {String} time 时间
* @returns {String}
*/
export const getHours = (time) => {
if (!isNaN(time)) time = Number(time);
let now = new Date(time);
let hour = now.getHours();
hour >= 10 && (hour = '0' + hour); // 判断小于10的时的情况
let minute = now.getMinutes();
minute >= 10 && (minute = '0' + minute); // 判断小于10的分的情况
return hour + ':' + minute;
};
/**
* 时间戳转换成时分8:10
* @param {String} time 时间
* @returns {String}
*/
export const getHours2 = (time) => {
if (!isNaN(time)) time = Number(time);
let now = new Date(time);
let hour = now.getHours();
// hour >= 10 ? (hour = hour) : (hour = '0' + hour); //判断小于10的时的情况
let minute = now.getMinutes();
// minute >= 10 ? (minute = minute) : (minute = '0' + minute); //判断小于10的分的情况
return hour + ':' + minute;
};
\ No newline at end of file
......@@ -2,23 +2,23 @@ import axios from 'axios';
import qs from 'qs';
import { Message } from 'element-ui';
import { SUCCESS_CODE, origin } from '@/config';
import Store from '@/store';
// import Store from '@/store';
/**
* 请求白名单
* 展示左侧菜单但却没有选中的子应用id时这些请求将不会进行过滤
*/
const whiteList = [
'/gic-auth-web/get-login-user-info',
'/api-marketing/enterprise-serve-info',
'/gic-auth-web/login-user-menu-of-app',
'/api-welfare/area/member-cards',
'/gic-auth-web/login-collaborator-operation-item',
'/gic-auth-web/login-user-operation-item-of-app',
'/gic-auth-web/login-collaborator-menu-of-app',
'/gic-auth-web/login-user-operation-item',
'/application-center-web/business/cooperation-application/find-list',
'/gic-auth-web/get-app-by-code'
];
// const whiteList = [
// '/gic-auth-web/get-login-user-info',
// '/api-marketing/enterprise-serve-info',
// '/gic-auth-web/login-user-menu-of-app',
// '/api-welfare/area/member-cards',
// '/gic-auth-web/login-collaborator-operation-item',
// '/gic-auth-web/login-user-operation-item-of-app',
// '/gic-auth-web/login-collaborator-menu-of-app',
// '/gic-auth-web/login-user-operation-item',
// '/application-center-web/business/cooperation-application/find-list',
// '/gic-auth-web/get-app-by-code'
// ];
// import { getToken } from '@/'
// rest: 支持restfulapi url里传动态参数
// alertError:是否全局弹出message,默认弹出true
......@@ -29,6 +29,7 @@ const whiteList = [
* @param {*} code ui目前只处理如下code
*/
function handlerErr(code) {
return;
if (process.env['NODE_ENV'] === 'development') { // eslint-disable-line
return;
}
......@@ -47,12 +48,12 @@ function handlerErr(code) {
axios.defaults.baseURL = origin;
const request = (opt, params, restObj) => {
if ((!Store.state.project || (Store.state.project.includes('card') && !Store.state.currentAreaId)) && !whiteList.includes(opt.url) ) {
// 有左侧但没有选中子应用id || 禁用
return new Promise((resolve, reject) => {
reject();
});
}
// if ((!Store.state.project || (Store.state.project.includes('card') && !Store.state.currentAreaId)) && !whiteList.includes(opt.url) ) {
// // 有左侧但没有选中子应用id || 禁用
// return new Promise((resolve, reject) => {
// reject();
// });
// }
params = Object.assign({}, params);
......
......@@ -29,7 +29,6 @@
<el-form-item>
<el-button type="primary" v-if="isAdd" @click="addForm">确认新建</el-button>
<el-button type="primary" :disabled="ruleForm.packageStock == info.packageStock" v-else @click="editForm">保存</el-button>
<el-button @click="$router.go(-1)">返回</el-button>
</el-form-item>
<el-form-item v-if="!isAdd" class="is-required">
<el-tooltip content="若添加的卡券为固定有效期,仅允许添加和有效期限时间重合的卡券" placement="bottom" slot="label" open-delay="200">
......@@ -42,27 +41,40 @@
<el-button type="text" @click="addCard" class="ml5">保存</el-button>
</div>
</div>
<el-table v-if=" couponList.length" :data="couponList" v-loading="cardLoading">
<el-table-column prop="date" label="卡券信息" min-width="200">
<!-- 卡券类型(0:抵金券,1:折扣券,2:兑换券, 3: 其他券) -->
<template slot-scope="scope">
<el-tag class="mr5">{{ cardType[scope.row.cardType].label }}</el-tag>{{ scope.row.cardName }}
</template>
</el-table-column>
<el-table-column prop="date" label="有效期" min-width="200">
<span slot-scope="scope" v-html="effectiveDateFormate(scope.row)"></span>
</el-table-column>
<el-table-column prop="occupyStock" label="卡券包内剩余库存" min-width="200"> </el-table-column>
<el-table-column prop="remainedStock" label="福利可占库存" min-width="180"> </el-table-column>
<el-table-column prop="date" label="福利状态" min-width="180"> </el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<dm-delete @confirm="delCard(scope.row)" tips="删除后已占用库存将被释放,确认删除?">
<el-button type="text">删除</el-button>
</dm-delete>
</template>
</el-table-column>
</el-table>
<div class="imitation-table" v-if="couponList.length" style="width:100%;" v-loading="cardLoading">
<el-row class="thead">
<el-col :span="5">卡券信息</el-col>
<el-col :span="5">有效期</el-col>
<el-col :span="4">卡券包内剩余库存</el-col>
<el-col :span="4">福利可占库存</el-col>
<el-col :span="3">福利状态</el-col>
<el-col :span="3">操作</el-col>
</el-row>
<div class="tbody">
<div class="td" v-for="(item, idx) in couponList" :key="idx">
<el-row>
<el-col :span="5">
<el-tag class="mr5">{{ cardType[item.cardType].label }}</el-tag>
<router-link target="_blank" :to="{path:'/gic-card/info',query:{ id: item.couponId }}">{{ item.cardName }}</router-link>
</el-col>
<el-col :span="5"><span v-html="effectiveDateFormate(item)"></span></el-col>
<el-col :span="4">{{ item.activityRemainedStock }}</el-col>
<el-col :span="4">{{ item.remainedStock }}</el-col>
<el-col :span="3">
<!-- 1:已生效,2:已删除,3:已过期 -->
<span v-if="item.welfareStatus == 1" class="state-point state-point-success">已生效</span>
<span v-else class="state-point state-point-success">{{ item.welfareStatus == 2 ? '已删除' : '已过期' }}</span>
</el-col>
<el-col :span="3">
<dm-delete @confirm="delCard(item)" tips="删除后已占用库存将被释放,确认删除?">
<el-button type="text">删除</el-button>
</dm-delete>
</el-col>
</el-row>
<div v-if="item.remainedStock < ruleForm.packageStock" class="gray03"><i class="el-icon-warning mr5 danger-color"></i>卡券包库存大于福利库存,请调整福利占用库存</div>
</div>
</div>
</div>
</el-form-item>
</el-form>
<div class="hidden">
......@@ -199,8 +211,8 @@ export default {
Object.keys(this.ruleForm).map(v => {
this.ruleForm[v] = info[v];
});
// this.stockType = info.stockUseType == 2 ? :
// params.stockUseType = this.stockType.length == 2 ? 2 : this.stockType[0];
// 库存使用类型(0:占用,1:动态 , 2占用+动态)
this.stockType = info.stockUseType == 2 ? [ 0, 1 ] : [ info.stockUseType ] ;
this.dateTime = [ info.beginDate, info.endDate ];
this.couponList = res.result.couponList || [];
}).finally(() => {
......@@ -238,6 +250,16 @@ export default {
},
// 编辑卡券包
editForm() {
let flag = false;
this.couponList.forEach(v => {
if(v.remainedStock < this.ruleForm.packageStock && v.remainedStock) {
flag = true;
}
});
if(flag) {
this.$tips({ message: '卡券包库存大于福利库存,请调整福利占用库存', type: 'error' });
return;
}
const params = {
couponPackageId: this.couponPackageId,
count: Math.abs(this.info.packageStock - this.ruleForm.packageStock),
......
......@@ -50,7 +50,7 @@
<template slot-scope="scope">
{{ scope.row.useCouponSize }}/{{ scope.row.totalCouponSize }}
<el-tooltip content="存在已过期或已删除的卡券" placement="top" open-delay="200" v-if="scope.row.totalCouponSize > scope.row.useCouponSize">
<i class="el-icon-warning ml5"></i>
<i class="el-icon-warning ml5 danger-color cursor"></i>
</el-tooltip>
</template>
</el-table-column>
......
import { reRreshRoute, formatDateTimeByType, deepClone } from '@/utils';
import api from '@/api/gic-card';
import commonApi from '@/api/common';
import { isEmpty } from '@/utils/index';
import { showConfirm } from '@/utils/common';
import { predefineColors, startDayOptionsDay, startDayOptionsMonth } from '@/config/mapping/gic-card';
......@@ -10,8 +9,7 @@ import sendPreview from './module/send-preview';
import importCode from './module/import-code';
import commomApi from '@/api/common.js';
const { uploadUrl } = commomApi;
const { addCard, copyCard, checkDemoCode } = api;
const { getMallShopList } = commonApi;
const { addCard, copyCard, checkDemoCode, getMallShopList } = api;
// 禁止回车
const preventEnter = function(e) {
......@@ -614,7 +612,7 @@ export default {
this.loading = true;
copyCard({ couponId: this.copyId }).then(res => {
this.loading = false;
const coupon = res.result.gicCoupon;
const coupon = res.result;
this.coupon = deepClone(coupon) || {}; // 备份数据
// ruleForm1赋值
const exclude = [ 'customCodeFlag', 'couponStock', 'codeBegin', 'codeEnd', 'codePrefix', 'codeSuffix', 'codePrefixFlag', 'codeSuffixFlag', 'operAuth' ]; // 不需要赋值的字段
......
......@@ -157,7 +157,6 @@
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm" v-if="!isInfo">保存</el-button>
<el-button @click="$router.go(-1)">返回</el-button>
</el-form-item>
</el-form>
......
......@@ -228,27 +228,13 @@ export default {
this.listParams.sortOrder = this.sortType1;
this.refresh();
},
effectiveDateFormate(item = {}) {
const { cardEffectiveMode, startDate, expireDate, effectTimeMode, expireTimeCount, effectTimeCount } = item;
effectiveDateFormate({ cardEffectiveMode, startDate, expireDate, effectTimeMode, expireTimeCount, effectTimeCount }) {
if (cardEffectiveMode === 0) {
return `<p>${formatDateTimeByType(startDate, 'yyyy-MM-dd')} ~ </p><p>${ formatDateTimeByType(expireDate, 'yyyy-MM-dd') }</p>`;
}
if (cardEffectiveMode === 1) {
// 领取后第{{ info.effectTimeCount }}{{ info.effectTimeMode ? '月' : '天' }} - {{ info.expireTimeCount + info.effectTimeCount - 1 }}{{ info.effectTimeMode ? '月' : '天' }}
const unit = effectTimeMode ? '月' : '天';
let pre = '';
switch (effectTimeCount) {
case 1:
pre = '当';
break;
case 2:
pre = '次';
break;
default:
pre = effectTimeCount;
break;
}
return `<p>领取后${pre}${unit}生效,</p><p>有效天数${expireTimeCount}${unit}</p>`;
return `<p>领取后${effectTimeCount == 1 ? '当' : effectTimeCount == 2 ? '次' : effectTimeCount}${unit}生效,</p><p>有效天数${expireTimeCount}${unit}</p>`;
}
return '--';
},
......@@ -320,8 +306,7 @@ export default {
this.loading = false;
const data = res.result;
this.tableList = data.result.map(v => {
v._status = mappingCardStatus(v);
return v;
return mappingCardStatus(v);
}) || [];
this.total = data.totalCount;
// 删除至最后一页没数据的情况,页码-1
......
......@@ -63,7 +63,7 @@
<li>核销渠道:{{ formatChannel(scope.row) }}</li>
<li>核销门店/店铺:{{ scope.row.verifyStoreCode || '--' }}/{{ scope.row.verifyStoreName || '--' }}</li>
</template>
<li v-if="scope.row.statusFlag == 7">销毁时间:{{ scope.row.verifyTime }}</li>
<li v-if="scope.row.statusFlag == 7">销毁时间:{{ scope.row.destroyTime }}</li>
</ul>
<i class="el-icon-more cursor" slot="reference"></i>
</el-popover>
......
......@@ -135,7 +135,6 @@ export default {
this.formatterTimeFunc('giveBeginTime', 'giveEndTime', 'yyyy-MM-dd', 'dateTime');
this.formatterTimeFunc('receiveBeginTime', 'receiveEndTime', 'yyyy-MM-dd', 'dateTime2');
let params = { ...this.listParams, memberCardId: this.currentAreaId };
// TODO: search
giveLogList(params).then(res => {
this.loading = false;
const data = res.result;
......
<template>
<div class="p20">
<el-form ref="ruleForm" :model="ruleForm" label-width="120px" :rules="rules" style="width:600px;">
<el-form-item prop="type" label="地址类型">
<el-radio-group v-model="ruleForm.type">
<el-radio :label="1">退货地址</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="defaultFlag" label="是否默认">
<el-switch :active-value="1" :inactive-value="0" v-model="ruleForm.defaultFlag"></el-switch>
</el-form-item>
<el-form-item prop="contact" label="联系人">
<el-input v-model="ruleForm.contact" :maxlength="20" show-word-limit></el-input>
</el-form-item>
<el-form-item prop="phone" label="手机号">
<dm-input-phone style="width:100%;" v-model="ruleForm.phone" show-word-limit></dm-input-phone>
</el-form-item>
<el-form-item prop="tel" label="电话">
<el-input v-model="tel1" :maxlength="20" style="width:120px;" placeholder="请填写区号"></el-input><span class="ml5 mr5 gray02">-</span>
<el-input v-model="tel2" :maxlength="20" style="width:120px;" placeholder="请填写座机号"></el-input><span class="ml5 mr5 gray02">-</span>
<el-input v-model="tel3" :maxlength="20" style="width:120px;" placeholder="请填写分机号"></el-input>
</el-form-item>
<el-form-item prop="cityIds" label="所在地区">
<el-cascader v-model="cityIds" style="width:100%;" :options="cityList"></el-cascader>
</el-form-item>
<el-form-item prop="address" label="详细地址">
<el-input type="textarea" placeholder="请不要重复填写省市区" v-model="ruleForm.address" :maxlength="50" show-word-limit></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm()">{{ addressId ? '保存' : '确认新建' }}</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import api from '@/api/gift.js';
import cityList from '@/assets/city.json';
import { isEmpty } from '@/utils/index';
const { getAddressDetails, insertOrUpdateAddress } = api;
export default {
data() {
let phoneValidator = (rule, value, callback) => {
let reg = /^1[34578]\d{9}$/;
if (value !== '') {
if (!reg.test(value)) {
callback(new Error('手机号码不符合规则'));
} else {
callback();
}
} else {
callback();
}
};
let cityValidator = (rule, value, callback) => {
if(this.cityIds.length == 0) {
callback(new Error('请填写省市区'));
return;
}
callback();
};
let telValidator = (rule, value, callback) => {
const { tel1, tel2, tel3 } = this;
const arr = [ tel1, tel2, tel3 ];
if(arr.filter(v => isEmpty(v)).length == 3) {
// 可以都不填
callback();
return;
}
if(arr.some(v => isEmpty(v))) {
callback(new Error('电话填写不完整'));
return;
}
if(arr.some(v => !/^[0-9]*$/.test(v))) {
callback(new Error('请输入数字'));
return;
}
callback();
};
return {
loading: false,
addressId: this.$route.query.id,
ruleForm: {
type: 1,
defaultFlag: 0,
contact: '',
phone: '',
address: ''
},
rules: {
contact: [ { required: true, message: '联系人不能为空', trigger: 'blur' } ],
phone: [ { validator: phoneValidator, trigger: 'blur' } ],
cityIds: [ { required: true, validator: cityValidator, trigger: 'change' } ],
address: [ { required: true, message: '详细地址不能为空', trigger: 'blur' } ],
tel: [ { validator: telValidator, trigger: 'blur' } ],
},
tel1: '',
tel2: '',
tel3: '',
cityIds: [],
cityList
};
},
mounted() {
if(this.addressId) {
this.getInfo();
}
},
created() {
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: '通用设置' }, { breadName: '地址库管理', breadPath: '/setting/address-lib-list' }, { breadName: (this.addressId ? '编辑' : '新建') + '地址库' } ]);
},
methods: {
submitForm() {
this.$refs.ruleForm.validate((valid) => {
if (!valid) {
return;
} else {
if (this.ruleForm.phone === '' && this.tel1 == '') {
this.$message.error('手机号码和电话至少填写一个');
return;
}
this.loading = true;
const { type, defaultFlag, contact, phone, address } = this.ruleForm;
let params = {
type,
defaultFlag,
contact,
phone,
address,
provinceId: this.cityIds[0],
cityId: this.cityIds[1],
countyId: this.cityIds[2],
tel: this.tel1 ? `${this.tel1},${this.tel2},${this.tel3}` : ''
};
if(this.addressId) {
params.addressId = this.addressId;
}
insertOrUpdateAddress(params).then(res => {
this.loading = false;
this.$tips({ message: '操作成功', type: 'success' });
this.$router.push('/setting/address-lib-list');
}).catch(() => {
this.loading = false;
});
}
});
},
getInfo() {
this.loading = true;
getAddressDetails().then(res => {
Object.keys(this.ruleForm).map(key => {
const info = res.result || {};
if (key in res.result) {
this.ruleForm[key] = info[key];
}
if(info.tel) {
const tel = info.tel.join(',');
this.tel1 = tel[0];
this.tel2 = tel[1];
this.tel3 = tel[2];
}
this.cityIds = [ info.provinceId, info.cityId, info.countyId ];
});
this.loading = false;
}).catch(() => {
this.loading = false;
});
},
}
};
</script>
<template>
<div class="p20" v-loading="loading">
<div class="pb20 clearfix flex-center">
<el-button type="primary" class="mlAuto" @click="$router.push('/setting/address-lib-add')">新建地址</el-button>
</div>
<el-table tooltip-effect="dark" :data="tableList" style="width:100%">
<el-table-column prop="contact" label="联系人"> </el-table-column>
<el-table-column prop="phone" label="联系方式"> </el-table-column>
<el-table-column prop="address" label="地址"> </el-table-column>
<el-table-column label="地址类型">
<template slot-scope="scope">
<el-tag v-if="scope.row.defaultFlag" class="mr5">默认</el-tag>
{{ scope.row.type == 1 ? '退款地址' : '--' }}
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" @click="$router.push(`/setting/address-lib-add?id=${scope.row.addressId}`)">编辑</el-button>
<dm-delete @confirm="del(scope.row)" tips="确认删除?">
<el-button type="text">删除</el-button>
</dm-delete>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import { page } from '@/mixins/table.js';
import fetch from '@/api/gift.js';
const { getAddressList, delAddress } = fetch;
export default {
name: 'AddressLibList',
mixins: [ page ],
data() {
return {
loading: false,
listParams: {
currentPage: 1,
pageSize: 20,
},
total: 0,
tableList: [],
dialogVisible: false,
addressId: '',
};
},
created() {
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: '通用设置' }, { breadName: '地址库管理' } ]);
},
mounted() {
this.getTableList();
},
methods: {
del({ addressId }) {
this.loading = true;
delAddress({ addressId: addressId })
.then(res => {
this.loading = false;
this.$tips({ type: 'success', message: '删除成功' });
this.getTableList();
})
.finally(() => {
this.loading = false;
});
},
getTableList() {
if(this.loading) {
return;
}
this.loading = true;
getAddressList().then(res => {
this.loading = false;
this.tableList = res.result || []; // 无分页
}).finally(() => {
this.loading = false;
});
},
},
};
</script>
<template>
<el-dialog :title="`${addressId ? '编辑' : '新建'}地址`" :visible.sync="dialogVisible" width="600px" @close="close">
<el-form ref="ruleForm" :model="ruleForm" label-width="120px" :rules="rules" class="pr10">
<el-form-item prop="type" label="地址类型">
<el-radio-group v-model="ruleForm.type">
<el-radio :label="1">退货地址</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item prop="defaultFlag" label="是否默认">
<el-switch :active-value="1" :inactive-value="0" v-model="ruleForm.defaultFlag"></el-switch>
</el-form-item>
<el-form-item prop="contact" label="联系人">
<el-input v-model="ruleForm.contact" :maxlength="20" show-word-limit></el-input>
</el-form-item>
<el-form-item prop="phone" label="手机号">
<dm-input-phone style="width:100%;" v-model="ruleForm.phone" show-word-limit></dm-input-phone>
</el-form-item>
<el-form-item prop="tel" label="电话">
<el-input v-model="tel1" :maxlength="20" style="width:120px;" placeholder="请填写区号"></el-input><span class="ml5 mr5 gray02">-</span>
<el-input v-model="tel2" :maxlength="20" style="width:120px;" placeholder="请填写座机号"></el-input><span class="ml5 mr5 gray02">-</span>
<el-input v-model="tel3" :maxlength="20" style="width:120px;" placeholder="请填写分机号"></el-input>
</el-form-item>
<el-form-item prop="cityIds" label="所在地区">
<el-cascader v-model="cityIds" style="width:100%;" :options="cityList"></el-cascader>
</el-form-item>
<el-form-item prop="address" label="详细地址">
<el-input type="textarea" placeholder="请不要重复填写省市区" v-model="ruleForm.address" :maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="close">取消</el-button>
<el-button type="primary" @click="submitForm()">{{ addressId ? '保存' : '确认新建' }}</el-button>
</div>
</el-dialog>
</template>
<script>
import api from '@/api/gift.js';
import cityList from '@/assets/city.json';
import { isEmpty } from '@/utils/index';
const { getAddressDetails, insertOrUpdateAddress } = api;
const defaultForm = {
type: 1,
defaultFlag: 0,
contact: '',
phone: '',
address: ''
};
export default {
props: {
dialogVisible: {
type: Boolean,
default() {
return {};
}
},
addressId: {
type: String,
default: ''
}
},
data() {
let phoneValidator = (rule, value, callback) => {
let reg = /^1[34578]\d{9}$/;
if (value !== '') {
if (!reg.test(value)) {
callback(new Error('手机号码不符合规则'));
} else {
callback();
}
} else {
callback();
}
};
let cityValidator = (rule, value, callback) => {
if(this.cityIds.length == 0) {
callback(new Error('请填写省市区'));
return;
}
callback();
};
let telValidator = (rule, value, callback) => {
const { tel1, tel2, tel3 } = this;
const arr = [ tel1, tel2, tel3 ];
if(arr.filter(v => isEmpty(v)).length == 3) {
// 可以都不填
callback();
return;
}
if(arr.some(v => isEmpty(v))) {
callback(new Error('电话填写不完整'));
return;
}
if(arr.some(v => !/^[0-9]*$/.test(v))) {
callback(new Error('请输入数字'));
return;
}
callback();
};
return {
loading: false,
ruleForm: {
...defaultForm
},
rules: {
contact: [ { required: true, message: '联系人不能为空', trigger: 'blur' } ],
phone: [ { validator: phoneValidator, trigger: 'blur' } ],
cityIds: [ { required: true, validator: cityValidator, trigger: 'change' } ],
address: [ { required: true, message: '详细地址不能为空', trigger: 'blur' } ],
tel: [ { validator: telValidator, trigger: 'blur' } ],
},
tel1: '',
tel2: '',
tel3: '',
cityIds: [],
cityList
};
},
methods: {
close() {
this.$emit('update:dialogVisible', false);
this.$emit('update:dialogVisible', false);
this.ruleForm = { ...defaultForm };
this.tel1 = '';
this.tel2 = '';
this.tel3 = '';
this.cityIds = [];
},
submitForm() {
this.$refs.ruleForm.validate((valid) => {
if (!valid) {
return;
} else {
if (this.ruleForm.phone === '' && this.tel1 == '') {
this.$message.error('手机号码和电话至少填写一个');
return;
}
this.loading = true;
const { type, defaultFlag, contact, phone, address } = this.ruleForm;
let params = {
type,
defaultFlag,
contact,
phone,
address,
provinceId: this.cityIds[0],
cityId: this.cityIds[1],
countyId: this.cityIds[2],
tel: this.tel1 ? `${this.tel1},${this.tel2},${this.tel3}` : ''
};
if(this.addressId) {
params.addressId = this.addressId;
}
insertOrUpdateAddress(params).then(res => {
this.loading = false;
this.$tips({ message: '操作成功', type: 'success' });
this.close();
this.$emit('refresh');
}).catch(() => {
this.loading = false;
});
}
});
},
getInfo() {
this.loading = true;
getAddressDetails().then(res => {
Object.keys(this.ruleForm).map(key => {
const info = res.result || {};
if (key in res.result) {
this.ruleForm[key] = info[key];
}
if(info.tel) {
const tel = info.tel.join(',');
this.tel1 = tel[0];
this.tel2 = tel[1];
this.tel3 = tel[2];
}
this.cityIds = [ info.provinceId, info.cityId, info.countyId ];
});
this.loading = false;
}).catch(() => {
this.loading = false;
});
},
},
watch: {
dialogVisible(val) {
if(val && this.addressId) {
this.getInfo();
}
}
}
};
</script>
......@@ -4,7 +4,7 @@
<div>
<el-input placeholder="请输入关键词搜索" prefix-icon="el-icon-search" v-model="search" class="mr10 w220" clearable @keyup.enter.native="getSearchList" @clear="getSearchList"></el-input>
</div>
<el-table :data="tableData">
<el-table :data="tableData" class="mt20">
<el-table-column label="卡号" prop="paramOne"></el-table-column>
<el-table-column label="卡密/券码" prop="paramTwo"></el-table-column>
<el-table-column label="当前状态" prop="statusFlag">
......
# 自提点组件
```<select-pickup-store></select-pickup-store>```
## props
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
| - | - | - | - | - |
| isEdit | 当前礼品详情页是编辑还是新建 | Boolean | true:编辑 false:新增 | false |
| giftId | 礼品id | String | -- | -- |
| data | 组件数据,详细参数见下表 | Object | -- | -- |
## data
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
| - | - | - | - | - |
| shopSelectType | 自提点类型 | Number、String | 0:所有门店 1:部分门店 2:批量导入 | -- |
| shopCodeList | 部分门店选中的门店code | Array | -- | -- |
| shopNum | 批量导入的门店数量 | Number、String | -- | --
## events
| 事件名称 | 说明 | 回调参数 |
| - | - | - |
| change | 组件数据发生改变时触发 | 参数同props中的data |
<template>
<el-dialog title="调整库存" :visible.sync="dialogVisible" width="750px" @close="cancelSubmit()">
<div v-loading="loading">
<div>
<div class="fr mb20">
<el-select v-model="stockType" style="width:100px;margin-right:10px">
<el-option label="增加" :value="0"></el-option>
<el-option label="减少" :value="1"></el-option>
</el-select>
<el-input placeholder="输入库存" style="width:85px;margin-right:10px" v-model="banthStock" precision="0" :min="0" :max="999999"></el-input>
<el-button type="primary" @click="handleStock">批量填充</el-button>
</div>
<el-table :data="tableData" :span-method="objectSpanMethod" border>
<el-table-column label="颜色" prop="color" width="90px">
<template slot-scope="scope">{{ scope.row.color }}</template>
</el-table-column>
<el-table-column label="尺码" prop="size" width="90px">
<template slot-scope="scope">{{ scope.row.size }}</template>
</el-table-column>
<el-table-column label="当前可占用" prop="remainedStock" width="100px">
<template slot-scope="scope">{{ scope.row.remainedStock }}</template>
</el-table-column>
<el-table-column label="增加/减少" width="150px">
<template slot-scope="scope">
<el-select v-model="scope.row.stockType" style="width:100px">
<el-option label="增加" :value="0"></el-option>
<el-option label="减少" :value="1"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="库存">
<template slot-scope="scope">
<dm-input-amount width="200px" @change="changeSingleStock(scope.row.giftSkuId, scope.row.stock, scope.row.stockType)" v-model.trim="scope.row.stock" precision="0" :min="0" :max="999999"></dm-input-amount>
</template>
</el-table-column>
</el-table>
</div>
<div>
<el-select v-model="stockType" style="width:100px;display:inline-block;margin-right:10px">
<el-option label="增加" :value="0"></el-option>
<el-option label="减少" :value="1"></el-option>
</el-select>
<el-input-number v-model="stock" precision="0" :min="0" :max="999999" style="width:300px"></el-input-number>
</div>
<el-input type="textarea" class="mt20" :rows="3" placeholder="请填入调整备注" v-model="textarea" :maxlength="240" show-word-limit></el-input>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelSubmit()">取消</el-button>
<el-button type="primary" @click="submitProNanme()">确认</el-button>
</div>
</el-dialog>
</template>
<script>
// import request from '../service/request.js';
import api from '@/api/gift.js';
const { realStockUpdate } = api;
export default {
props: {
stockData: {
type: Object,
default() {
return {};
}
}
},
data() {
return {
dialogVisible: false,
loading: false,
// tableData: [],
tableData: [
{
color: '红色',
size: 'L',
remainedStock: '10',
giftSkuId: '1111',
stock: '10',
stockType: 1
},
{
color: '红色',
size: 'XL',
remainedStock: '20',
giftSkuId: '2222',
stock: '20',
stockType: 1
},
{
color: '红色',
size: 'M',
remainedStock: '30',
giftSkuId: '3333',
stock: '12',
stockType: 1
},
{
color: '黑色',
size: 'L',
remainedStock: '10',
giftSkuId: '4444',
stock: '13',
stockType: 1
},
{
color: '黑色',
size: 'M',
remainedStock: '20',
giftSkuId: '55555',
stock: '14',
stockType: 1
}
],
spanArr: [], // 用于存放每一行记录的合并数
// costChangeObj: [], // 用于存放批量修改后的数据
banthStock: '',
stockType: 0,
updateList: [],
textarea: ''
};
},
mounted() {
this.dialogVisible = true;
this.getData();
this.getSpanArr(this.tableData);
},
methods: {
getData(){
console.log('获取成本数据');
},
submitProNanme() {
if(this.loading) return;
let params = {
giftId: this.stockData.id,
updateList: this.updateList,
remark: this.textarea
};
this.loading = true;
realStockUpdate(params).then(res =>{
if(res.code === '0000'){
this.dialogVisible = false;
setInterval(() => {
this.$emit('closeUpdateStock');
}, 10);
this.$message.success('修改成功');
}else{
this.$message.error(res.message);
}
}).finally(() => this.loading = false);
},
// 取消修改
cancelSubmit() {
this.dialogVisible = false;
setInterval(() => {
this.$emit('closeUpdateStock');
}, 10);
},
// 合并单元格,行合并
getSpanArr(data) {
// data就是我们从后台拿到的数据
for (let i = 0; i < data.length; i++) {
if (i === 0) {
this.spanArr.push(1);
this.pos = 0;
} else {
// 判断当前元素与上一个元素是否相同
if (data[i].color === data[i - 1].color) {
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
this.spanArr.push(1);
this.pos = i;
}
}
// console.log(this.spanArr);
}
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 0 || columnIndex === 1) {
if (columnIndex === 0) {
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
// console.log(`rowspan:${_row} colspan:${_col}`);
return {
// [0,0] 表示这一行不显示, [2,1]表示行的合并数
rowspan: _row,
colspan: _col
};
}
},
// 批量修改成本
handleStock(){
// for (let item in this.costChangeObj) {
// this.costChangeObj[item].costPrice = this.banthCost;
// // this.costChangeObj[item].stockType = this.stockType;
// }
this.updateList = [];
// if(this.stockType === 1){
// this.tableData.forEach(item => {
// // item.stock = Number(item.stock) + Number(this.banthStock);
// item.stock = this.banthStock;
// item.stockType = this.stockType;
// this.updateList.push({ giftSkuId: item.giftSkuId, stock: item.stock, stockType: item.stockType });
// });
// }else{
// this.tableData.forEach(item => {
// // item.stock = Number(item.stock) - Number(this.banthStock);
// item.stock = this.banthStock;
// item.stockType = this.stockType;
// this.updateList.push({ giftSkuId: item.giftSkuId, stock: item.stock, stockType: item.stockType });
// });
// }
this.tableData.forEach(item => {
item.stock = this.banthStock;
item.stockType = this.stockType;
this.updateList.push({ giftSkuId: item.giftSkuId, stock: item.stock, stockType: item.stockType });
});
console.log(this.updateList);
},
changeSingleStock(id, stock, stockType){
if(!stock){
this.$message.error('请完善库存');
}
if(this.updateList.length > 0){
let iii;
let result = this.updateList.some((item, index) =>{
if(item.giftSkuId == id){
iii = index;
return true;
}
});
if(result){ // 如果存在
this.updateList[iii].stock = stock;
}else{
this.updateList.push({ giftSkuId: id, stock: stock, stockType: stockType });
}
}else{
this.updateList.push({ giftSkuId: id, stock: stock, stockType: stockType });
}
console.log(this.updateList);
}
}
};
</script>
<style scoped></style>
<template>
<el-dialog title="调整成本" :visible.sync="dialogVisible" width="600px" @close="cancelSubmit()">
<div v-loading="loading">
<el-form class="mt20">
<el-form-item label="成本费用" required>
<template>
<!-- <dm-input-amount v-model="costPrice" @change="changeSingleCost(giftId, costPrice)" precision="2" :min="0" :max="999999.99" style="width:200px"></dm-input-amount> -->
<dm-input-amount v-model="costPrice" precision="2" :min="0" :max="999999.99" style="width:200px"></dm-input-amount>
</template>
</el-form-item>
<el-form-item label="调整备注" required>
<template>
<el-input style="width:260px" type="textarea" :rows="3" placeholder="请填入调整备注" v-model="textarea" :maxlength="240" show-word-limit></el-input>
</template>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelSubmit()">取消</el-button>
<el-button type="primary" @click="submitProNanme()">确认</el-button>
</div>
</el-dialog>
</template>
<script>
// import request from '../service/request.js';
import api from '@/api/gift.js';
// const { realCostUpdate, giftGet } = api;
const { virtualCostUpdate } = api;
// import { deepClone } from '../../../utils/index';
export default {
props: {
updateCostData: {
type: Object,
default() {
return {};
}
}
},
data() {
return {
dialogVisible: false,
loading: false,
textarea: '',
giftId: '',
costPrice: '',
giftSkuId: ''
};
},
mounted() {
this.dialogVisible = true;
this.giftId = this.updateCostData.id;
this.costPrice = this.updateCostData.maxCostPrice;
},
methods: {
submitProNanme() {
if(this.loading) return;
if(!this.textarea){
this.$message.error('请完善备注');
}
this.loading = true;
let params = {
giftId: this.updateCostData.id,
costPrice: this.costPrice,
remark: this.textarea
};
console.log(params);
virtualCostUpdate(params).then(res => {
if(res.code === '0000'){
this.dialogVisible = false;
setInterval(() => {
this.$emit('closeUpdateCost', false);
}, 10);
this.$message.success('修改成功');
}else{
this.$message.error(res.message);
}
}).finally(() => this.loading = false);
},
// 取消修改
cancelSubmit() {
this.dialogVisible = false;
setInterval(() => {
this.$emit('closeUpdateCost', false);
}, 10);
},
// changeSingleCost(id, cost){
// console.log(id);
// if(!cost){
// this.$message.error('请完善成本');
// }
// if(this.updateList.length > 0){
// let iii;
// let result = this.updateList.some((item, index) =>{
// if(item.giftSkuId == id){
// iii = index;
// return true;
// }
// });
// if(result){ // 如果存在
// this.updateList[iii].costPrice = cost;
// }else{
// this.updateList.push({ giftSkuId: id, costPrice: cost });
// }
// }else{
// this.updateList.push({ giftSkuId: id, costPrice: cost });
// }
// }
}
};
</script>
<style scoped></style>
<style>
.right-border {
border-right: 1px solid #ebeef5;
}
.hidden-limit .dm-input__counter{
display: none;
}
.popver-button .el-button:not(.el-button--text) {
min-width: 50px;
}
</style>
\ No newline at end of file
<template>
<el-dialog title="调整库存" :visible.sync="dialogVisible" width="750px" @close="cancelSubmit()">
<el-dialog title="调整可占用库存" :visible.sync="dialogVisible" width="500px" @close="cancelSubmit()">
<div v-loading="loading">
<el-input type="textarea" :rows="3" placeholder="请填入调整备注" v-model="textarea" :maxlength="240" show-word-limit></el-input>
<div class="upload-btn mt20">
<el-upload class="upload-ele" show-file-list :action="uploadAction" :on-success="uploadFile" with-credentials>
<el-button><i class="el-icon-upload2" style="margin-right:5px"></i>点击上传</el-button>
</el-upload>
</div>
<div class="uploadText">
<p class="mt10">1.发放内容内部模板导出,点击<el-button type="text">下载模板</el-button></p>
<p>2.填充空缺内容,导出所有项均为必填项;</p>
<p>3.请勿导入重复的内容,导入的内容在原来基础上增加库存;</p>
<p>4.上传完整仅支持.xlsx .xls文件的导入,填充数据不超过“10万”条;</p>
</div>
<el-form>
<el-form-item prop="导入券码文件" required>
<div class="upload-btn mt20">
<el-upload class="upload-ele" show-file-list :action="uploadAction" :on-success="uploadFile" with-credentials>
<el-button><i class="el-icon-upload2" style="margin-right:5px"></i>上传</el-button>
</el-upload>
</div>
<el-button type="text" class="mr30 inline-block">下载文件模板</el-button>
<el-popover placement="top" trigger="hover">
<div style="font-size:6px">
1.填充空缺内容,导出所有项均为必填项;<br>
2.请勿导入重复的内容,导入的内容在原来基础上增加库存;<br>
3.上传完整仅支持.xlsx .xls文件的导入,填充数据不超过“10万”条;
</div>
<el-button slot="reference" type="text">查看导入规则</el-button>
</el-popover>
</el-form-item>
<el-form-item prop="调整备注" required>
<el-input type="textarea" style="width:260px" :rows="3" placeholder="请填入调整备注" v-model="textarea" :maxlength="240" show-word-limit></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelSubmit()">取消</el-button>
......@@ -38,54 +47,6 @@ export default {
return {
dialogVisible: false,
loading: false,
// tableData: [],
tableData: [
{
color: '红色',
size: 'L',
remainedStock: '10',
giftSkuId: '1111',
stock: '10',
stockType: 1
},
{
color: '红色',
size: 'XL',
remainedStock: '20',
giftSkuId: '2222',
stock: '20',
stockType: 1
},
{
color: '红色',
size: 'M',
remainedStock: '30',
giftSkuId: '3333',
stock: '12',
stockType: 1
},
{
color: '黑色',
size: 'L',
remainedStock: '10',
giftSkuId: '4444',
stock: '13',
stockType: 1
},
{
color: '黑色',
size: 'M',
remainedStock: '20',
giftSkuId: '55555',
stock: '14',
stockType: 1
}
],
spanArr: [], // 用于存放每一行记录的合并数
// costChangeObj: [], // 用于存放批量修改后的数据
banthStock: '',
stockType: 0,
updateList: [],
textarea: '',
// uploadAction: window.location.origin + '/api-marketing/upload/upload-image?requestProject=marketing',
uploadAction: 'https://four.gicdev.com/api-marketing/upload/upload-image?requestProject=marketing',
......@@ -93,8 +54,6 @@ export default {
},
mounted() {
this.dialogVisible = true;
this.getData();
this.getSpanArr(this.tableData);
},
methods: {
getData(){
......@@ -225,8 +184,8 @@ export default {
font-size: 14px;
color: #c0c4cc;
cursor: pointer;
margin-right: 10px;
width: 250px;
margin-right: 20px;
/* width: 250px; */
border-radius: 4px;
}
.upload-btn .el-icon-upload2 {
......
<template>
<div class="p20" v-loading="loading">
<div class="pb20 clearfix flex-center">
<el-input prefix-icon="el-icon-search" v-model="listParams.name" @change="refresh" class="w400 mrAuto" clearable placeholder="请输入自提点名称进行搜索"></el-input>
<el-select class="more-select mr10" @change="mutiOption" placeholder="批量操作">
<el-option :disabled="!selectList.length" :value="0">批量设置</el-option>
<el-option :disabled="!selectList.length" :value="1">批量删除</el-option>
</el-select>
<el-button type="default">导出自提点</el-button>
<el-button type="primary" @click="$router.push('/setting/pickup-add')">新建自提点</el-button>
</div>
<el-table tooltip-effect="dark" :data="tableList" style="width:100%" @selection-change="(list) => { selectList = list; }">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column label="自提点名称" prop="name" min-width="180px;"> </el-table-column>
<el-table-column label="自提点地址" prop="address" min-width="180px;"> </el-table-column>
<el-table-column label="联系电话" prop="phone" min-width="140px;"> </el-table-column>
<el-table-column label="自提时间可选" min-width="120px;">
<template slot-scope="scope">
<p v-if="scope.row.openChooseTime === 0" class="address-type">不可选</p>
<p v-if="scope.row.openChooseTime === 1" class="address-type">可选</p>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" @click="$router.push(`setting/pickup-edit?id=${scope.row.pickupId}`)">编辑</el-button>
<dm-delete @confirm="del(scope.row.pickupId)" tips="确认删除?">
<el-button type="text">删除</el-button>
</dm-delete>
</template>
</el-table-column>
</el-table>
<div class="clearfix">
<dm-pagination class="fr mb0" v-if="tableList.length" background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></dm-pagination>
</div>
</div>
</template>
<script>
import { page } from '@/mixins/table.js';
import fetch from '@/api/gift.js';
const { pickupList, delPickup } = fetch;
export default {
name: 'PickupList',
mixins: [ page ],
data() {
return {
loading: false,
listParams: {
name: '',
currentPage: 1,
pageSize: 20,
},
total: 0,
tableList: [],
pickedForm: {
dialogVisible: false,
selectIdList: [], // 复选框选中的数据的id
list: [ { timeRange: [] } ] // 初始数据
},
selectList: [],
};
},
created() {
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: '通用设置' }, { breadName: '地址库管理' } ]);
},
mounted() {
this.getTableList();
},
methods: {
mutiOption(val) {
if(val == 0) {
// 批量设置
}
if(val == 1) {
// 批量删除
this.del(this.selectList.map(v => v.pickupId).join(','));
}
},
del(pickupIds) {
this.loading = true;
delPickup({ pickupIds: pickupIds })
.then(res => {
this.loading = false;
this.$tips({ type: 'success', message: '操作成功' });
this.getTableList();
})
.finally(() => {
this.loading = false;
});
},
getTableList() {
if(this.loading) {
return;
}
this.loading = true;
pickupList().then(res => {
this.loading = false;
const data = res.result;
this.tableList = data.result || [];
this.total = data.totalCount;
// 删除至最后一页没数据的情况,页码-1
if (this.tableList.length === 0 && this.listParams.currentPage !== 1) {
this.listParams.currentPage -= 1;
this.getTableList();
}
}).finally(() => {
this.loading = false;
});
},
},
};
</script>
<template>
<stock-list :welfare-id="$route.query.id"></stock-list>
</template>
<script>
import stockList from '@/components/stock-list/index.vue';
export default {
name: 'StockList',
components: {
stockList
},
created() {
this.$emit('updateBread', [ { breadName: '礼品管理' }, { breadName: '实物礼品', breadPath: '/gift-manage/real-gift' }, { breadName: '库存记录' } ]);
}
};
</script>
<template>
<div class="p20" v-loading="loading">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="150px" style="min-height:400px;">
<el-form-item label="收货自动加库存" prop="backStockFlag">
<el-switch :active-value="1" :inactive-value="0" v-model="ruleForm.backStockFlag"></el-switch>
<div class="gray03 fz12">开启自动加库存后,在退货单同意收货后,福利中心可占库存将会增加</div>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">保存</el-button>
<span class="ml10 gray02" v-if="ruleForm.updateTime">最近修改:{{formatDateTimeByType(ruleForm.updateTime, 'yyyy-MM-dd HH:mm:ss')}}</span>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { formatDateTimeByType } from '@/utils/index';
import api from '@/api/gift';
const { updateConfig, getConfigDetail } = api;
export default {
name: 'SalesReturnSetting',
data() {
return {
loading: false,
ruleForm: {
configId: '',
backStockFlag: 0, // 是否收货自动加库存 0否1是
createTime: '',
updateTime: ''
},
rules: {},
};
},
created() {
this.$emit('updateBread', [ { breadName: '福利中心' }, { breadName: '通用设置' }, { breadName: '退货单设置' } ]);
},
mounted() {
this.getDetail();
},
methods: {
formatDateTimeByType,
submitForm() {
if (this.loading) {
return;
}
this.loading = true;
updateConfig({
configId: this.ruleForm.configId, // 新建不需要传
backStockFlag: this.ruleForm.backStockFlag
}).then(res => {
this.loading = false;
this.getDetail();
this.$tips({ message: '保存成功', type: 'success' });
}).finally(() => {
this.loading = false;
});
},
// 获取配置详情
getDetail() {
getConfigDetail().then(res => {
this.ruleForm = { ...this.ruleForm, ...res.result };
});
}
},
};
</script>
<template>
<stock-list :welfare-id="$route.query.id"></stock-list>
</template>
<script>
import stockList from '@/components/stock-list/index.vue';
export default {
name: 'StockList',
components: {
stockList
},
created() {
this.$emit('updateBread', [ { breadName: '礼品管理' }, { breadName: '虚拟礼品', breadPath: '/gift-manage/virtual-gift' }, { breadName: '库存记录' } ]);
}
};
</script>
......@@ -36,11 +36,6 @@ module.exports = {
// .options({ bypassOnDebug: true })
// .end();
// ============压缩图片 end============
// config.module
// .rule('images')
// .use('url-loader')
// .loader('url-loader')
// .tap(options => Object.assign(options, { limit: 2000 }))
},
configureWebpack: config => {
config.externals = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment