update
This commit is contained in:
parent
5b563867fe
commit
8176c75f22
2
.gitignore
vendored
2
.gitignore
vendored
@ -25,7 +25,7 @@ pnpm-debug.log*
|
||||
# Lock files
|
||||
yarn.lock
|
||||
pnpm-lock.yaml
|
||||
package-lock.json
|
||||
# package-lock.json
|
||||
|
||||
# Yarn v2 not using using Zero-Installs
|
||||
.yarn/*
|
||||
|
||||
31868
package-lock.json
generated
Normal file
31868
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
109
src/api/appVersion/appVersion.js
Normal file
109
src/api/appVersion/appVersion.js
Normal file
@ -0,0 +1,109 @@
|
||||
import request from '@/utils/request'
|
||||
import { URL } from '@/config'
|
||||
/**
|
||||
* 获取APP 版本列表
|
||||
* @author Seven
|
||||
* @data 2025-5-5
|
||||
* @param "marketId": 1, // 各大安卓 APP 市场标识:1 - 小米;2 - 华为;3 - 腾讯应用市场;4 - OPPO;5 - VIVO;6 - 三星;100-通用包(不区分市场的包);
|
||||
"keyword": "",//搜索关键字
|
||||
"pageNum": 1 ,
|
||||
"pageSize": 10
|
||||
* @returns { }
|
||||
* @see https://mall.gpxscs.cn/api/admin/app-market-update/enable-or-disable
|
||||
*/
|
||||
|
||||
export function getShopAppVersionList(params) {
|
||||
return request({
|
||||
url: URL.appVersion.getShopAppVersionList,
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加APP包
|
||||
* @author Seven
|
||||
* @data 2025-5-5
|
||||
* @param {
|
||||
"market_id": 1, // 各大安卓 APP 市场标识:1 - 小米;2 - 华为;3 - 腾讯应用市场;4 - OPPO;5 - VIVO;6 - 三星;100-通用包(不区分市场的包);
|
||||
"package_name": "xftc.apk", // app 包名
|
||||
"version_key": 2, //热更新包内部整数版本号,1-10000000
|
||||
"version_name": "1.0.2", //热更新包显示的版本号,用于标识不同的热更新版本,遵循一定命名规则,如 1.23.21
|
||||
"download_apk_url": "https://mall.gpxscs.cn/abc.apk",// apk 包下载地址
|
||||
"download_wgt_url": "https://mall.gpxscs.cn/abc.wgt", // 增量包下载地址
|
||||
"description": "发布版本详细说明",
|
||||
"is_force_update": 2 // 是否为强制更新,1-表示强制更新,2-表示非强制更新,
|
||||
}
|
||||
* @returns { }
|
||||
* @see https://mall.gpxscs.cn/api/admin/admin/app-market-update/add/new
|
||||
*/
|
||||
|
||||
export function addShopAppVersion(params) {
|
||||
return request({
|
||||
url: URL.appVersion.addShopAppVersion,
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新APP包
|
||||
* @author Seven
|
||||
* @data 2025-5-5
|
||||
* @param {
|
||||
"id": 2,// 自增Id
|
||||
"market_id": 1, // 各大安卓 APP 市场标识:1 - 小米;2 - 华为;3 - 腾讯应用市场;4 - OPPO;5 - VIVO;6 - 三星;100-通用包(不区分市场的包);
|
||||
"package_name": "xftc.apk", // app 包名
|
||||
"version_key": 2, //热更新包内部整数版本号,1-10000000
|
||||
"version_name": "1.0.2", //热更新包显示的版本号,用于标识不同的热更新版本,遵循一定命名规则,如 1.23.21
|
||||
"download_apk_url": "https://mall.gpxscs.cn/abc.apk",// apk 包下载地址
|
||||
"download_wgt_url": "https://mall.gpxscs.cn/abc.wgt", // 增量包下载地址
|
||||
"description": "发布版本详细说明",
|
||||
"is_force_update": 2 // 是否为强制更新,1-表示强制更新,2-表示非强制更新,
|
||||
* }
|
||||
* @returns { }
|
||||
* @see https://mall.gpxscs.cn/api/admin/admin/app-market-update/modify
|
||||
*/
|
||||
|
||||
export function updateShopAppVersion(params) {
|
||||
return request({
|
||||
url: URL.appVersion.updateShopAppVersion,
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 开启/关闭更新
|
||||
* @author Seven
|
||||
* @data 2025-5-5
|
||||
* @param {
|
||||
{
|
||||
"id": 1, // 自增Id,列表里获取
|
||||
"status": 2, // 状态:1-开启;2-关闭
|
||||
}
|
||||
|
||||
* }
|
||||
* @returns { }
|
||||
* @see https://mall.gpxscs.cn/api/admin/admin/app-market-update/enable-or-disable
|
||||
*/
|
||||
|
||||
export function disableUpdateShopApp(params) {
|
||||
return request({
|
||||
url: URL.appVersion.disableUpdateShopApp,
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
data: params,
|
||||
})
|
||||
}
|
||||
@ -4,7 +4,7 @@
|
||||
:class="'top-card top-card-' + background"
|
||||
shadow="hover"
|
||||
>
|
||||
<span style="color:#181818">{{ title }}</span>
|
||||
<span style="color: #181818">{{ title }}</span>
|
||||
<span style="float: right; margin-right: 4px">
|
||||
<el-tag size="small" type="success">{{ t('今日') }}</el-tag>
|
||||
</span>
|
||||
@ -51,149 +51,149 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { translateTitle as t } from '@/utils/i18n'
|
||||
import _ from 'lodash'
|
||||
import { translateTitle as t } from '@/utils/i18n'
|
||||
import _ from 'lodash'
|
||||
|
||||
import MsCount from '@/components/MsCount'
|
||||
import MsCard from '@/components/MsCard'
|
||||
import MsCount from '@/components/MsCount'
|
||||
import MsCard from '@/components/MsCard'
|
||||
|
||||
export default {
|
||||
name: 'TopCard',
|
||||
components: {
|
||||
MsCount,
|
||||
MsCard,
|
||||
export default {
|
||||
name: 'TopCard',
|
||||
components: {
|
||||
MsCount,
|
||||
MsCard,
|
||||
},
|
||||
props: {
|
||||
background: {
|
||||
type: String,
|
||||
default: 'white',
|
||||
},
|
||||
props: {
|
||||
background: {
|
||||
type: String,
|
||||
default: 'white',
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
icon: {
|
||||
type: String,
|
||||
default: 'album-line',
|
||||
},
|
||||
bottomText: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
unitText: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
countConfig: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {
|
||||
startVal: 0,
|
||||
endVal: _.random(1000, 20000),
|
||||
decimals: 0,
|
||||
prefix: '',
|
||||
suffix: '',
|
||||
separator: ',',
|
||||
duration: 8000,
|
||||
}
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
icon: {
|
||||
type: String,
|
||||
default: 'album-line',
|
||||
},
|
||||
bottomText: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
unitText: {
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
countConfig: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {
|
||||
startVal: 0,
|
||||
endVal: _.random(1000, 20000),
|
||||
decimals: 0,
|
||||
prefix: '',
|
||||
suffix: '',
|
||||
separator: ',',
|
||||
duration: 8000,
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
t,
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
t,
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.top-card {
|
||||
position: relative;
|
||||
height: 158px !important;
|
||||
}
|
||||
.top-card {
|
||||
position: relative;
|
||||
height: 158px !important;
|
||||
}
|
||||
|
||||
.top-card p {
|
||||
font-size: 28px;
|
||||
.top-card p {
|
||||
font-size: 28px;
|
||||
|
||||
display: block;
|
||||
margin-block-start: 20px;
|
||||
margin-block-end: 20px;
|
||||
margin-inline-start: 0px;
|
||||
margin-inline-end: 0px;
|
||||
}
|
||||
display: block;
|
||||
margin-block-start: 20px;
|
||||
margin-block-end: 20px;
|
||||
margin-inline-start: 0px;
|
||||
margin-inline-end: 0px;
|
||||
}
|
||||
|
||||
.top-card .right-icon {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 20px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
color: var(--el-color-primary);
|
||||
text-align: center;
|
||||
background: var(--el-color-primary-light-9);
|
||||
border-radius: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
.top-card .right-icon {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
right: 20px;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
color: var(--el-color-primary);
|
||||
text-align: center;
|
||||
background: var(--el-color-primary-light-9);
|
||||
border-radius: 50%;
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
|
||||
.top-card .right-icon i {
|
||||
font-size: 30px;
|
||||
}
|
||||
.top-card .right-icon i {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.top-card .bottom {
|
||||
font-size: 12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.top-card .bottom {
|
||||
font-size: 12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.top-card .bottom .ri-arrow-up-line,
|
||||
.top-card .bottom .ri-arrow-down-line {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin: 0 3px 0 2px;
|
||||
vertical-align: -3px !important;
|
||||
border-radius: 50%;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
.top-card .bottom .ri-arrow-up-line,
|
||||
.top-card .bottom .ri-arrow-down-line {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
margin: 0 3px 0 2px;
|
||||
vertical-align: -3px !important;
|
||||
border-radius: 50%;
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
.top-card .bottom .ri-arrow-up-line {
|
||||
color: var(--el-color-error);
|
||||
background: var(--el-color-error-light);
|
||||
}
|
||||
.top-card .bottom .ri-arrow-up-line {
|
||||
color: var(--el-color-error);
|
||||
background: var(--el-color-error-light);
|
||||
}
|
||||
|
||||
.top-card .bottom .ri-arrow-down-line {
|
||||
color: var(--el-color-success);
|
||||
background: var(--el-color-success-light);
|
||||
}
|
||||
.top-card .bottom .ri-arrow-down-line {
|
||||
color: var(--el-color-success);
|
||||
background: var(--el-color-success-light);
|
||||
}
|
||||
|
||||
.top-card .bottom span {
|
||||
color: var(--el-color-success);
|
||||
}
|
||||
.top-card .bottom span {
|
||||
color: var(--el-color-success);
|
||||
}
|
||||
|
||||
.top-card.blue {
|
||||
color: #fff;
|
||||
background: var(--el-color-primary);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
var(--el-color-primary-light-4),
|
||||
var(--el-color-primary)
|
||||
);
|
||||
}
|
||||
.top-card.blue {
|
||||
color: #fff;
|
||||
background: var(--el-color-primary);
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
var(--el-color-primary-light-4),
|
||||
var(--el-color-primary)
|
||||
);
|
||||
}
|
||||
|
||||
.top-card.blue .bottom {
|
||||
font-size: 12px;
|
||||
}
|
||||
.top-card.blue .bottom {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.top-card.blue .bottom .ri-arrow-up-line {
|
||||
color: #fff;
|
||||
background: transparent;
|
||||
}
|
||||
.top-card.blue .bottom .ri-arrow-up-line {
|
||||
color: #fff;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.top-card.blue .bottom .ri-arrow-up-line {
|
||||
color: var(--el-color-primary);
|
||||
background: var(--el-color-primary-light-9);
|
||||
transform: scale(0.8);
|
||||
}
|
||||
.top-card.blue .bottom .ri-arrow-up-line {
|
||||
color: var(--el-color-primary);
|
||||
background: var(--el-color-primary-light-9);
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
.top-card.blue .bottom span {
|
||||
color: #fff;
|
||||
}
|
||||
.top-card.blue .bottom span {
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
/**
|
||||
* @description 导出网络配置
|
||||
**/
|
||||
@ -22,6 +21,14 @@ let url = {
|
||||
verifyCode: api_url + '/admin/shop/shop-base-config/image', // 获取登录验证码路径
|
||||
testEmail: api_url + '/admin/shop/email/testEmail', // 邮件测试路径
|
||||
upload: api_url + '/admin/oss/upload', // 图片 oss 路径
|
||||
appVersion: {
|
||||
getShopAppVersionList:
|
||||
api_url + '/admin/admin/app-market-update/search/list',
|
||||
addShopAppVersion: api_url + '/admin/admin/app-market-update/add/new',
|
||||
updateShopAppVersion: api_url + '/admin/admin/app-market-update/modify',
|
||||
disableUpdateShopApp:
|
||||
api_url + '/admin/admin/app-market-update/enable-or-disable',
|
||||
},
|
||||
city: {
|
||||
user: {
|
||||
paotuier: {
|
||||
@ -67,12 +74,16 @@ let url = {
|
||||
},
|
||||
order: {
|
||||
//商家端-订单量
|
||||
getOrderNumToday: api_url + '/admin/shop/analytics/order/getOrderNumToday',
|
||||
getOrderNumToday:
|
||||
api_url + '/admin/shop/analytics/order/getOrderNumToday',
|
||||
getOrderNum: api_url + '/admin/shop/analytics/order/getOrderNum',
|
||||
//商家端-使用优惠卷数量
|
||||
getVoucherActiveNumToday: api_url + '/admin/shop/analytics/order/getVoucherActiveNumToday',
|
||||
getVoucherActiveNum: api_url + '/admin/shop/analytics/order/getVoucherActiveNum',
|
||||
getSaleOrderAmount: api_url + '/admin/shop/analytics/order/getSaleOrderAmount',
|
||||
getVoucherActiveNumToday:
|
||||
api_url + '/admin/shop/analytics/order/getVoucherActiveNumToday',
|
||||
getVoucherActiveNum:
|
||||
api_url + '/admin/shop/analytics/order/getVoucherActiveNum',
|
||||
getSaleOrderAmount:
|
||||
api_url + '/admin/shop/analytics/order/getSaleOrderAmount',
|
||||
getOrderAmount: api_url + '/admin/shop/analytics/order/getOrderAmount',
|
||||
getDashboardTimeLine:
|
||||
api_url + '/admin/shop/analytics/order/getDashboardTimeLine',
|
||||
@ -90,7 +101,8 @@ let url = {
|
||||
},
|
||||
return: {
|
||||
// 商家端-退货单数
|
||||
getReturnNumToday: api_url + '/admin/shop/analytics/return/getReturnNumToday',
|
||||
getReturnNumToday:
|
||||
api_url + '/admin/shop/analytics/return/getReturnNumToday',
|
||||
getReturnNum: api_url + '/admin/shop/analytics/return/getReturnNum',
|
||||
getReturnAmountTimeline:
|
||||
api_url + '/admin/shop/analytics/return/getReturnAmountTimeline',
|
||||
@ -415,17 +427,17 @@ let url = {
|
||||
},
|
||||
// 商店
|
||||
shop: {
|
||||
merch:{
|
||||
merch: {
|
||||
// 商家申请入驻信息分页列表
|
||||
merchList:api_url + '/admin/shop/merch/list',
|
||||
merchList: api_url + '/admin/shop/merch/list',
|
||||
// 商家申请入驻信息详情
|
||||
merchDetail: api_url + '/admin/shop/merch/detail',
|
||||
// 审批商家申请入驻
|
||||
merchApproval : api_url + '/admin/shop/merch/approval',
|
||||
merchApproval: api_url + '/admin/shop/merch/approval',
|
||||
// 发起合同签署
|
||||
createByFile : api_url + '/admin/shop/esign/sign-flow/create-by-file',
|
||||
createByFile: api_url + '/admin/shop/esign/sign-flow/create-by-file',
|
||||
//查看商家签署合同
|
||||
checkContractFile : api_url + '/admin/shop/esign/signed/contract/file'
|
||||
checkContractFile: api_url + '/admin/shop/esign/signed/contract/file',
|
||||
},
|
||||
activity: {
|
||||
lottery: {
|
||||
@ -542,7 +554,8 @@ let url = {
|
||||
base: {
|
||||
doDelete: api_url + '/admin/shop/hall-purchase-order-base/delete',
|
||||
getList: api_url + '/admin/shop/hall-purchase-order-base/list',
|
||||
getSupplyOrderList: api_url + '/admin/shop/hall-purchase-order-base/getSupplyOrderList',
|
||||
getSupplyOrderList:
|
||||
api_url + '/admin/shop/hall-purchase-order-base/getSupplyOrderList',
|
||||
doEdit: api_url + '/admin/shop/hall-purchase-order-base/edit',
|
||||
},
|
||||
},
|
||||
@ -647,7 +660,8 @@ let url = {
|
||||
doEdit:
|
||||
api_url + '/admin/shop/shop-base-product-category-mobile/edit',
|
||||
editState:
|
||||
api_url + '/admin/shop/shop-base-product-category-mobile/editState',
|
||||
api_url +
|
||||
'/admin/shop/shop-base-product-category-mobile/editState',
|
||||
doDelete:
|
||||
api_url + '/admin/shop/shop-base-product-category-mobile/delete',
|
||||
},
|
||||
@ -922,7 +936,8 @@ let url = {
|
||||
doCodeCreate:
|
||||
api_url + '/admin/shop/shop-store-activity-code/createCode',
|
||||
getCodeList: api_url + '/admin/shop/shop-store-activity-code/list',
|
||||
exportFile: api_url + '/admin/shop/shop-store-activity-code/exportFile',
|
||||
exportFile:
|
||||
api_url + '/admin/shop/shop-store-activity-code/exportFile',
|
||||
doCodeDelete: api_url + '/admin/shop/shop-store-activity-code/delete',
|
||||
getListsLotteryItems:
|
||||
api_url + '/admin/shop/shop-store-activity-base/listsLotteryItems',
|
||||
@ -1019,12 +1034,14 @@ let url = {
|
||||
del: api_url + '/admin/shop/shop-store-product-tag/del',
|
||||
},
|
||||
},
|
||||
printer:{
|
||||
printer: {
|
||||
//总后台-获取小票机品牌列表
|
||||
getReceiptMachineList:api_url + '/admin/shop/store/printer/model/page',
|
||||
addReceiptMachine:api_url + '/admin/shop/store/printer/model/add/new',
|
||||
delectReceiptMachine : api_url + '/admin/shop/store/printer/model/delete',
|
||||
updateReceiptMachine : api_url + '/admin/shop/store/printer/model/update',
|
||||
getReceiptMachineList: api_url + '/admin/shop/store/printer/model/page',
|
||||
addReceiptMachine: api_url + '/admin/shop/store/printer/model/add/new',
|
||||
delectReceiptMachine:
|
||||
api_url + '/admin/shop/store/printer/model/delete',
|
||||
updateReceiptMachine:
|
||||
api_url + '/admin/shop/store/printer/model/update',
|
||||
//商家端-获取打印机列表
|
||||
getPrinterList: api_url + '/admin/shop/store/printer/page',
|
||||
//商家端-获取打印机详情
|
||||
@ -1032,22 +1049,25 @@ let url = {
|
||||
//商家端-获取打印机品牌下拉列表
|
||||
getPrinterModelList: api_url + '/admin/shop/store/printer/model/list',
|
||||
//商家端-获取打印机区域列表
|
||||
getPrinterflagList: api_url + '/admin/shop/store/printer/region/list',
|
||||
addPrinter:api_url + '/admin/shop/store/printer/add/new',
|
||||
getPrinterflagList: api_url + '/admin/shop/store/printer/region/list',
|
||||
addPrinter: api_url + '/admin/shop/store/printer/add/new',
|
||||
delectPrinter: api_url + '/admin/shop/store/printer/delete',
|
||||
//商家端-更新打印机信息
|
||||
updatePrinterInfo: api_url + '/admin/shop/store/printer/update',
|
||||
//商家端-更新打印机状态
|
||||
updatePrnterStatus: api_url + '/admin/shop/store/printer/status/update',
|
||||
//商家端-测试打印
|
||||
testPrinter:api_url + '/admin/shop/store/printer/print/order'
|
||||
testPrinter: api_url + '/admin/shop/store/printer/print/order',
|
||||
},
|
||||
sameCityTransport: {
|
||||
getSameCityTransport:
|
||||
api_url + '/admin/shop/store/same-city-transport/detail',
|
||||
saveSameCityTransport:
|
||||
api_url + '/admin/shop/store/same-city-transport/save',
|
||||
delectArea:
|
||||
api_url + '/admin/shop/store/same-city-transport/delete/area',
|
||||
getSFTypeList: api_url + '/admin/shop/shop-store-base/business/list',
|
||||
},
|
||||
sameCityTransport:{
|
||||
getSameCityTransport: api_url + '/admin/shop/store/same-city-transport/detail',
|
||||
saveSameCityTransport: api_url + '/admin/shop/store/same-city-transport/save',
|
||||
delectArea:api_url + '/admin/shop/store/same-city-transport/delete/area',
|
||||
getSFTypeList:api_url + '/admin/shop/shop-store-base/business/list'
|
||||
}
|
||||
},
|
||||
user: {
|
||||
delivery: {
|
||||
@ -1158,7 +1178,8 @@ let url = {
|
||||
api_url + '/admin/shop/shop-order-return/exportFileByIds',
|
||||
doForceRefund: api_url + '/admin/shop/shop-order-return/doForceRefund',
|
||||
editRefund: api_url + '/admin/shop/shop-order-return/editRefund',
|
||||
transferToSupplier: api_url + '/admin/shop/shop-order-return/transferToSupplier',
|
||||
transferToSupplier:
|
||||
api_url + '/admin/shop/shop-order-return/transferToSupplier',
|
||||
doUpdateReturns:
|
||||
api_url + '/admin/shop/shop-order-return/doUpdateReturns',
|
||||
item: {
|
||||
@ -1343,9 +1364,7 @@ let url = {
|
||||
getList: api_url + '/admin/admin/admin-log-error/list',
|
||||
},
|
||||
},
|
||||
printer:{
|
||||
|
||||
}
|
||||
printer: {},
|
||||
},
|
||||
order: {
|
||||
add: api_url + '/order/add',
|
||||
|
||||
@ -125,6 +125,30 @@
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>隐私协议</span>
|
||||
</div>
|
||||
<div>
|
||||
<vab-quill
|
||||
ref="vab-quill"
|
||||
v-model="form.joininPrivacyAgreement"
|
||||
:min-height="400"
|
||||
:options="options"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<el-button
|
||||
icon="el-icon-s-tools"
|
||||
type="primary"
|
||||
@click="handleEdit('joininPrivacyAgreement')"
|
||||
>
|
||||
{{ __('修改') }}
|
||||
</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
@ -145,6 +169,7 @@
|
||||
joinin_condition: '',
|
||||
joinin_cooperation_details: '',
|
||||
joinin_expenses_details: '',
|
||||
joininPrivacyAgreement:''
|
||||
},
|
||||
|
||||
options: {
|
||||
@ -182,17 +207,20 @@
|
||||
__,
|
||||
async fetchData() {
|
||||
const { data } = await getList()
|
||||
|
||||
this.form = {
|
||||
joinin_investment_direction: data.joinin_investment_direction,
|
||||
joinin_standard: data.joinin_standard,
|
||||
joinin_condition: data.joinin_condition,
|
||||
joinin_cooperation_details: data.joinin_cooperation_details,
|
||||
joinin_expenses_details: data.joinin_expenses_details,
|
||||
joininPrivacyAgreement : data.joininPrivacyAgreement
|
||||
}
|
||||
},
|
||||
async handleEdit(key) {
|
||||
const obj = {}
|
||||
obj[key] = this.form[key]
|
||||
|
||||
const { msg, status } = await doEdit({
|
||||
param: JSON.stringify(obj),
|
||||
})
|
||||
|
||||
@ -1114,7 +1114,9 @@ export default {
|
||||
if (data != null) {
|
||||
this.pram = data
|
||||
// 代发货
|
||||
|
||||
this.data.wait_shipping_num = data.order.wait_shipping_num
|
||||
|
||||
// 待审核退货
|
||||
this.data.review_num = data.return.review_num
|
||||
// 违规商品
|
||||
|
||||
@ -238,9 +238,9 @@ export default {
|
||||
})
|
||||
},
|
||||
changeCode() {
|
||||
window.open(
|
||||
`https://mal1.gpxscs.cn/admin/#/login?loginInfo=JsoN.parse(J.stringify(res.data))`
|
||||
)
|
||||
// window.open(
|
||||
// `https://mal1.gpxscs.cn/admin/#/login?loginInfo=JsoN.parse(J.stringify(res.data))`
|
||||
// )
|
||||
|
||||
// this.codeUrl = `https://www.oschina.net/action/user/captcha?timestamp=${new Date().getTime()}`
|
||||
this.verify_token = new Date().getTime()
|
||||
|
||||
@ -1,20 +1,724 @@
|
||||
<template>
|
||||
<div class="appVersion-container">这是商家版APP</div>
|
||||
<div class="appVersion-container">
|
||||
<div class="head">
|
||||
<div class="head-add-btn">
|
||||
<el-button
|
||||
icon="el-icon-plus"
|
||||
type="primary"
|
||||
size="medium"
|
||||
@click="handleShowDialog"
|
||||
>
|
||||
添加安卓包
|
||||
</el-button>
|
||||
</div>
|
||||
<div class="head-content">
|
||||
<span class="name">APP包市场:</span>
|
||||
<el-select
|
||||
v-model="selectId"
|
||||
placeholder="请选择APP市场"
|
||||
@change="handerSelectMarketId"
|
||||
class="select-content"
|
||||
>
|
||||
<el-option
|
||||
:label="item.label"
|
||||
:value="item.key"
|
||||
v-for="(item, index) of options"
|
||||
:key="index"
|
||||
></el-option>
|
||||
</el-select>
|
||||
<span class="name">安卓包名称:</span>
|
||||
<el-input
|
||||
placeholder="请输入安卓包名称"
|
||||
suffix-icon="el-icon-search"
|
||||
v-model="appName"
|
||||
size="medium"
|
||||
class="input-with-select"
|
||||
></el-input>
|
||||
<el-button type="primary" size="medium" @click="handleSearch">
|
||||
搜索
|
||||
</el-button>
|
||||
|
||||
<el-button size="medium" @click="handleClear">清除条件</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:height="tableConfig.height"
|
||||
style="width: 100%"
|
||||
:stripe="true"
|
||||
>
|
||||
<el-table-column
|
||||
align="center"
|
||||
v-for="(item, index) in tabColumn"
|
||||
:key="index"
|
||||
:prop="item.prop"
|
||||
:label="item.label"
|
||||
:width="item.width"
|
||||
>
|
||||
<template #default="{ row, $index }">
|
||||
<div class="" v-if="item.label == '操作'">
|
||||
<el-button
|
||||
type="text"
|
||||
size="small"
|
||||
@click="handleEdit(row, $index)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
</div>
|
||||
<div v-else-if="item.label == '所属市场'">
|
||||
{{ formatAppShopName(row) }}
|
||||
</div>
|
||||
<div v-else-if="item.label == '开启状态'">
|
||||
<el-switch
|
||||
v-model="row.status"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
:active-value="1"
|
||||
:inactive-value="2"
|
||||
@change="handerDisableUpdateShopApp($event, row)"
|
||||
></el-switch>
|
||||
</div>
|
||||
<div v-else-if="item.label == '是否强制更新'">
|
||||
<el-switch
|
||||
v-model="row.is_force_update"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
:active-value="1"
|
||||
:inactive-value="2"
|
||||
@change="handerIsUpdateShopApp($event, row)"
|
||||
></el-switch>
|
||||
</div>
|
||||
<div v-else-if="item.label == '序号'">
|
||||
{{ $index + 1 }}
|
||||
</div>
|
||||
<div v-else>
|
||||
{{ row[item.prop] }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-dialog
|
||||
class="receipt-machine-dialog"
|
||||
:title="dialogTitle"
|
||||
:top="'10vh'"
|
||||
:width="'900px'"
|
||||
:visible.sync="showDialog"
|
||||
:before-close="handleCloseDialog"
|
||||
>
|
||||
<el-form
|
||||
ref="formDialog"
|
||||
class="form-dialog"
|
||||
:model="formDialog"
|
||||
:rules="formDialogRules"
|
||||
label-width="160px"
|
||||
>
|
||||
<el-form-item label="APP市场" prop="market_id">
|
||||
<el-select v-model="formDialog.market_id" placeholder="请选择APP市场">
|
||||
<el-option
|
||||
:label="item.label"
|
||||
:value="item.key"
|
||||
v-for="(item, index) of options"
|
||||
:key="index"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="APP包名" prop="package_name">
|
||||
<el-input
|
||||
v-model="formDialog.package_name"
|
||||
placeholder="例如:com.xiaofa.shopAdmin.apk"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="应用版本号" prop="version_key">
|
||||
<el-input
|
||||
v-model="formDialog.version_key"
|
||||
placeholder="热更新包内部整数版本号,1-10000000"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="应用版本号名称" prop="version_name">
|
||||
<el-input
|
||||
v-model="formDialog.version_name"
|
||||
placeholder="命名规则,如:1.23.21"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="apk 包下载地址" prop="download_apk_url">
|
||||
<div class="form-item-flex">
|
||||
<el-input
|
||||
v-model="formDialog.download_apk_url"
|
||||
placeholder="apk下载的地址"
|
||||
></el-input>
|
||||
<el-upload
|
||||
class="upload"
|
||||
ref="upload"
|
||||
:action="uploadUrl"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="handleAKPUpLoadSuccess"
|
||||
:data="uploadParams"
|
||||
:before-upload="checkAPKname"
|
||||
>
|
||||
<el-button slot="trigger" size="small" type="primary">
|
||||
上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="wgt 包下载地址" prop="download_wgt_url">
|
||||
<div class="form-item-flex">
|
||||
<el-input
|
||||
v-model="formDialog.download_wgt_url"
|
||||
placeholder="wgt 包下载地址"
|
||||
></el-input>
|
||||
<el-upload
|
||||
class="upload"
|
||||
ref="upload"
|
||||
:action="uploadUrl"
|
||||
:on-preview="handlePreview"
|
||||
:on-success="handleWGTUpLoadSuccess"
|
||||
:data="uploadParams"
|
||||
:before-upload="checkWGTname"
|
||||
>
|
||||
<el-button slot="trigger" size="small" type="primary">
|
||||
上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="发布版本详细说明" prop="description">
|
||||
<vab-quill
|
||||
ref="vab-quill"
|
||||
v-model="formDialog.description"
|
||||
:min-height="300"
|
||||
:options="vbOptions"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="升级包开启状态" prop="is_force_update">
|
||||
<el-switch
|
||||
v-model="formDialog.status"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
:active-value="1"
|
||||
:inactive-value="2"
|
||||
@change="handerDisableUpdateShopApp($event)"
|
||||
></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否强制更新" prop="is_force_update">
|
||||
<el-switch
|
||||
v-model="formDialog.is_force_update"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
:active-value="1"
|
||||
:inactive-value="2"
|
||||
@change="handerIsUpdateShopApp($event)"
|
||||
></el-switch>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="medium" @click="handleCloseDialog">取 消</el-button>
|
||||
<el-button size="medium" type="primary" @click="handleSubmitForm">
|
||||
确 定
|
||||
</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-pagination
|
||||
background
|
||||
:current-page="params.pageNum"
|
||||
:layout="layout"
|
||||
:page-size="params.pageSize"
|
||||
:total="total"
|
||||
@current-change="handleCurrentChange"
|
||||
@size-change="handleSizeChange"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getShopAppVersionList,
|
||||
addShopAppVersion,
|
||||
updateShopAppVersion,
|
||||
disableUpdateShopApp,
|
||||
} from '@/api/appVersion/appVersion'
|
||||
import VabQuill from '@/extra/VabQuill'
|
||||
import { URL } from '@/config'
|
||||
import { mapGetters } from 'vuex'
|
||||
import { getToken } from '@/utils/token'
|
||||
export default {
|
||||
name: 'appVersion',
|
||||
components: {},
|
||||
data() {
|
||||
return {}
|
||||
components: {
|
||||
VabQuill,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
uploadParams: {
|
||||
authorization: '',
|
||||
},
|
||||
uploadUrl: URL.action, //上传网址
|
||||
showDialog: false,
|
||||
isEdit: false,
|
||||
dialogTitle: '添加APP包',
|
||||
formDialog: {
|
||||
id: '',
|
||||
market_id: '',
|
||||
package_name: '',
|
||||
version_key: '',
|
||||
version_name: '',
|
||||
download_apk_url: '',
|
||||
download_wgt_url: '',
|
||||
description: '',
|
||||
is_force_update: '',
|
||||
status: '',
|
||||
},
|
||||
vbOptions: {
|
||||
theme: 'snow',
|
||||
bounds: document.body,
|
||||
debug: 'warn',
|
||||
modules: {
|
||||
toolbar: {
|
||||
container: [
|
||||
['bold', 'italic', 'underline', 'strike'],
|
||||
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
||||
[{ size: ['small', false, 'large', 'huge'] }],
|
||||
[{ color: [] }, { background: [] }],
|
||||
['blockquote', 'code-block'],
|
||||
[{ list: 'ordered' }, { list: 'bullet' }],
|
||||
[{ script: 'sub' }, { script: 'super' }],
|
||||
[{ indent: '-1' }, { indent: '+1' }],
|
||||
[{ align: [] }],
|
||||
[{ direction: 'rtl' }],
|
||||
[{ font: [] }],
|
||||
['clean'],
|
||||
['link', 'image', 'vab-upload-image'],
|
||||
],
|
||||
},
|
||||
},
|
||||
placeholder: '',
|
||||
readOnly: false,
|
||||
},
|
||||
formDialogRules: {
|
||||
market_id: [
|
||||
{ required: true, message: '请选择APP市场', trigger: 'change' },
|
||||
],
|
||||
package_name: [
|
||||
{ required: true, message: '请输入APP包名', trigger: 'blur' },
|
||||
],
|
||||
version_key: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入应用版本号',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
version_name: [
|
||||
{ required: true, message: '请输入应用版本号名称', trigger: 'blur' },
|
||||
],
|
||||
download_apk_url: [
|
||||
{ required: true, message: '请先上传apk 包', trigger: 'blur' },
|
||||
],
|
||||
description: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入发布版本详细说明',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
},
|
||||
tableConfig: {
|
||||
height: window.innerHeight - 220 - 150,
|
||||
},
|
||||
layout: 'total, sizes, prev, pager, next, jumper',
|
||||
total: 0,
|
||||
params: {
|
||||
marketId: '',
|
||||
keyword: '',
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
},
|
||||
selectId: 1,
|
||||
appName: null,
|
||||
options: [
|
||||
{
|
||||
key: 1,
|
||||
label: '小米',
|
||||
},
|
||||
{
|
||||
key: 2,
|
||||
label: '华为',
|
||||
},
|
||||
{
|
||||
key: 3,
|
||||
label: '腾讯',
|
||||
},
|
||||
{
|
||||
key: 4,
|
||||
label: 'OPPO',
|
||||
},
|
||||
{
|
||||
key: 5,
|
||||
label: 'VIVO',
|
||||
},
|
||||
{
|
||||
key: 6,
|
||||
label: '三星',
|
||||
},
|
||||
{
|
||||
key: 100,
|
||||
label: '通用(不区分市场)',
|
||||
},
|
||||
],
|
||||
tabColumn: [
|
||||
{
|
||||
prop: 'index',
|
||||
label: '序号',
|
||||
width: '51',
|
||||
},
|
||||
{
|
||||
prop: 'market_id',
|
||||
label: '所属市场',
|
||||
},
|
||||
{
|
||||
prop: 'package_name',
|
||||
label: 'APP包名字',
|
||||
},
|
||||
{
|
||||
prop: 'version_key',
|
||||
label: '应用版本号',
|
||||
},
|
||||
{
|
||||
prop: 'version_name',
|
||||
label: '应用版本号名称',
|
||||
},
|
||||
{
|
||||
prop: 'created_at',
|
||||
label: '创建时间',
|
||||
},
|
||||
{
|
||||
prop: 'updated_at',
|
||||
label: '更新时间',
|
||||
},
|
||||
{
|
||||
prop: 'updateStatus',
|
||||
label: '开启状态',
|
||||
},
|
||||
{
|
||||
prop: 'isUpdateAdd',
|
||||
label: '是否强制更新',
|
||||
},
|
||||
{
|
||||
prop: 'operation',
|
||||
label: '操作',
|
||||
},
|
||||
],
|
||||
tableData: [
|
||||
{
|
||||
market_id: 100, // 各大安卓 APP 市场标识:1 - 小米;2 - 华为;3 - 腾讯应用市场;4 - OPPO;5 - VIVO;6 - 三星;100-通用包(不区分市场的包);
|
||||
package_name: 'xftc', // app 包名
|
||||
version_key: 2, //热更新包内部整数版本号,1-10000000
|
||||
version_name: '1.0.2', //热更新包显示的版本号,用于标识不同的热更新版本,遵循一定命名规则,如 1.23.21
|
||||
download_apk_url: 'https://mall.gpxscs.cn/abc.apk', // apk 包下载地址
|
||||
download_wgt_url: 'https://mall.gpxscs.cn/abc.apk', // 增量包下载地址
|
||||
file_ext: 'apk', // 更新包后缀,apk, wgt 等
|
||||
release_time: '2025-03-17 00:00:01',
|
||||
description: '发布版本详细说明',
|
||||
is_force_update: 2, // 是否为强制更新,1-表示强制更新,2-表示非强制更新,
|
||||
package_size: 12332, // 热更新包的大小,以字节为单位,方便用户了解更新所需流量
|
||||
md5_checksum: '3650d648bfc19993f4408e4158b9782b', // apk 包md5加密摘要
|
||||
status: 1,
|
||||
created_by: '0',
|
||||
updated_by: '0',
|
||||
created_at: '2025-03-17 21:40:42',
|
||||
updated_at: '2025-03-17 21:58:42',
|
||||
},
|
||||
],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters({
|
||||
token: 'user/token',
|
||||
}),
|
||||
},
|
||||
created() {
|
||||
this.uploadParams.authorization = getToken()
|
||||
this.getShopAppVersionList()
|
||||
},
|
||||
methods: {
|
||||
handleShowDialog() {
|
||||
this.showDialog = true
|
||||
},
|
||||
async getShopAppVersionList() {
|
||||
this.params.marketId = this.selectId
|
||||
|
||||
let res = await getShopAppVersionList(this.params)
|
||||
if (res && res.status == 200) {
|
||||
this.tableData = res.data.items
|
||||
}
|
||||
},
|
||||
handleEdit(row) {
|
||||
this.showDialog = true
|
||||
this.isEdit = true
|
||||
this.formDialog = row
|
||||
},
|
||||
handleSubmitForm() {
|
||||
this.$refs['formDialog'].validate(async (valid) => {
|
||||
if (valid) {
|
||||
let res = this.isEdit
|
||||
? await updateShopAppVersion(this.formDialog)
|
||||
: await addShopAppVersion(this.formDialog)
|
||||
if (res && res.status == 200) {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: this.isEdit ? '修改成功' : '添加成功!',
|
||||
})
|
||||
this.showDialog = false
|
||||
this.isEdit = false
|
||||
this.getShopAppVersionList()
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
handleCloseDialog() {
|
||||
this.showDialog = false
|
||||
if (this.isEdit) {
|
||||
this.formDialog = {
|
||||
market_id: '',
|
||||
package_name: '',
|
||||
version_key: '',
|
||||
version_name: '',
|
||||
download_apk_url: '',
|
||||
download_wgt_url: '',
|
||||
description: '',
|
||||
is_force_update: '',
|
||||
}
|
||||
this.isEdit = false
|
||||
}
|
||||
this.$refs['formDialog'].resetFields()
|
||||
},
|
||||
handleClear() {
|
||||
this.appName = ''
|
||||
|
||||
this.params = {
|
||||
keyword: '',
|
||||
marketId: '',
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
}
|
||||
this.selectId = 1
|
||||
this.getShopAppVersionList()
|
||||
},
|
||||
handleSearch() {
|
||||
this.params.keyword = this.appName
|
||||
|
||||
this.getShopAppVersionList()
|
||||
},
|
||||
handleCurrentChange(pageNum) {
|
||||
this.params.pageNum = pageNum
|
||||
this.getReceiptMachineList()
|
||||
},
|
||||
handleSizeChange() {
|
||||
this.params.pageSize = pageSize
|
||||
this.getReceiptMachineList()
|
||||
},
|
||||
handlePreview(e) {},
|
||||
checkWGTname(file) {
|
||||
const isWGT = file.name.endsWith('.wgt')
|
||||
|
||||
if (!isWGT) {
|
||||
this.$message.error('请上传WGT后缀的热更新包')
|
||||
}
|
||||
|
||||
return isWGT
|
||||
},
|
||||
checkAPKname(file) {
|
||||
const isAPK = file.type === 'application/vnd.android.package-archive'
|
||||
|
||||
if (!isAPK) {
|
||||
this.$message.error('请上传APK后缀的安卓包')
|
||||
}
|
||||
|
||||
return isAPK
|
||||
},
|
||||
handleAKPUpLoadSuccess(e) {
|
||||
if (e && e.status == 200) {
|
||||
this.formDialog.download_apk_url = e.data.media_url
|
||||
}
|
||||
},
|
||||
handleWGTUpLoadSuccess(e) {
|
||||
if (e && e.status == 200) {
|
||||
this.formDialog.download_wgt_url = e.data.media_url
|
||||
}
|
||||
},
|
||||
formatAppShopName(row) {
|
||||
var name = ''
|
||||
|
||||
if (row) {
|
||||
this.options.forEach((item) => {
|
||||
if (row.market_id == item.key) {
|
||||
name = item.label
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return name
|
||||
},
|
||||
handerSelectMarketId(e) {
|
||||
this.selectId = e
|
||||
},
|
||||
async handerIsUpdateShopApp(e, row) {
|
||||
this.formDialog = row
|
||||
|
||||
this.formDialog.is_force_update = e
|
||||
|
||||
if (row) {
|
||||
let res = await updateShopAppVersion(this.formDialog)
|
||||
if (res && res.status == 200) {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '状态修改成功!',
|
||||
})
|
||||
|
||||
this.getShopAppVersionList()
|
||||
}
|
||||
}
|
||||
},
|
||||
handerDisableUpdateShopApp(e, row) {
|
||||
let params = {
|
||||
id: row ? row.id : this.formDialog.id,
|
||||
status: e,
|
||||
}
|
||||
|
||||
this.$confirm(`您确认${e == 1 ? '开启' : '关闭'}升级包?`, '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
})
|
||||
.then(async () => {
|
||||
let res = await disableUpdateShopApp(params)
|
||||
|
||||
if (res && res.status == 200) {
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '状态修改成功!',
|
||||
})
|
||||
this.getShopAppVersionList()
|
||||
} else {
|
||||
this.$message({
|
||||
type: 'error',
|
||||
message: res.msg,
|
||||
})
|
||||
}
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除',
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {},
|
||||
methods: {},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.appVersion-container {
|
||||
padding: 0 20px !important;
|
||||
.head {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
box-shadow: inset 0 -1px 0 #efefef;
|
||||
|
||||
.head-add-btn {
|
||||
}
|
||||
|
||||
.head-content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin: 20px 0;
|
||||
|
||||
.name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.input-with-select {
|
||||
margin: 0 10px;
|
||||
width: 270px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.select-content {
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.receipt-machine-dialog {
|
||||
.el-dialog {
|
||||
border: 0;
|
||||
border-radius: 6px;
|
||||
background-clip: padding-box;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.el-dialog__header {
|
||||
padding: 12px 20px;
|
||||
border-bottom: 1px solid #f2f2f2;
|
||||
|
||||
.el-dialog__title {
|
||||
font-size: 16px;
|
||||
color: rgba(0, 0, 0, 0.8);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.el-dialog__headerbtn {
|
||||
top: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.el-input {
|
||||
width: 63%;
|
||||
}
|
||||
|
||||
.el-select {
|
||||
.el-input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 40px 20px;
|
||||
font-size: 12px;
|
||||
line-height: 1.5;
|
||||
color: #666;
|
||||
min-height: 108px;
|
||||
overflow-y: auto;
|
||||
max-height: 920px;
|
||||
overflow: auto;
|
||||
|
||||
.form-dialog {
|
||||
min-height: 150px;
|
||||
}
|
||||
|
||||
.el-input__inner {
|
||||
height: 38px;
|
||||
width: 410px;
|
||||
}
|
||||
}
|
||||
|
||||
.el-dialog__footer {
|
||||
border-top: 1px solid #f2f2f2;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.el-form-item__label {
|
||||
padding: 0 24px 0 0px;
|
||||
}
|
||||
|
||||
.form-item-flex {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user