Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
67b8108825 | ||
|
|
90046641c0 | ||
|
|
e7f5670b72 | ||
|
|
510f3aa888 | ||
|
|
acbd7f6a86 | ||
|
|
f3ad1604d8 | ||
|
|
b1d1f60f96 | ||
|
|
191edd1eb4 | ||
|
|
0cbe017a95 | ||
|
|
b1abecfb29 | ||
|
|
2511778c9f | ||
|
|
fea7848653 | ||
|
|
3cdaba63b7 | ||
|
|
5ece8b562f | ||
|
|
15614d9489 | ||
|
|
7b43c97f5f | ||
|
|
74043c55ae | ||
|
|
f69c86f92b | ||
|
|
c7cb7c103d |
@@ -42,7 +42,7 @@
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-vue": "^8.0.3",
|
||||
"javascript-obfuscator": "2.6.0",
|
||||
"sass": "^1.68.0",
|
||||
"sass": "1.32.13",
|
||||
"sass-loader": "^7.3.1",
|
||||
"vue-cli-plugin-chrome-extension-cli": "~1.1.4",
|
||||
"vue-template-compiler": "^2.6.14",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
]
|
||||
},
|
||||
"condition": {
|
||||
"urlFilter": "||xc.rqlis.com:888"
|
||||
"urlFilter": "||xc.rqlis.com"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -4,7 +4,7 @@ import store from '@/store'
|
||||
|
||||
|
||||
var instance = axios.create({
|
||||
baseURL: process.env.NODE_ENV === 'production' ? 'http://124.71.2.127:10248' : 'http://124.71.2.127:10248',
|
||||
baseURL: process.env.NODE_ENV === 'production' ? 'http://temu.jjcp52.com' : 'http://124.71.2.127:10248',
|
||||
timeout: 50000,
|
||||
validateStatus: function (status) {
|
||||
return status < 500
|
||||
|
||||
@@ -11,12 +11,11 @@
|
||||
url('https://at.alicdn.com/t/font_1995974_ihzpmuv4lpk.svg#iconfont') format('svg');
|
||||
}
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: "iconfont";
|
||||
src: url('https://at.alicdn.com/t/c/font_4680344_rxl7gevvsys.woff2?t=1725970465332') format('woff2'),
|
||||
url('https://at.alicdn.com/t/c/font_4680344_rxl7gevvsys.woff?t=1725970465332') format('woff'),
|
||||
url('https://at.alicdn.com/t/c/font_4680344_rxl7gevvsys.ttf?t=1725970465332') format('truetype');
|
||||
font-family: 'iconfont'; /* Project id 4680344 */
|
||||
src: url('https://at.alicdn.com/t/c/font_4680344_v54lqtndz8.woff2?t=1730871528436') format('woff2'),
|
||||
url('https://at.alicdn.com/t/c/font_4680344_v54lqtndz8.woff?t=1730871528436') format('woff'),
|
||||
url('https://at.alicdn.com/t/c/font_4680344_v54lqtndz8.ttf?t=1730871528436') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
@@ -577,3 +576,7 @@ img {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.el-tooltip__popper {
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
v-for="(price, i) in priceList"
|
||||
:key="i"
|
||||
@click="currIndex = i, getQrcode(price)">
|
||||
<h3>{{ price.remark }}</h3>
|
||||
<div class="price">
|
||||
<i>¥</i>
|
||||
<span>{{ price.price }}</span>
|
||||
@@ -45,7 +44,7 @@
|
||||
<i>¥</i>
|
||||
<span>{{ price.originPrice }}</span>
|
||||
</div>
|
||||
<p>{{ price.coin }}条/每年</p>
|
||||
<p>{{ price.coin }}金币</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -388,6 +387,7 @@
|
||||
&__item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
width: 140px;
|
||||
height: 170px;
|
||||
|
||||
@@ -48,12 +48,14 @@
|
||||
class="item"
|
||||
style="cursor: pointer;"
|
||||
@click="search.type = 1, search.current = 1, isShowImage = true, getConfig()">
|
||||
<i class="iconfont"></i>
|
||||
<div>图片素材</div>
|
||||
</div>
|
||||
<div
|
||||
class="item"
|
||||
style="cursor: pointer;"
|
||||
@click="search.type = 0, search.current = 1, isShowImage = true, getConfig()">
|
||||
<i class="iconfont"></i>
|
||||
<div>文字素材</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -197,34 +199,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <ai-table
|
||||
:tableData="templateList"
|
||||
:col-configs="templateColConfigs"
|
||||
:total="templateTotal"
|
||||
:current.sync="searchTemplate.current"
|
||||
:size.sync="searchTemplate.size"
|
||||
height="480"
|
||||
@getList="getTemplateList"
|
||||
v-loading="templateLoading">
|
||||
<el-table-column slot="img" label="预览图" align="center">
|
||||
<template v-slot="{ row }">
|
||||
<el-image
|
||||
style="width: 200px; height: 200px"
|
||||
fit="contain"
|
||||
:src="row.previewUrl"
|
||||
:preview-src-list="[row.previewUrl]">
|
||||
</el-image>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="options" label="操作" align="center" width="200">
|
||||
<template v-slot="{ row }">
|
||||
<div class="table-options">
|
||||
<el-button type="text" @click="showTemplate(row)">模板预览</el-button>
|
||||
<el-button type="text" @click="updateTempate(row)">使用</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table> -->
|
||||
<div class="dialog-footer" slot="footer">
|
||||
<el-button @click="isShowTemplate = false">取消</el-button>
|
||||
</div>
|
||||
@@ -310,12 +284,16 @@
|
||||
height: 160
|
||||
},
|
||||
'80 * 60': {
|
||||
width: 160,
|
||||
height: 120
|
||||
width: 240,
|
||||
height: 180
|
||||
},
|
||||
'60 * 40': {
|
||||
width: 120,
|
||||
height: 80
|
||||
'70 * 50': {
|
||||
width: 210,
|
||||
height: 150
|
||||
},
|
||||
'70 * 40': {
|
||||
width: 210,
|
||||
height: 120
|
||||
}
|
||||
},
|
||||
paperPopVisible: false,
|
||||
@@ -342,10 +320,6 @@
|
||||
isShowImage: false,
|
||||
tableData: [],
|
||||
total: 0,
|
||||
templateColConfigs: [
|
||||
{ prop: 'name', label: '模板名称', align: 'left' },
|
||||
{ slot: 'img'}
|
||||
],
|
||||
templateLoading: false,
|
||||
hasMore: true
|
||||
}
|
||||
@@ -438,6 +412,18 @@
|
||||
this.hiprintTemplate.update(config)
|
||||
this.hiprintTemplate.setPaper(config.panels[0].width, config.panels[0].height)
|
||||
|
||||
this.curPaper = {
|
||||
type: 'other',
|
||||
width: config.panels[0].width,
|
||||
height: config.panels[0].height
|
||||
}
|
||||
|
||||
this.$nextTick(() => {
|
||||
if (this.curPaper.type === 'other') {
|
||||
this.paperWidth = config.panels[0].width
|
||||
this.paperHeight = config.panels[0].height
|
||||
}
|
||||
})
|
||||
this.dynamicFromList = JSON.parse(res.data.params)
|
||||
this.isShowTemplate = false
|
||||
}
|
||||
@@ -555,6 +541,9 @@
|
||||
$('#custom-provider').empty()
|
||||
// eslint-disable-next-line no-undef
|
||||
hiprint.PrintElementTypeManager.build($('#custom-provider'), 'customProvider')
|
||||
|
||||
$('#custom-provider ul ul li:eq(0)').prepend('<i class="iconfont"></i>')
|
||||
$('#custom-provider ul ul li:eq(1)').prepend('<i class="iconfont"></i>')
|
||||
},
|
||||
|
||||
buildDesigner() {
|
||||
@@ -825,6 +814,7 @@
|
||||
width: 100px;
|
||||
margin-bottom: 10px;
|
||||
margin-right: 10px;
|
||||
padding-top: 10px;
|
||||
background-color: #eee;
|
||||
border-radius: 4px;
|
||||
|
||||
@@ -833,7 +823,6 @@
|
||||
}
|
||||
|
||||
a {
|
||||
margin-top: 10px;
|
||||
padding: 10px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ export const customProvider = function () {
|
||||
new hiprint.PrintElementTypeGroup('', [
|
||||
{
|
||||
tid: 'providerModule1.html',
|
||||
title: 'temu条码',
|
||||
title: 'TEMU条码',
|
||||
data: 'XS888888888',
|
||||
type: 'html',
|
||||
formatter: function (data, options, sukData) {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"*://*.geiwohuo.com/",
|
||||
"*://*.ltwebstatic.com/",
|
||||
"*://*.goodcang.com/",
|
||||
"*://*.rqlis.com*"
|
||||
"*://*.rqlis.com/"
|
||||
],
|
||||
"permissions": [
|
||||
"cookies",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"*://*.shein.com/",
|
||||
"*://*.geiwohuo.com/",
|
||||
"*://*.ltwebstatic.com/",
|
||||
"*://*.rqlis.com"
|
||||
"*://*.rqlis.com/"
|
||||
],
|
||||
"permissions": [
|
||||
"cookies",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Vue from 'vue'
|
||||
import VueRouter from 'vue-router'
|
||||
import store from '@/store'
|
||||
import media from "@/router/media";
|
||||
|
||||
Vue.use(VueRouter)
|
||||
|
||||
@@ -317,7 +318,7 @@ const router = new VueRouter({
|
||||
path: 'oushuitong',
|
||||
name: 'oushuitong',
|
||||
meta: {
|
||||
activeMenu:'/qualification'
|
||||
activeMenu: '/qualification'
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -332,7 +333,7 @@ const router = new VueRouter({
|
||||
name: 'addLabelsTemplate',
|
||||
component: () => import('../view/lables/AddTemplate.vue'),
|
||||
meta: {
|
||||
activeMenu:'/labelsTemplate'
|
||||
activeMenu: '/labelsTemplate'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -345,9 +346,10 @@ const router = new VueRouter({
|
||||
name: 'skuManage',
|
||||
component: () => import('../view/lables/SkuManage.vue'),
|
||||
meta: {
|
||||
activeMenu:'/labelsTemplate'
|
||||
}
|
||||
activeMenu: '/labelsTemplate'
|
||||
}
|
||||
},
|
||||
...media
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -375,11 +377,11 @@ const router = new VueRouter({
|
||||
component: () => import('../view/login/Forget.vue')
|
||||
}
|
||||
],
|
||||
scrollBehavior (to, from, savedPosition) {
|
||||
scrollBehavior(to, from, savedPosition) {
|
||||
if (savedPosition) {
|
||||
return savedPosition
|
||||
} else {
|
||||
return { x: 0, y: 0 }
|
||||
return {x: 0, y: 0}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
3
src/router/media.js
Normal file
3
src/router/media.js
Normal file
@@ -0,0 +1,3 @@
|
||||
export default [
|
||||
{name: "imageTranslate", path: "imageTranslate", component: () => import("@/view/media/imageTranslate.vue")}
|
||||
]
|
||||
@@ -108,15 +108,19 @@ export function transform(leftData) {
|
||||
"valueExtendInfo": ""
|
||||
});
|
||||
rightSkuItem.productSkuId = 0;
|
||||
if (!leftSkuItem.productSkuWhExtAttr) {
|
||||
rightSkuItem.productSkuWhExtAttrReq = null
|
||||
} else {
|
||||
rightSkuItem.productSkuWhExtAttrReq = {
|
||||
"productSkuVolumeReq": leftSkuItem.productSkuWhExtAttr.productSkuVolume,
|
||||
"productSkuWeightReq": leftSkuItem.productSkuWhExtAttr.productSkuWeight,
|
||||
"productSkuBarCodeReqs": leftSkuItem.productSkuWhExtAttr.productSkuBarCodes,
|
||||
"productSkuVolumeReq": leftSkuItem.productSkuWhExtAttr?.productSkuVolume,
|
||||
"productSkuWeightReq": leftSkuItem.productSkuWhExtAttr?.productSkuWeight,
|
||||
"productSkuBarCodeReqs": leftSkuItem.productSkuWhExtAttr?.productSkuBarCodes,
|
||||
"productSkuSensitiveAttrReq": {
|
||||
"isSensitive": leftSkuItem.productSkuWhExtAttr.productSkuSensitiveAttr.isSensitive,
|
||||
"sensitiveList": leftSkuItem.productSkuWhExtAttr.productSkuSensitiveAttr.sensitiveList},
|
||||
"productSkuSensitiveLimitReq": leftSkuItem.productSkuWhExtAttr.productSkuSensitiveLimit,
|
||||
"isSensitive": leftSkuItem.productSkuWhExtAttr?.productSkuSensitiveAttr.isSensitive,
|
||||
"sensitiveList": leftSkuItem.productSkuWhExtAttr?.productSkuSensitiveAttr.sensitiveList},
|
||||
"productSkuSensitiveLimitReq": leftSkuItem.productSkuWhExtAttr?.productSkuSensitiveLimit,
|
||||
};
|
||||
}
|
||||
rightSkuItem.currencyType = leftSkuItem.currencyType;
|
||||
|
||||
rightSkcItem.productSkuReqs.push(rightSkuItem);
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</el-tooltip>
|
||||
<el-dropdown @command="handleClick">
|
||||
<div class="userinfo">
|
||||
<span>{{ $store.state.userInfo.name + "(" + $store.state.userInfo.phone + ")" }}</span>
|
||||
<span>{{ userInfo.name + "(" + userInfo.phone + ")" }}</span>
|
||||
<img src="../assets/images/bottom.png"/>
|
||||
</div>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
@@ -49,6 +49,15 @@
|
||||
<i class="el-icon-monitor"></i>
|
||||
<span slot="title">工作台</span>
|
||||
</el-menu-item>
|
||||
|
||||
<el-submenu index="/imageTranslate">
|
||||
<template #title>
|
||||
<i class="el-icon-cpu"/>
|
||||
<span>AI助手</span>
|
||||
</template>
|
||||
<el-menu-item index="/imageTranslate">图片翻译</el-menu-item>
|
||||
</el-submenu>
|
||||
|
||||
<el-submenu index="/normalSendGoods">
|
||||
<template slot="title">
|
||||
<i class="el-icon-shopping-cart-2"></i>
|
||||
@@ -74,7 +83,7 @@
|
||||
<el-menu-item index="/findSeller">查找买手</el-menu-item>
|
||||
<el-menu-item index="/priceDown">拒绝调价</el-menu-item>
|
||||
<!--<el-menu-item index="/batchUpload">批量上品</el-menu-item>-->
|
||||
<el-menu-item v-if="$store.state.userInfo.phone == '18610967550' || $store.state.userInfo.phone == '18571466720'" index="/draft">
|
||||
<el-menu-item v-if="$store.state.userInfo.phone == '18610967550' || isAdmin" index="/draft">
|
||||
草稿箱管理
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/sellerSelect">上新生命周期管理</el-menu-item>
|
||||
@@ -153,16 +162,16 @@
|
||||
<el-menu-item index="/copyProductShein">商品复制</el-menu-item>
|
||||
<el-menu-item index="/orderListShein">发货订单</el-menu-item>
|
||||
<el-menu-item index="/productListOdm">商品列表(ODM)</el-menu-item>
|
||||
<el-menu-item v-if="$store.state.userInfo.phone == '18571466720' || $store.state.userInfo.phone == '18666013582'" index="/returnRecordShein">退货与报废单列表</el-menu-item>
|
||||
<el-menu-item v-if="$store.state.userInfo.phone == '18571466720' || $store.state.userInfo.phone == '17607119772'" index="/labelInfoShein">
|
||||
<el-menu-item v-if="isAdmin || $store.state.userInfo.phone == '18666013582'" index="/returnRecordShein">退货与报废单列表</el-menu-item>
|
||||
<el-menu-item v-if="isAdmin || $store.state.userInfo.phone == '17607119772'" index="/labelInfoShein">
|
||||
标签管理
|
||||
</el-menu-item>
|
||||
<el-menu-item v-if="$store.state.userInfo.phone == '18571466720' || $store.state.userInfo.phone == '17607119772'" index="/purchaseOrderListShein">
|
||||
<el-menu-item v-if="isAdmin || $store.state.userInfo.phone == '17607119772'" index="/purchaseOrderListShein">
|
||||
发货单列表
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/saleStatShein">商家账单统计</el-menu-item>
|
||||
</el-submenu>
|
||||
<el-submenu index="/dataManager" v-if="$store.state.userInfo.phone == '18571466720'">
|
||||
<el-submenu index="/dataManager" v-if="isAdmin">
|
||||
<template slot="title">
|
||||
<i class="el-icon-s-data"></i>
|
||||
<span slot="title">数据管理</span>
|
||||
@@ -210,6 +219,7 @@
|
||||
<el-menu-item index="/labelsPrint">标签打印</el-menu-item>
|
||||
</el-submenu>
|
||||
</el-submenu>
|
||||
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
<div class="container">
|
||||
@@ -257,12 +267,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapMutations, mapState} from 'vuex'
|
||||
import AiPayment from "@/components/AiPayment.vue";
|
||||
import LablesMember from '@/components/LablesMember'
|
||||
import {sendAliexpressAPIMessage, sendGoodcangAPIMessage} from "@/api/chromeApi";
|
||||
import {mapMutations, mapState} from 'vuex'
|
||||
import AiPayment from "@/components/AiPayment.vue";
|
||||
import LablesMember from '@/components/LablesMember'
|
||||
import {sendAliexpressAPIMessage, sendGoodcangAPIMessage} from "@/api/chromeApi";
|
||||
|
||||
export default {
|
||||
export default {
|
||||
components: {AiPayment, LablesMember},
|
||||
data() {
|
||||
return {
|
||||
@@ -294,7 +304,8 @@
|
||||
}
|
||||
},
|
||||
|
||||
...mapState(['mallName', 'mallList'])
|
||||
...mapState(['mallName', 'mallList', 'userInfo']),
|
||||
isAdmin: v => ['18571466720'].includes(v.userInfo.phone),
|
||||
},
|
||||
|
||||
watch: {
|
||||
@@ -443,8 +454,8 @@
|
||||
}
|
||||
}
|
||||
}),
|
||||
"from":"SELF",
|
||||
"bizParam":"{\"version\":\"simple\"}"
|
||||
"from": "SELF",
|
||||
"bizParam": "{\"version\":\"simple\"}"
|
||||
})
|
||||
)
|
||||
sendAliexpressAPIMessage({
|
||||
@@ -470,7 +481,7 @@
|
||||
mounted() {
|
||||
// this.getAliexpressGoodsList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div class="search-item__wrapper">
|
||||
<div class="left">
|
||||
<div class="search-item" v-show="addType === '1'">
|
||||
<label>发货单:</label>
|
||||
<label>店铺:</label>
|
||||
<el-select v-model="search.mallId" placeholder="请选择店铺" size="small">
|
||||
<el-option
|
||||
v-for="item in $store.state.mallList"
|
||||
@@ -31,6 +31,8 @@
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-button style="margin-left: 10px;" size="small" :disabled="!search.mallId" :loading="isLoading" @click="searchSkuList">查询</el-button>
|
||||
|
||||
<p class="tips">发货单列表->待仓库发货</p>
|
||||
</div>
|
||||
<div class="search-item" v-show="addType === '2' || addType === '3'">
|
||||
<label>{{ addType === '2' ? 'SKC:' : 'SKU:' }}</label>
|
||||
@@ -40,7 +42,7 @@
|
||||
style="width: 250px"
|
||||
size="small"
|
||||
clearable
|
||||
placeholder="多个查询请用户逗号分割"
|
||||
placeholder="多个查询请用逗号分割"
|
||||
suffix-icon="iconfont iconSearch">
|
||||
</el-input>
|
||||
<el-input
|
||||
@@ -48,7 +50,7 @@
|
||||
v-model="search.productSkcId"
|
||||
style="width: 250px"
|
||||
size="small"
|
||||
placeholder="多个查询请用户逗号分割"
|
||||
placeholder="多个查询请用逗号分割"
|
||||
clearable
|
||||
suffix-icon="iconfont iconSearch">
|
||||
</el-input>
|
||||
@@ -63,6 +65,18 @@
|
||||
:height="height"
|
||||
@getList="() => {}"
|
||||
:loading="isLoading">
|
||||
<el-table-column slot="product" width="280px" label="商品信息" align="center">
|
||||
<template slot-scope="scope">
|
||||
<div class="product">
|
||||
<img :src="scope.row.thumbUrl" v-if="scope.row.thumbUrl">
|
||||
<div class="right">
|
||||
<el-tooltip class="item" effect="dark" :content="scope.row.productName" placement="top">
|
||||
<div>{{ scope.row.productName }}</div>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column slot="options" label="操作" align="center" fixed="right" width="120px">
|
||||
<template v-slot="{ row }">
|
||||
<div class="table-options">
|
||||
@@ -103,12 +117,15 @@
|
||||
return {
|
||||
colConfigs: [
|
||||
{ prop: 'mallName', label: '店铺名称', align: 'left' },
|
||||
// { prop: 'productName', label: '商品名称', width: '280px', align: 'center' },
|
||||
{ slot: 'product' },
|
||||
{ prop: 'labelCode', label: '条码编码', align: 'center' },
|
||||
{ prop: 'productSkcId', label: 'SKC', align: 'center' },
|
||||
{ prop: 'productSkuId', label: 'SKU', align: 'center' },
|
||||
{ prop: 'skuExtCode', label: 'SKU货号', align: 'center' },
|
||||
{ prop: 'skuSpecName', label: '次销售属性', align: 'center' },
|
||||
{ prop: 'deliveryNum', label: '发货数', align: 'center' }
|
||||
{ prop: 'deliveryNum', label: '发货数', align: 'center' },
|
||||
{ prop: 'purchaseTime', label: '创建时间', align: 'center', format: v => this.$dayjs(v).format('YYYY-MM-DD HH:mm:ss') }
|
||||
],
|
||||
search: {
|
||||
mallId: '',
|
||||
@@ -281,6 +298,7 @@
|
||||
labelCode: v.labelCode,
|
||||
skuExtCode: v.skuExtCode,
|
||||
deliveryNum: v.deliveryNum,
|
||||
thumbUrl: v.thumbUrl,
|
||||
skuSpecName: v.secondarySpecVOList.map(item => {
|
||||
return item.specName
|
||||
}).join(',')
|
||||
@@ -339,5 +357,35 @@
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.product {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
margin-left: 10px;
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
div {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
width: 60px;
|
||||
}
|
||||
}
|
||||
.tips {
|
||||
margin-left: 20px;
|
||||
font-size: 14px;
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
v-model="skuReqParams.SKC"
|
||||
style="width: 250px"
|
||||
size="small"
|
||||
placeholder="多个查询请用户逗号分割"
|
||||
placeholder="多个查询请用逗号分割"
|
||||
clearable
|
||||
@clear="getSkuList()"
|
||||
suffix-icon="iconfont iconSearch">
|
||||
@@ -156,7 +156,7 @@
|
||||
v-model="skuReqParams.SKU"
|
||||
style="width: 250px"
|
||||
size="small"
|
||||
placeholder="多个查询请用户逗号分割"
|
||||
placeholder="多个查询请用逗号分割"
|
||||
clearable
|
||||
@clear="getSkuList()"
|
||||
suffix-icon="iconfont iconSearch">
|
||||
|
||||
@@ -78,7 +78,7 @@ import CryptoJS from 'crypto-js'
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.password != this.form.repassword) {
|
||||
this.$message.success('两次密码输入不一致');
|
||||
this.$message.error('两次密码输入不一致');
|
||||
return;
|
||||
}
|
||||
this.btnLoading = true
|
||||
|
||||
34
src/view/media/i18n.js
Normal file
34
src/view/media/i18n.js
Normal file
@@ -0,0 +1,34 @@
|
||||
export const languages = {
|
||||
CHS: '中文(简体)',
|
||||
CHT: '中文(繁体)',
|
||||
CSY: '捷克语',
|
||||
NLD: '荷兰语',
|
||||
ENG: '英语',
|
||||
FRA: '法语',
|
||||
DEU: '德语',
|
||||
HUN: '匈牙利语',
|
||||
ITA: '意大利语',
|
||||
JPN: '日语',
|
||||
KOR: '朝鲜文',
|
||||
PLK: '波兰语',
|
||||
PTB: '葡萄牙语(巴西)',
|
||||
ROM: '罗马尼亚语',
|
||||
RUS: '俄罗斯语',
|
||||
ESP: '西班牙语',
|
||||
TRK: '土耳其语',
|
||||
VIN: '越南语',
|
||||
ARA: '阿拉伯语',
|
||||
SRP: '塞尔维亚语',
|
||||
HRV: '克罗地亚语',
|
||||
THA: '泰语',
|
||||
IND: '印尼语',
|
||||
FIL: '菲律宾语(他加禄语)',
|
||||
}
|
||||
export const engines = {
|
||||
google: '谷歌翻译',
|
||||
papago: 'Papago',
|
||||
m2m100: 'M2M100',
|
||||
deepl: 'DeepL',
|
||||
none: '清除文字',
|
||||
original: '不翻译'
|
||||
}
|
||||
44
src/view/media/imageTranslate.vue
Normal file
44
src/view/media/imageTranslate.vue
Normal file
@@ -0,0 +1,44 @@
|
||||
<script>
|
||||
import AiDetail from "@/components/AiDetail.vue";
|
||||
import AiSelect from "@/components/AiSelect.vue";
|
||||
import {engines, languages} from "@/view/media/i18n";
|
||||
|
||||
export default {
|
||||
name: "imageTranslate",
|
||||
components: {AiSelect, AiDetail},
|
||||
data() {
|
||||
return {
|
||||
form: {},
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
languages: () => Object.entries(languages).map(([k, v]) => ({dictName: v, dictValue: k})),
|
||||
engines: () => Object.entries(engines).map(([k, v]) => ({dictName: v, dictValue: k})),
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ai-list class="imageTranslate">
|
||||
<ai-title slot="title" title="图片翻译" isShowBottomBorder/>
|
||||
<template #content>
|
||||
<el-form size="mini" label-width="120px">
|
||||
<el-collapse>
|
||||
<el-collapse-item title="翻译参数" name="1">
|
||||
<el-form-item label="翻译引擎">
|
||||
<ai-select v-model="form.translator" :select-list="engines"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="翻译语言">
|
||||
<ai-select v-model="form.targetLang" :select-list="languages"/>
|
||||
</el-form-item>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</el-form>
|
||||
</template>
|
||||
</ai-list>
|
||||
</template>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.imageTranslate {
|
||||
}
|
||||
</style>
|
||||
@@ -107,8 +107,19 @@
|
||||
:tableData="orderDataList"
|
||||
:col-configs="orderColConfig"
|
||||
height="700"
|
||||
:isShowPagination="false"
|
||||
:size="100"
|
||||
:current.sync="form.current"
|
||||
:size.sync="form.size"
|
||||
:total="orderTotal"
|
||||
@getList="getOrderList"
|
||||
style="margin-top: 8px;">
|
||||
<el-table-column slot="options" label="操作" align="center" fixed="right" width="140px">
|
||||
<template v-slot="{ row }">
|
||||
<div class="table-options">
|
||||
<el-button type="text" v-if="form.status == '1'" @click="toSend(row)">重新发货</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</ai-card>
|
||||
<AiDialog
|
||||
@@ -197,6 +208,7 @@
|
||||
return {
|
||||
isShow: false,
|
||||
orderDataList: [],
|
||||
orderTotal: 0,
|
||||
colConfigs: [
|
||||
{ type: "selection", width: '70px', align: 'left' },
|
||||
{ slot: 'productName' },
|
||||
@@ -225,7 +237,9 @@
|
||||
],
|
||||
form: {
|
||||
warehouseId: 'XinCang',
|
||||
status: ''
|
||||
status: '',
|
||||
current: 1,
|
||||
size: 100
|
||||
},
|
||||
mallId: '',
|
||||
mallName: '',
|
||||
@@ -319,6 +333,7 @@
|
||||
}
|
||||
}).then(res => {
|
||||
this.orderDataList = res.data.records
|
||||
this.orderTotal = res.data.total
|
||||
})
|
||||
},
|
||||
handleClick (e) {
|
||||
@@ -516,6 +531,10 @@
|
||||
params['invoice[product_declared_value][]'] = ''
|
||||
params['invoice[product_weight][]'] = ''
|
||||
|
||||
if (obj.details[0].warehouseCode == 'UAXC002') {
|
||||
params.courier = 'USPS'
|
||||
}
|
||||
|
||||
for (let i = 0; i < obj.details.length; i++) {
|
||||
params[`platform_barcode[${obj.details[i].productId}]`] = ''
|
||||
params[`product_title_en[${obj.details[i].productId}]`] = obj.details[i].productTitleEn
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
const path = require('path')
|
||||
const fs = require('fs')
|
||||
// const JavaScriptObfuscator = require('webpack-obfuscator')
|
||||
|
||||
// Generate pages object
|
||||
const pages = {}
|
||||
|
||||
@@ -22,11 +20,12 @@ chromeName.forEach((name) => {
|
||||
entry: `src/entry/${name}`, template: 'public/index.html', filename: `${fileName}.html`
|
||||
}
|
||||
})
|
||||
|
||||
const isDevMode = process.env.NODE_ENV === 'development'
|
||||
|
||||
module.exports = {
|
||||
pages, filenameHashing: false, chainWebpack: (config) => {
|
||||
pages,
|
||||
filenameHashing: false,
|
||||
chainWebpack: (config) => {
|
||||
config.plugin('copy').use(require('copy-webpack-plugin'), [{
|
||||
patterns: [{
|
||||
from: path.resolve(`src/manifest.${process.env.NODE_ENV}.json`), to: `${path.resolve('dist')}/manifest.json`
|
||||
@@ -34,21 +33,25 @@ module.exports = {
|
||||
from: path.resolve(`public/`), to: `${path.resolve('dist')}/`
|
||||
}]
|
||||
}])
|
||||
}, devServer: {
|
||||
port: 8080, open: true, overlay: {
|
||||
warnings: false, errors: true
|
||||
}, proxy: {
|
||||
},
|
||||
devServer: {
|
||||
port: 8080, open: true, hot: true,
|
||||
proxy: {
|
||||
'/api': {
|
||||
target: 'http://pdd.jjcp52.com', changeOrigin: true, ws: true, pathRewrite: {
|
||||
'^/api': '/'
|
||||
}
|
||||
}
|
||||
}
|
||||
}, lintOnSave: false, configureWebpack: {
|
||||
},
|
||||
lintOnSave: false,
|
||||
configureWebpack: {
|
||||
output: {
|
||||
filename: `[name].js`, chunkFilename: `[name].js`
|
||||
}, devtool: isDevMode ? 'inline-source-map' : false
|
||||
}, css: {
|
||||
},
|
||||
devtool: isDevMode ? 'inline-source-map' : false
|
||||
},
|
||||
css: {
|
||||
extract: false // Make sure the css is the same
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user