Authored by yyq

deliver

  1 +<template>
  2 + <LayoutApp class="order-deliver-page" :show-back="true">
  3 + <div class="main-content">
  4 + <div class="page-title">发货</div>
  5 + <div class="identify-center-address">
  6 + <div class="left-icon">
  7 + <i class="iconfont iconaddress"></i>
  8 + </div>
  9 + <div class="address-info">
  10 + <div class="consignee">
  11 + <span>{{stateCenterAddress.address_name}}</span>
  12 + <span class="tag">有货鉴定中心</span>
  13 + </div>
  14 + <p class="location">{{stateCenterAddress.address}}</p>
  15 + <p>{{stateCenterAddress.mobile}}</p>
  16 + </div>
  17 + </div>
  18 + <div class="deliver-express">
  19 + <div class="left-icon">
  20 + <div class="express-logo"></div>
  21 + </div>
  22 + <div class="express-info">
  23 + <span>国内顺丰快运</span>
  24 + <CubeInput class="express-input" v-model="expressCode" placeholder="请填写顺丰运单号"></CubeInput>
  25 + </div>
  26 + </div>
  27 + <div v-if="stateCenterAddress.deliverDesc" class="deliver-tip">
  28 + <span class="iconfont iconwarn"></span>
  29 + <p>{{stateCenterAddress.deliverDesc}}</p>
  30 + </div>
  31 + <div class="submit-warp">
  32 + <div class="contract-check">
  33 + <i class="iconfont" :class="readContract ? 'iconcheck_full checked' : 'iconcheck_default'" @click="changeReadContract"></i>
  34 + <span>我已阅读并同意</span>
  35 + <a href="//activity.yoho.cn/feature/4049.html?share_id=6729&title=UFO卖家商品质检标准">《UFO卖家商品质检标准》</a>
  36 + </div>
  37 + <p v-if="stateCenterAddress.warnTips" class="warn-tip">{{stateCenterAddress.warnTips}}</p>
  38 + <CubeButton class="deliver-btn" :disabled="deliverDisable" @click="submitDeliver">发货</CubeButton>
  39 + </div>
  40 + </div>
  41 + </LayoutApp>
  42 +</template>
  43 +
  44 +<script>
  45 +import { get } from 'lodash';
  46 +import { Button, Input } from 'cube-ui';
  47 +import { createNamespacedHelpers } from 'vuex';
  48 +
  49 +const { mapState, mapActions } = createNamespacedHelpers('order/orderDeliver');
  50 +
  51 +export default {
  52 + name: 'OrderDeliver',
  53 + data() {
  54 + return {
  55 + centerAddress: {},
  56 + expressCode: '',
  57 + readContract: false
  58 + };
  59 + },
  60 + created() {
  61 + let { skup, code } = this.$route.params || {};
  62 +
  63 + this.orderCode = code;
  64 + if (process.env.VUE_ENV !== 'server') {
  65 + this.fetchAppraiseAddress({
  66 + skup,
  67 + orderCode: code
  68 + });
  69 + }
  70 + },
  71 + computed: {
  72 + ...mapState(['appraiseAddress']),
  73 + stateCenterAddress() {
  74 + if (!this.centerAddress.address) {
  75 + this.centerAddress = get(this.appraiseAddress, this.orderCode) || {};
  76 + }
  77 +
  78 + return this.centerAddress;
  79 + },
  80 + deliverDisable() {
  81 + return !(this.expressCode && this.readContract && this.stateCenterAddress.id);
  82 + }
  83 + },
  84 + mounted() {
  85 + this.fetchAppraiseAddressChangeNotice({orderCode: this.orderCode}).then(res => {
  86 + let isChanged = get(res, 'data.isChanged');
  87 + let isForceShow = get(res, 'data.isForceShow');
  88 +
  89 + if (!isChanged && !isForceShow) {
  90 + return;
  91 + }
  92 +
  93 + let { title = '', tips, alert_address_name, alert_address, alert_mobile } = res.data || {};
  94 + let info = [
  95 + alert_address_name || '',
  96 + alert_address || '',
  97 + alert_mobile || ''
  98 + ];
  99 +
  100 + if (isChanged && tips) {
  101 + info.unshift(tips);
  102 + }
  103 +
  104 + this.$createDialog({
  105 + type: 'alert',
  106 + confirmBtn: {
  107 + text: '我知道了'
  108 + },
  109 + onConfirm() {
  110 + // Todo report()
  111 + console.log('Todo Report', res.data);
  112 + }
  113 + }, (createElement) => {
  114 + return [
  115 + createElement('div', {
  116 + class: {
  117 + 'dg-notice-content': true
  118 + },
  119 + slot: 'content'
  120 + }, [
  121 + createElement('div', {
  122 + class: {
  123 + 'dg-notice-content-title': true
  124 + }
  125 + }, isChanged ? 'UFO仓库调整公告' : title),
  126 + ...info.map(val => {
  127 + return createElement('p', {
  128 + class: {
  129 + 'dg-notice-content-info': true
  130 + },
  131 + }, val);
  132 + })
  133 + ])
  134 + ];
  135 + }).show();
  136 + });
  137 + },
  138 + methods: {
  139 + ...mapActions(['fetchAppraiseAddress', 'fetchAppraiseAddressChangeNotice', 'deliverOrderToDepot']),
  140 + toast(msg, time = 1500) {
  141 + this.$createToast && this.$createToast({
  142 + txt: msg,
  143 + type: 'txt',
  144 + time
  145 + }).show();
  146 + },
  147 + changeReadContract() {
  148 + this.readContract = !this.readContract;
  149 + },
  150 + submitDeliver() {
  151 + if (/^[a-zA-Z0-9]+$/.test(this.expressCode)) {
  152 + if (this.loading) {
  153 + return;
  154 + }
  155 +
  156 + this.loading = true;
  157 +
  158 + setTimeout(() => {
  159 + this.loading = false;
  160 + }, 2000);
  161 +
  162 + this.deliverOrderToDepot({
  163 + orderCode: this.orderCode,
  164 + wayBillCode: this.expressCode,
  165 + depotNum: this.stateCenterAddress.id
  166 + }).then(res => {
  167 + if (res.code === 200) {
  168 + this.$router.go(-1);
  169 + // Todo report()
  170 + } else {
  171 + this.toast(res.message || '网络异常,请稍后重试');
  172 + }
  173 + });
  174 + } else {
  175 + this.toast('请输入正确的快递单号');
  176 + }
  177 + }
  178 + },
  179 + components: {
  180 + CubeButton: Button,
  181 + CubeInput: Input
  182 + }
  183 +};
  184 +</script>
  185 +
  186 +<style lang="scss">
  187 +.dg-notice-content {
  188 + padding: 10px 44px 40px;
  189 + font-size: 28px;
  190 + line-height: 42px;
  191 + color: #444;
  192 + margin-bottom: -32px;
  193 + border-bottom: 1px solid #f5f5f5;
  194 +
  195 + .dg-notice-content-title {
  196 + font-size: 32px;
  197 + font-weight: 500;
  198 + text-align: center;
  199 + padding-bottom: 20px;
  200 + color: #000;
  201 + }
  202 +}
  203 +
  204 +</style>
  205 +
  206 +<style lang="scss" scoped>
  207 +.order-deliver-page {
  208 + .main-content {
  209 + padding: 0 40px;
  210 + }
  211 +
  212 + .page-title {
  213 + font-size: 68px;
  214 + font-weight: 800;
  215 + line-height: 80px;
  216 + padding-bottom: 30px;
  217 + border-bottom: 1px solid #eee;
  218 + }
  219 +
  220 + .left-icon {
  221 + width: 88px;
  222 + flex-shrink: 0;
  223 + }
  224 +
  225 + .identify-center-address {
  226 + padding: 40px 0;
  227 + display: flex;
  228 + align-items: center;
  229 + font-size: 28px;
  230 + border-bottom: 1px solid #eee;
  231 +
  232 + .iconfont {
  233 + font-size: 48px;
  234 + }
  235 +
  236 + .consignee {
  237 + font-size: 32px;
  238 + display: flex;
  239 + align-items: center;
  240 +
  241 + > * {
  242 + line-height: 44px;
  243 + font-weight: 800;
  244 + display: inline-block;
  245 + vertical-align: top;
  246 + }
  247 +
  248 + .tag {
  249 + font-size: 24px;
  250 + line-height: 48px;
  251 + font-weight: 300;
  252 + padding: 0 14px;
  253 + margin-left: 6px;
  254 + color: #002B47;
  255 + border: 1px solid #ccc;
  256 + box-sizing: border-box;
  257 + transform: scale(0.8);
  258 + }
  259 + }
  260 +
  261 + .location {
  262 + font-size: 24px;
  263 + line-height: 1.4;
  264 + color: #999;
  265 + margin: 6px 0 12px;
  266 + }
  267 + }
  268 +
  269 + .deliver-express {
  270 + display: flex;
  271 + padding: 36px 0;
  272 + border-bottom: 1px solid #eee;
  273 + align-items: center;
  274 +
  275 + .express-logo {
  276 + width: 48px;
  277 + height: 48px;
  278 + background: url("~statics/image/order/sf-logo.png");
  279 + background-size: 100% 100%;
  280 + }
  281 +
  282 + .express-info {
  283 + font-size: 32px;
  284 + line-height: 44px;
  285 + display: flex;
  286 + align-items: center;
  287 + flex-grow: 1;
  288 + }
  289 +
  290 + .express-input {
  291 + flex-grow: 1;
  292 +
  293 + &:after {
  294 + border: 0;
  295 + }
  296 +
  297 + /deep/ .cube-input-field {
  298 + text-align: right;
  299 + padding: 0;
  300 + }
  301 + }
  302 + }
  303 +
  304 + .deliver-tip {
  305 + color: #ccc;
  306 + display: flex;
  307 + align-items: flex-start;
  308 + padding-top: 16px;
  309 +
  310 + .iconfont {
  311 + font-size: 32px;
  312 + margin-right: 10px;
  313 + margin-top: -6px;
  314 + }
  315 +
  316 + p {
  317 + font-size: 24px;
  318 + line-height: 1.4;
  319 + font-weight: 300;
  320 + color: #bbb;
  321 + white-space: pre-wrap;
  322 + word-wrap: break-word;
  323 + }
  324 + }
  325 +
  326 + .submit-warp {
  327 + width: 100%;
  328 + position: absolute;
  329 + left: 0;
  330 + bottom: 0;
  331 + padding: 0 38px 40px;
  332 + }
  333 +
  334 + .contract-check {
  335 + font-size: 24px;
  336 + line-height: 40px;
  337 + color: #999;
  338 + display: flex;
  339 + align-items: center;
  340 +
  341 + .iconfont {
  342 + margin-right: 16px;
  343 + font-size: 30px;
  344 + position: relative;
  345 +
  346 + &:after {
  347 + content: "";
  348 + width: 200%;
  349 + height: 150%;
  350 + position: absolute;
  351 + top: -25%;
  352 + left: -50%;
  353 + }
  354 + }
  355 +
  356 + .checked {
  357 + color: #022c46;
  358 + }
  359 +
  360 + a {
  361 + color: #65ab85;
  362 + margin-left: 20px;
  363 + text-decoration: underline;
  364 + }
  365 + }
  366 +
  367 + .warn-tip {
  368 + font-size: 24px;
  369 + line-height: 1.3;
  370 + color: red;
  371 + padding: 6px 0;
  372 + letter-spacing: 0;
  373 + }
  374 +
  375 + .deliver-btn {
  376 + height: 120px;
  377 + background: #022c46;
  378 + margin-top: 34px;
  379 +
  380 + &.cube-btn_disabled {
  381 + background: #ccc;
  382 + }
  383 + }
  384 +}
  385 +</style>
@@ -33,6 +33,11 @@ export default [ @@ -33,6 +33,11 @@ export default [
33 path: '/xianyu/:owner/order/logistics/:code', 33 path: '/xianyu/:owner/order/logistics/:code',
34 component: () => import('./order-logistics-info'), 34 component: () => import('./order-logistics-info'),
35 }, 35 },
  36 + {
  37 + name: 'order.deliver',
  38 + path: '/xianyu/order/deliver/:skup/:code',
  39 + component: () => import(/* webpackChunkName: "order.deliver" */ './deliver'),
  40 + },
36 ...PriceChange, 41 ...PriceChange,
37 ...OrderList, 42 ...OrderList,
38 ...OrderDetail, 43 ...OrderDetail,
1 @font-face {font-family: "iconfont"; 1 @font-face {font-family: "iconfont";
2 - src: url('iconfont.eot?t=1569575909056'); /* IE9 */  
3 - src: url('iconfont.eot?t=1569575909056#iefix') format('embedded-opentype'), /* IE6-IE8 */  
4 - url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),  
5 - url('iconfont.woff?t=1569575909056') format('woff'),  
6 - url('iconfont.ttf?t=1569575909056') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */  
7 - url('iconfont.svg?t=1569575909056#iconfont') format('svg'); /* iOS 4.1- */ 2 + src: url('iconfont.eot?t=1569655552875'); /* IE9 */
  3 + src: url('iconfont.eot?t=1569655552875#iefix') format('embedded-opentype'), /* IE6-IE8 */
  4 + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
  5 + url('iconfont.woff?t=1569655552875') format('woff'),
  6 + url('iconfont.ttf?t=1569655552875') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
  7 + url('iconfont.svg?t=1569655552875#iconfont') format('svg'); /* iOS 4.1- */
8 } 8 }
9 9
10 .iconfont { 10 .iconfont {
@@ -99,3 +99,7 @@ @@ -99,3 +99,7 @@
99 content: "\e7c4"; 99 content: "\e7c4";
100 } 100 }
101 101
  102 +.iconwarn:before {
  103 + content: "\e7cf";
  104 +}
  105 +
@@ -83,6 +83,9 @@ Created by iconfont @@ -83,6 +83,9 @@ Created by iconfont
83 <glyph glyph-name="arrow" unicode="&#59332;" d="M1536 896L768-128 0 896z" horiz-adv-x="1536" /> 83 <glyph glyph-name="arrow" unicode="&#59332;" d="M1536 896L768-128 0 896z" horiz-adv-x="1536" />
84 84
85 85
  86 + <glyph glyph-name="warn" unicode="&#59343;" d="M512 830.016C757.92 830.016 958.016 629.952 958.016 384 958.016 138.08000000000004 757.92-62.01599999999996 512-62.01599999999996c-245.95200001 0-446.016 200.064-446.016 446.016C65.984 629.952 266.048 830.016 512 830.016zM512 1.9840000000000373C722.656 1.9840000000000373 894.016 173.34400000000005 894.016 384c0 210.624-171.36 382.016-382.016 382.016-210.624 0-382.016-171.36-382.016-382.016C129.984 173.34400000000005 301.376 1.9840000000000373 512 1.9840000000000373zM512 176m48 0a1.5 1.5 0 1 1-96 0 1.5 1.5 0 1 1 96 0ZM512 639.99999999c17.664 0 32-14.304 32-31.99999999l0-288c0-17.664-14.336-32-32-31.99999999s-32 14.336-32 31.99999999l0 288C480 625.696 494.336 640 512 639.99999999z" horiz-adv-x="1024" />
  87 +
  88 +
86 89
87 90
88 </font> 91 </font>
@@ -3,6 +3,7 @@ import orderList from './order-list'; @@ -3,6 +3,7 @@ import orderList from './order-list';
3 import orderConfirm from './order-confirm'; 3 import orderConfirm from './order-confirm';
4 import orderDetail from './order-detail'; 4 import orderDetail from './order-detail';
5 import orderLogistics from './order-logistics'; 5 import orderLogistics from './order-logistics';
  6 +import orderDeliver from './order-deliver';
6 7
7 export default function() { 8 export default function() {
8 return { 9 return {
@@ -13,6 +14,7 @@ export default function() { @@ -13,6 +14,7 @@ export default function() {
13 orderConfirm: orderConfirm(), 14 orderConfirm: orderConfirm(),
14 orderDetail: orderDetail(), 15 orderDetail: orderDetail(),
15 logisticsInfo: orderLogistics(), 16 logisticsInfo: orderLogistics(),
  17 + orderDeliver: orderDeliver(),
16 }, 18 },
17 }; 19 };
18 } 20 }
  1 +export default function () {
  2 + return {
  3 + namespaced: true,
  4 + state: {
  5 + appraiseAddress: {},
  6 + appraiseAddressCodes: []
  7 + },
  8 + mutations: {
  9 + SET_APPRAISE_ADDRESS(state, { orderCode, data }) {
  10 + let addr = {
  11 + [orderCode]: data
  12 + };
  13 +
  14 + state.appraiseAddressCodes.push(orderCode);
  15 +
  16 + if (state.appraiseAddressCodes.length > 5) {
  17 + state.appraiseAddressCodes.shift()
  18 + }
  19 +
  20 + state.appraiseAddressCodes.forEach(code => {
  21 + if (state.appraiseAddress[code]) {
  22 + addr[code] = state.appraiseAddress[code];
  23 + }
  24 + });
  25 +
  26 + state.appraiseAddress = addr;
  27 + }
  28 + },
  29 + actions: {
  30 + /**
  31 + * @param {
  32 + * skup skup
  33 + * orderCode 订单编码
  34 + * }
  35 + */
  36 + async fetchAppraiseAddress({ commit }, { skup, orderCode } = {}) {
  37 + const res = await this.$api.get('/api/order/appraiseAddress', {
  38 + skup,
  39 + orderCode: orderCode + '',
  40 + });
  41 +
  42 + if (res.code === 200) {
  43 + commit('SET_APPRAISE_ADDRESS', {
  44 + orderCode,
  45 + data: res.data
  46 + });
  47 + }
  48 +
  49 + return res;
  50 + },
  51 + /**
  52 + * @param {
  53 + * orderCode 订单编码
  54 + * }
  55 + */
  56 + async fetchAppraiseAddressChangeNotice({ commit }, { orderCode } = {}) {
  57 + return await this.$api.get('/api/order/noticeAppraiseAddressChanged', {
  58 + orderCode: orderCode + '',
  59 + });
  60 + },
  61 + /**
  62 + * @param {
  63 + * orderCode 订单编码
  64 + * wayBillCode 物流快递号
  65 + * depotNum 鉴定中心id
  66 + * }
  67 + */
  68 + async deliverOrderToDepot({ commit }, { orderCode, wayBillCode, depotNum } = {}) {
  69 + return await this.$api.post('/api/order/deliverToDepot', {
  70 + expressCompanyId: 23,
  71 + orderCode: orderCode + '',
  72 + wayBillCode,
  73 + depotNum
  74 + });
  75 + }
  76 + },
  77 + };
  78 +}
@@ -93,4 +93,38 @@ module.exports = { @@ -93,4 +93,38 @@ module.exports = {
93 orderCode: { type: Number, require: true }, // 订单编号 93 orderCode: { type: Number, require: true }, // 订单编号
94 }, 94 },
95 }, 95 },
  96 +
  97 + // 鉴定中心地址
  98 + '/api/order/appraiseAddress': {
  99 + ufo: true,
  100 + auth: true,
  101 + api: 'ufo.order.appraiseAddress',
  102 + params: {
  103 + skup: { type: String, require: true },
  104 + orderCode: { type: String, require: true }, // 订单编号
  105 + },
  106 + },
  107 +
  108 + // 鉴定中心地址更改公告
  109 + '/api/order/noticeAppraiseAddressChanged': {
  110 + ufo: true,
  111 + auth: true,
  112 + api: 'ufo.order.noticeAppraiseAddressChanged',
  113 + params: {
  114 + orderCode: { type: String, require: true }, // 订单编号
  115 + },
  116 + },
  117 +
  118 + // 卖家发货
  119 + '/api/order/deliverToDepot': {
  120 + ufo: true,
  121 + auth: true,
  122 + api: 'ufo.order.deliverToDepot',
  123 + params: {
  124 + expressCompanyId: { type: Number, require: true }, // 快递公司id
  125 + wayBillCode: { type: String, require: true }, // 物流快递号
  126 + orderCode: { type: String, require: true }, // 订单编号
  127 + depotNum: { type: Number, require: true }, // 鉴定中心id
  128 + },
  129 + },
96 }; 130 };