update
This commit is contained in:
parent
d24473d108
commit
5b563867fe
@ -122,6 +122,7 @@ if (localStorage.getItem("ukey")) {
|
|||||||
window.initIm = function () {
|
window.initIm = function () {
|
||||||
//$.send(sprintf("%s/account.php?ctl=%s&met=%s&typ=json", SYS.CONFIG.base_url, 'Index', 'getConfig'), {uid:vid}, function (res)
|
//$.send(sprintf("%s/account.php?ctl=%s&met=%s&typ=json", SYS.CONFIG.base_url, 'Index', 'getConfig'), {uid:vid}, function (res)
|
||||||
$.send(SYS.CONFIG.im_config, {uid: vid}, function (res) {
|
$.send(SYS.CONFIG.im_config, {uid: vid}, function (res) {
|
||||||
|
|
||||||
if (res.status == 200 && res.data.im_chat) {
|
if (res.status == 200 && res.data.im_chat) {
|
||||||
|
|
||||||
var userInfo = res.data.user_info;
|
var userInfo = res.data.user_info;
|
||||||
|
|||||||
95
src/api/shopAudit/shopAudit.js
Normal file
95
src/api/shopAudit/shopAudit.js
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
import { URL } from '@/config'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name 商家申请入驻信息分页列表
|
||||||
|
* @api api_url + '/admin/shop/merch/list'
|
||||||
|
* @param { id }
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function getPrinterList(params) {
|
||||||
|
return request({
|
||||||
|
url: URL.shop.merch.merchList,
|
||||||
|
method: 'post',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
data:params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name 商家申请入驻信息详情
|
||||||
|
* @api api_url + '/admin/shop/merch/detail'
|
||||||
|
* @param { id }
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function getMerchDetail(params) {
|
||||||
|
return request({
|
||||||
|
url: URL.shop.merch.merchDetail,
|
||||||
|
method: 'post',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
data:params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name 审批商家申请入驻
|
||||||
|
* @api api_url + '/admin/shop/merch/approval'
|
||||||
|
* @param { id , approvalStatus , approvalRemark}
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function getMerchApproval(params) {
|
||||||
|
return request({
|
||||||
|
url: URL.shop.merch.merchApproval,
|
||||||
|
method: 'post',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
data:params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name 发起合同签署
|
||||||
|
* @api api_url + '/admin/shop/esign/sign-flow/create-by-file'
|
||||||
|
* @param { id , approvalStatus , approvalRemark}
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function getCreateByFile(params) {
|
||||||
|
return request({
|
||||||
|
url: URL.shop.merch.createByFile,
|
||||||
|
method: 'post',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
data:params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name 查看商家签署合同
|
||||||
|
* @api api_url + '/admin/shop/esign/signed/contract/file'
|
||||||
|
* @param { mchMobile }
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
|
||||||
|
export function getCheckContractFile(params) {
|
||||||
|
return request({
|
||||||
|
url: URL.shop.merch.checkContractFile,
|
||||||
|
method: 'post',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
data:params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -415,6 +415,18 @@ let url = {
|
|||||||
},
|
},
|
||||||
// 商店
|
// 商店
|
||||||
shop: {
|
shop: {
|
||||||
|
merch:{
|
||||||
|
// 商家申请入驻信息分页列表
|
||||||
|
merchList:api_url + '/admin/shop/merch/list',
|
||||||
|
// 商家申请入驻信息详情
|
||||||
|
merchDetail: api_url + '/admin/shop/merch/detail',
|
||||||
|
// 审批商家申请入驻
|
||||||
|
merchApproval : api_url + '/admin/shop/merch/approval',
|
||||||
|
// 发起合同签署
|
||||||
|
createByFile : api_url + '/admin/shop/esign/sign-flow/create-by-file',
|
||||||
|
//查看商家签署合同
|
||||||
|
checkContractFile : api_url + '/admin/shop/esign/signed/contract/file'
|
||||||
|
},
|
||||||
activity: {
|
activity: {
|
||||||
lottery: {
|
lottery: {
|
||||||
history: {
|
history: {
|
||||||
|
|||||||
@ -3,9 +3,9 @@
|
|||||||
*/
|
*/
|
||||||
module.exports = {
|
module.exports = {
|
||||||
// 布局种类:横向布局horizontal、纵向布局vertical、分栏布局column、综合布局comprehensive、常规布局common、浮动布局float
|
// 布局种类:横向布局horizontal、纵向布局vertical、分栏布局column、综合布局comprehensive、常规布局common、浮动布局float
|
||||||
layout: 'comprehensive',
|
layout: 'vertical',
|
||||||
// 主题名称:默认blue-black、blue-white、green-black、green-white、渐变ocean、red-white、red-black
|
// 主题名称:默认blue-black、blue-white、green-black、green-white、渐变ocean、red-white、red-black
|
||||||
themeName: 'blue-white',
|
themeName: 'blue-black',
|
||||||
// 菜单背景 none、vab-background
|
// 菜单背景 none、vab-background
|
||||||
background: 'none',
|
background: 'none',
|
||||||
// 分栏风格(仅针对分栏布局column时生效):横向风格horizontal、纵向风格vertical、卡片风格card、箭头风格arrow
|
// 分栏风格(仅针对分栏布局column时生效):横向风格horizontal、纵向风格vertical、卡片风格card、箭头风格arrow
|
||||||
@ -17,7 +17,7 @@ module.exports = {
|
|||||||
// 是否开启标签页
|
// 是否开启标签页
|
||||||
showTabs: true,
|
showTabs: true,
|
||||||
// 显示标签页时标签页样式:卡片风格card、灵动风格smart、圆滑风格smooth
|
// 显示标签页时标签页样式:卡片风格card、灵动风格smart、圆滑风格smooth
|
||||||
tabsBarStyle: 'smart',
|
tabsBarStyle: 'smooth',
|
||||||
// 是否标签页图标
|
// 是否标签页图标
|
||||||
showTabsIcon: true,
|
showTabsIcon: true,
|
||||||
// 是否开启语言选择组件
|
// 是否开启语言选择组件
|
||||||
@ -27,7 +27,7 @@ module.exports = {
|
|||||||
// 是否开启搜索组件
|
// 是否开启搜索组件
|
||||||
showSearch: false,
|
showSearch: false,
|
||||||
// 是否开启主题组件
|
// 是否开启主题组件
|
||||||
showTheme: false,
|
showTheme: true,
|
||||||
// 是否开启通知组件
|
// 是否开启通知组件
|
||||||
showNotice: false,
|
showNotice: false,
|
||||||
// 是否开启全屏组件
|
// 是否开启全屏组件
|
||||||
|
|||||||
@ -145,9 +145,9 @@ const actions = {
|
|||||||
const { data } = await getUserInfo()
|
const { data } = await getUserInfo()
|
||||||
// 根据角色设置主题
|
// 根据角色设置主题
|
||||||
if (data.user_is_admin) {
|
if (data.user_is_admin) {
|
||||||
store.state.settings.theme.themeName = 'blue-white'
|
store.state.settings.theme.themeName = 'blue-black'
|
||||||
} else {
|
} else {
|
||||||
store.state.settings.theme.themeName = 'white'
|
store.state.settings.theme.themeName = 'blue-black' //white
|
||||||
}
|
}
|
||||||
|
|
||||||
store.state.settings.theme.showLanguage = true
|
store.state.settings.theme.showLanguage = true
|
||||||
|
|||||||
@ -14,6 +14,26 @@ import icon from "../views/403.vue"
|
|||||||
export function convertRouter(asyncRoutes) {
|
export function convertRouter(asyncRoutes) {
|
||||||
return asyncRoutes.map((route) => {
|
return asyncRoutes.map((route) => {
|
||||||
|
|
||||||
|
|
||||||
|
if(route.meta.title == '店铺' && route.name == 'Vab330'){
|
||||||
|
const obj = {
|
||||||
|
path:"/shopAudit",
|
||||||
|
"component":"@/views/store/shopAudit/shopAudit",
|
||||||
|
name: "Vab83000",
|
||||||
|
redirect: null,
|
||||||
|
meta: {
|
||||||
|
title: "商家入驻审批",
|
||||||
|
icon: "",
|
||||||
|
noClosable: 0,
|
||||||
|
hidden: null
|
||||||
|
},
|
||||||
|
menuHidden: false
|
||||||
|
}
|
||||||
|
|
||||||
|
route.children.splice(0,0,obj)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if(route.meta.title == '设置'){
|
if(route.meta.title == '设置'){
|
||||||
|
|
||||||
const obj = {
|
const obj = {
|
||||||
@ -226,8 +246,26 @@ export function convertRouter(asyncRoutes) {
|
|||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
route.children.push(...[cloudPrintRoute,distributionSetup]);
|
route.children.push(...[cloudPrintRoute,distributionSetup]);
|
||||||
|
route.children = route.children.filter(item=>item.name != 'Vab8083')
|
||||||
|
}
|
||||||
|
|
||||||
|
if(route.meta.title == '设置' && route.name == 'Settings'){
|
||||||
|
const obj = {
|
||||||
|
path: "/appVersion",
|
||||||
|
"component":"@/views/settings/config/appVersion",
|
||||||
|
name: "Vab9019",
|
||||||
|
redirect: null,
|
||||||
|
meta: {
|
||||||
|
title: "商家APP设置",
|
||||||
|
icon: "",
|
||||||
|
noClosable: 0,
|
||||||
|
hidden: null
|
||||||
|
},
|
||||||
|
menuHidden: false
|
||||||
|
}
|
||||||
|
|
||||||
|
route.children.splice(0,0,obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (route.component) {
|
if (route.component) {
|
||||||
|
|||||||
@ -10,54 +10,54 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { translateTitle } from '@/utils/i18n'
|
import { translateTitle } from '@/utils/i18n'
|
||||||
import { handleMatched } from '@/utils/routes'
|
import { handleMatched } from '@/utils/routes'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'VabBreadcrumb',
|
name: 'VabBreadcrumb',
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters({
|
...mapGetters({
|
||||||
routes: 'routes/routes',
|
routes: 'routes/routes',
|
||||||
}),
|
}),
|
||||||
breadcrumbList() {
|
breadcrumbList() {
|
||||||
return handleMatched(this.routes, this.$route.name).filter(
|
return handleMatched(this.routes, this.$route.name).filter(
|
||||||
(item) => item.meta.breadcrumbHidden !== true
|
(item) => item.meta.breadcrumbHidden !== true
|
||||||
)
|
)
|
||||||
},
|
|
||||||
},
|
},
|
||||||
methods: {
|
},
|
||||||
translateTitle,
|
methods: {
|
||||||
},
|
translateTitle,
|
||||||
}
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.vab-breadcrumb {
|
.vab-breadcrumb {
|
||||||
height: $base-nav-height;
|
height: $base-nav-height;
|
||||||
font-size: $base-font-size-default;
|
font-size: $base-font-size-default;
|
||||||
line-height: $base-nav-height;
|
line-height: $base-nav-height;
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
.el-breadcrumb__item {
|
.el-breadcrumb__item {
|
||||||
|
.el-breadcrumb__inner {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #515a6e;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-link {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #fff; //#515a6e
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
.el-breadcrumb__inner {
|
.el-breadcrumb__inner {
|
||||||
font-weight: normal;
|
a {
|
||||||
color: #515a6e;
|
color: #999;
|
||||||
}
|
|
||||||
|
|
||||||
.is-link {
|
|
||||||
font-weight: normal;
|
|
||||||
color: #515a6e;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
.el-breadcrumb__inner {
|
|
||||||
a {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -25,6 +25,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<vab-breadcrumb v-else class="hidden-xs-only" />
|
<vab-breadcrumb v-else class="hidden-xs-only" />
|
||||||
|
<div class="internet-content-provider">
|
||||||
|
<a href="https://beian.miit.gov.cn/" target="_blank">
|
||||||
|
桂ICP备2024040484号-1
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :lg="6" :md="6" :sm="12" :xl="6" :xs="20">
|
<el-col :lg="6" :md="6" :sm="12" :xl="6" :xs="20">
|
||||||
@ -115,6 +120,7 @@
|
|||||||
box-shadow: $base-box-shadow;
|
box-shadow: $base-box-shadow;
|
||||||
|
|
||||||
.left-panel {
|
.left-panel {
|
||||||
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
@ -191,5 +197,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.internet-content-provider{
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
left: 20%;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -30,180 +30,185 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
|
<!-- <div class="internet-content-provider">
|
||||||
|
<a href="https://beian.miit.gov.cn/" target="_blank">
|
||||||
|
桂ICP备2024040484号-1
|
||||||
|
</a>
|
||||||
|
</div> -->
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import variables from '@/vab/styles/variables/variables.scss'
|
import variables from '@/vab/styles/variables/variables.scss'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
import { defaultOpeneds, uniqueOpened } from '@/config'
|
import { defaultOpeneds, uniqueOpened } from '@/config'
|
||||||
import { handleActivePath, handleMatched } from '@/utils/routes'
|
import { handleActivePath, handleMatched } from '@/utils/routes'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'VabSideBar',
|
name: 'VabSideBar',
|
||||||
props: {
|
props: {
|
||||||
layout: {
|
layout: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'vertical',
|
default: 'vertical',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
activeMenu: '',
|
||||||
|
defaultOpeneds,
|
||||||
|
uniqueOpened,
|
||||||
|
variables,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters({
|
||||||
|
extra: 'settings/extra',
|
||||||
|
routes: 'routes/routes',
|
||||||
|
collapse: 'settings/collapse',
|
||||||
|
activeName: 'routes/activeName',
|
||||||
|
}),
|
||||||
|
handleRoutes() {
|
||||||
|
return this.layout === 'comprehensive'
|
||||||
|
? this.handlePartialRoutes
|
||||||
|
: this.routes.flatMap((route) =>
|
||||||
|
route.meta && route.meta.levelHidden === true && route.children
|
||||||
|
? route.children
|
||||||
|
: route
|
||||||
|
)
|
||||||
|
},
|
||||||
|
handlePartialRoutes() {
|
||||||
|
const activeMenu = this.routes.find(
|
||||||
|
(route) => route.name === this.extra.first
|
||||||
|
)
|
||||||
|
return activeMenu ? activeMenu.children : []
|
||||||
|
},
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route: {
|
||||||
|
handler(route) {
|
||||||
|
this.activeMenu = handleActivePath(route)
|
||||||
|
},
|
||||||
|
immediate: true,
|
||||||
|
},
|
||||||
|
activeName: {
|
||||||
|
handler(val) {
|
||||||
|
const matched = handleMatched(this.routes, val)
|
||||||
|
this.extra.first = matched[0].name
|
||||||
|
this.activeMenu = matched[matched.length - 1].path
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
},
|
||||||
return {
|
}
|
||||||
activeMenu: '',
|
|
||||||
defaultOpeneds,
|
|
||||||
uniqueOpened,
|
|
||||||
variables,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
...mapGetters({
|
|
||||||
extra: 'settings/extra',
|
|
||||||
routes: 'routes/routes',
|
|
||||||
collapse: 'settings/collapse',
|
|
||||||
activeName: 'routes/activeName',
|
|
||||||
}),
|
|
||||||
handleRoutes() {
|
|
||||||
return this.layout === 'comprehensive'
|
|
||||||
? this.handlePartialRoutes
|
|
||||||
: this.routes.flatMap((route) =>
|
|
||||||
route.meta && route.meta.levelHidden === true && route.children
|
|
||||||
? route.children
|
|
||||||
: route
|
|
||||||
)
|
|
||||||
},
|
|
||||||
handlePartialRoutes() {
|
|
||||||
const activeMenu = this.routes.find(
|
|
||||||
(route) => route.name === this.extra.first
|
|
||||||
)
|
|
||||||
return activeMenu ? activeMenu.children : []
|
|
||||||
},
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
$route: {
|
|
||||||
handler(route) {
|
|
||||||
this.activeMenu = handleActivePath(route)
|
|
||||||
},
|
|
||||||
immediate: true,
|
|
||||||
},
|
|
||||||
activeName: {
|
|
||||||
handler(val) {
|
|
||||||
const matched = handleMatched(this.routes, val)
|
|
||||||
this.extra.first = matched[0].name
|
|
||||||
this.activeMenu = matched[matched.length - 1].path
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@mixin active {
|
@mixin active {
|
||||||
&:hover {
|
&:hover {
|
||||||
color: $base-color-white;
|
color: $base-color-white;
|
||||||
background-color: $base-menu-background-active !important;
|
background-color: $base-menu-background-active !important;
|
||||||
}
|
|
||||||
|
|
||||||
&.is-active {
|
|
||||||
color: $base-color-white;
|
|
||||||
background-color: $base-menu-background-active !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.vab-side-bar {
|
&.is-active {
|
||||||
position: fixed;
|
color: $base-color-white;
|
||||||
top: 0;
|
background-color: $base-menu-background-active !important;
|
||||||
bottom: 0;
|
}
|
||||||
left: 0;
|
}
|
||||||
z-index: $base-z-index + 1;
|
|
||||||
width: $base-left-menu-width;
|
|
||||||
height: 100vh;
|
|
||||||
overflow: hidden;
|
|
||||||
background: $base-menu-background;
|
|
||||||
box-shadow: $base-box-shadow;
|
|
||||||
transition: $base-transition;
|
|
||||||
|
|
||||||
&.side-bar-common {
|
.vab-side-bar {
|
||||||
top: $base-top-bar-height;
|
position: fixed;
|
||||||
height: calc(100vh - #{$base-top-bar-height});
|
top: 0;
|
||||||
}
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: $base-z-index + 1;
|
||||||
|
width: $base-left-menu-width;
|
||||||
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
|
background: $base-menu-background;
|
||||||
|
box-shadow: $base-box-shadow;
|
||||||
|
transition: $base-transition;
|
||||||
|
|
||||||
&.is-collapse {
|
&.side-bar-common {
|
||||||
width: $base-left-menu-width-min;
|
top: $base-top-bar-height;
|
||||||
border-right: 0;
|
height: calc(100vh - #{$base-top-bar-height});
|
||||||
|
}
|
||||||
|
|
||||||
::v-deep {
|
&.is-collapse {
|
||||||
.el-menu--collapse.el-menu {
|
width: $base-left-menu-width-min;
|
||||||
> .el-menu-item,
|
border-right: 0;
|
||||||
> .el-submenu {
|
|
||||||
text-align: center;
|
|
||||||
|
|
||||||
.el-tag {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-menu-item,
|
|
||||||
.el-submenu {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-menu--collapse {
|
|
||||||
border-right: 0;
|
|
||||||
|
|
||||||
.el-submenu__icon-arrow {
|
|
||||||
right: 10px;
|
|
||||||
margin-top: -3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
::v-deep {
|
::v-deep {
|
||||||
.el-scrollbar__wrap {
|
.el-menu--collapse.el-menu {
|
||||||
overflow-x: hidden;
|
> .el-menu-item,
|
||||||
}
|
> .el-submenu {
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
.el-menu {
|
.el-tag {
|
||||||
border: 0;
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu-item,
|
.el-menu-item,
|
||||||
.el-submenu__title {
|
.el-submenu {
|
||||||
height: $base-menu-item-height;
|
text-align: left;
|
||||||
overflow: hidden;
|
|
||||||
line-height: $base-menu-item-height;
|
|
||||||
//text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
vertical-align: middle;
|
|
||||||
color: $base-menu-color;
|
|
||||||
|
|
||||||
i {
|
|
||||||
color: inherit;
|
|
||||||
margin-right: 0px;
|
|
||||||
vertical-align: -1px;
|
|
||||||
}
|
|
||||||
span {
|
|
||||||
color: inherit;
|
|
||||||
padding-left: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
i.el-submenu__icon-arrow {
|
|
||||||
opacity: 0.8;
|
|
||||||
|
|
||||||
right: 22px;
|
|
||||||
margin-top: -6px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-menu-item:hover {
|
.el-menu--collapse {
|
||||||
color: $base-color-white;
|
border-right: 0;
|
||||||
background-color: $base-menu-background-active !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.el-menu-item {
|
.el-submenu__icon-arrow {
|
||||||
@include active;
|
right: 10px;
|
||||||
|
margin-top: -3px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
::v-deep {
|
||||||
|
.el-scrollbar__wrap {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu-item,
|
||||||
|
.el-submenu__title {
|
||||||
|
height: $base-menu-item-height;
|
||||||
|
overflow: hidden;
|
||||||
|
line-height: $base-menu-item-height;
|
||||||
|
//text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
vertical-align: middle;
|
||||||
|
color: $base-menu-color;
|
||||||
|
|
||||||
|
i {
|
||||||
|
color: inherit;
|
||||||
|
margin-right: 0px;
|
||||||
|
vertical-align: -1px;
|
||||||
|
}
|
||||||
|
span {
|
||||||
|
color: inherit;
|
||||||
|
padding-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
i.el-submenu__icon-arrow {
|
||||||
|
opacity: 0.8;
|
||||||
|
|
||||||
|
right: 22px;
|
||||||
|
margin-top: -6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu-item:hover {
|
||||||
|
color: $base-color-white;
|
||||||
|
background-color: $base-menu-background-active !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-menu-item {
|
||||||
|
@include active;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -35,14 +35,16 @@ $base-column-second-menu-background-active: rgba(#1890ff, 0.1);
|
|||||||
$base-menu-background: #282c34;
|
$base-menu-background: #282c34;
|
||||||
//菜单文字颜色
|
//菜单文字颜色
|
||||||
//$base-menu-color: hsla(0, 0%, 100%, 0.95);
|
//$base-menu-color: hsla(0, 0%, 100%, 0.95);
|
||||||
$base-menu-color: hsla(0,0%,100%,.7);
|
// $base-menu-color: hsla(0,0%,100%,.7);
|
||||||
|
$base-menu-color:#fff;
|
||||||
//菜单选中文字颜色
|
//菜单选中文字颜色
|
||||||
$base-menu-color-active: hsla(0, 0%, 100%, 0.95);
|
// $base-menu-color-active: hsla(0, 0%, 100%, 0.95);
|
||||||
|
$base-menu-color-active:#fff;
|
||||||
//菜单选中背景色
|
//菜单选中背景色
|
||||||
$base-menu-background-active: $base-color-blue;
|
$base-menu-background-active: $base-color-blue;
|
||||||
//标题颜色
|
//标题颜色
|
||||||
$base-title-color: #fff;
|
$base-title-color: #fff;
|
||||||
$base-title-color: hsl(0, 1%, 65%);
|
// $base-title-color: hsl(0, 1%, 65%);
|
||||||
//字体大小配置
|
//字体大小配置
|
||||||
$base-font-size-small: 12px;
|
$base-font-size-small: 12px;
|
||||||
$base-font-size-default: 14px;
|
$base-font-size-default: 14px;
|
||||||
@ -80,7 +82,7 @@ $base-keep-alive-height: calc(
|
|||||||
100vh - #{$base-nav-height} - #{$base-tabs-height} - #{$base-padding} * 2 - 55px
|
100vh - #{$base-nav-height} - #{$base-tabs-height} - #{$base-padding} * 2 - 55px
|
||||||
);
|
);
|
||||||
//纵向左侧导航未折叠的宽度
|
//纵向左侧导航未折叠的宽度
|
||||||
$base-left-menu-width: 170px;
|
$base-left-menu-width: 240px; // 170px
|
||||||
//纵向左侧导航未折叠右侧内容的宽度
|
//纵向左侧导航未折叠右侧内容的宽度
|
||||||
$base-right-content-width: calc(100% - #{$base-left-menu-width});
|
$base-right-content-width: calc(100% - #{$base-left-menu-width});
|
||||||
//纵向左侧导航已折叠的宽度
|
//纵向左侧导航已折叠的宽度
|
||||||
|
|||||||
@ -30,6 +30,14 @@
|
|||||||
:style="{ width: '100%' }"
|
:style="{ width: '100%' }"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="分账比例" prop="store_category_name">
|
||||||
|
<el-input
|
||||||
|
v-model="form.split_ratio"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入分账比例"
|
||||||
|
:style="{ width: '100%' }"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item :label="__('分类图片')" prop="category_image" required>
|
<el-form-item :label="__('分类图片')" prop="category_image" required>
|
||||||
<upload
|
<upload
|
||||||
height="100px"
|
height="100px"
|
||||||
@ -76,106 +84,107 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { translateTitle as __ } from '@/utils/i18n'
|
import { translateTitle as __ } from '@/utils/i18n'
|
||||||
import { doEdit } from '@/api/base/store/category'
|
import { doEdit } from '@/api/base/store/category'
|
||||||
import Upload from '@/components/upload'
|
import Upload from '@/components/upload'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'BaseStoreCategoryEdit',
|
name: 'BaseStoreCategoryEdit',
|
||||||
components: { Upload },
|
components: { Upload },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
category_image: '',
|
category_image: '',
|
||||||
category_is_enable: true,
|
category_is_enable: true,
|
||||||
},
|
|
||||||
rules: {
|
|
||||||
store_category_parent_id: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.__('请输入分类父名称'),
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_category_name: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.__('请输入店铺名称'),
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_category_deposit: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.__('请输入保证金数额'),
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
category_image: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.__('请选择上传图片'),
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_category_order: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: this.__('请输入排序'),
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
title: '',
|
|
||||||
dialogFormVisible: false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
created() {},
|
|
||||||
methods: {
|
|
||||||
__,
|
|
||||||
showEdit(row, store_category_parent_id) {
|
|
||||||
if (store_category_parent_id === 0 || store_category_parent_id) {
|
|
||||||
this.title = this.__('添加')
|
|
||||||
this.form.store_category_parent_id = store_category_parent_id
|
|
||||||
} else {
|
|
||||||
this.title = this.__('编辑')
|
|
||||||
const obj = Object.assign({}, row)
|
|
||||||
this.form = {
|
|
||||||
store_category_id: obj.store_category_id,
|
|
||||||
store_category_parent_id: obj.store_category_parent_id,
|
|
||||||
category_is_enable: obj.category_is_enable,
|
|
||||||
store_category_order: obj.store_category_order,
|
|
||||||
store_category_deposit: obj.store_category_deposit,
|
|
||||||
store_category_name: obj.store_category_name,
|
|
||||||
category_image: obj.category_image,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.dialogFormVisible = true
|
|
||||||
},
|
},
|
||||||
close() {
|
rules: {
|
||||||
|
store_category_parent_id: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.__('请输入分类父名称'),
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_category_name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.__('请输入店铺名称'),
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_category_deposit: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.__('请输入保证金数额'),
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
category_image: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.__('请选择上传图片'),
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_category_order: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: this.__('请输入排序'),
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
title: '',
|
||||||
|
dialogFormVisible: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {},
|
||||||
|
methods: {
|
||||||
|
__,
|
||||||
|
showEdit(row, store_category_parent_id) {
|
||||||
|
if (store_category_parent_id === 0 || store_category_parent_id) {
|
||||||
|
this.title = this.__('添加')
|
||||||
|
this.form.store_category_parent_id = store_category_parent_id
|
||||||
|
} else {
|
||||||
|
this.title = this.__('编辑')
|
||||||
|
const obj = Object.assign({}, row)
|
||||||
this.form = {
|
this.form = {
|
||||||
category_image: '',
|
store_category_id: obj.store_category_id,
|
||||||
category_is_enable: true,
|
store_category_parent_id: obj.store_category_parent_id,
|
||||||
|
category_is_enable: obj.category_is_enable,
|
||||||
|
store_category_order: obj.store_category_order,
|
||||||
|
store_category_deposit: obj.store_category_deposit,
|
||||||
|
store_category_name: obj.store_category_name,
|
||||||
|
category_image: obj.category_image,
|
||||||
|
split_ratio: obj.split_ratio,
|
||||||
}
|
}
|
||||||
this.$refs['form'].resetFields()
|
}
|
||||||
this.dialogFormVisible = false
|
this.dialogFormVisible = true
|
||||||
},
|
|
||||||
save() {
|
|
||||||
this.$refs['form'].validate(async (valid) => {
|
|
||||||
if (valid) {
|
|
||||||
const { msg, status } = await doEdit(this.form)
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
this.$emit('fetch-data')
|
|
||||||
this.close()
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
close() {
|
||||||
|
this.form = {
|
||||||
|
category_image: '',
|
||||||
|
category_is_enable: true,
|
||||||
|
}
|
||||||
|
this.$refs['form'].resetFields()
|
||||||
|
this.dialogFormVisible = false
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
this.$refs['form'].validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
const { msg, status } = await doEdit(this.form)
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
this.$emit('fetch-data')
|
||||||
|
this.close()
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -77,6 +77,12 @@
|
|||||||
prop="store_category_name"
|
prop="store_category_name"
|
||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
/>
|
/>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="分账比例"
|
||||||
|
prop="split_ratio"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
align="center"
|
align="center"
|
||||||
:label="__('保证金数额')"
|
:label="__('保证金数额')"
|
||||||
@ -120,8 +126,16 @@
|
|||||||
show-overflow-tooltip
|
show-overflow-tooltip
|
||||||
>
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag :type='({"0":"info","1":"success","2":"info"})[row.category_is_enable]'>
|
<el-tag
|
||||||
{{ ({"0":"禁用","1":"启用","2":"启用"})[row.category_is_enable] }}
|
:type="
|
||||||
|
{ '0': 'info', '1': 'success', '2': 'info' }[
|
||||||
|
row.category_is_enable
|
||||||
|
]
|
||||||
|
"
|
||||||
|
>
|
||||||
|
{{
|
||||||
|
{ '0': '禁用', '1': '启用', '2': '启用' }[row.category_is_enable]
|
||||||
|
}}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -131,71 +145,71 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { translateTitle as __ } from '@/utils/i18n'
|
import { translateTitle as __ } from '@/utils/i18n'
|
||||||
import { doDelete, getTree } from '@/api/base/store/category'
|
import { doDelete, getTree } from '@/api/base/store/category'
|
||||||
import Edit from './components/BaseStoreCategoryEdit'
|
import Edit from './components/BaseStoreCategoryEdit'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'BaseStoreCategory',
|
name: 'BaseStoreCategory',
|
||||||
components: { Edit },
|
components: { Edit },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [],
|
list: [],
|
||||||
listLoading: true,
|
listLoading: true,
|
||||||
layout: 'total, sizes, prev, pager, next, jumper',
|
layout: 'total, sizes, prev, pager, next, jumper',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.fetchData()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
formatEnable(row) {
|
||||||
|
return row.category_is_enable ? this.__('显示') : this.__('不显示')
|
||||||
|
},
|
||||||
|
__,
|
||||||
|
handleEdit(row, category_parent_id) {
|
||||||
|
if (category_parent_id === 0 || category_parent_id) {
|
||||||
|
this.$refs['edit'].showEdit(null, category_parent_id)
|
||||||
|
} else {
|
||||||
|
this.$refs['edit'].showEdit(row)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
handleDelete(row) {
|
||||||
|
this.$baseConfirm(this.__('你确定要删除当前项吗'), null, async () => {
|
||||||
|
const { msg, status } = await doDelete({
|
||||||
|
store_category_id: row.store_category_id,
|
||||||
|
})
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.fetchData()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
queryData() {
|
||||||
this.fetchData()
|
this.fetchData()
|
||||||
},
|
},
|
||||||
methods: {
|
async fetchData() {
|
||||||
formatEnable(row) {
|
this.listLoading = true
|
||||||
return row.category_is_enable ? this.__('显示') : this.__('不显示')
|
const { data } = await getTree()
|
||||||
},
|
this.list = data
|
||||||
__,
|
this.listLoading = false
|
||||||
handleEdit(row, category_parent_id) {
|
|
||||||
if (category_parent_id === 0 || category_parent_id) {
|
|
||||||
this.$refs['edit'].showEdit(null, category_parent_id)
|
|
||||||
} else {
|
|
||||||
this.$refs['edit'].showEdit(row)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
handleDelete(row) {
|
|
||||||
this.$baseConfirm(this.__('你确定要删除当前项吗'), null, async () => {
|
|
||||||
const { msg, status } = await doDelete({
|
|
||||||
store_category_id: row.store_category_id,
|
|
||||||
})
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
|
|
||||||
await this.fetchData()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
queryData() {
|
|
||||||
this.fetchData()
|
|
||||||
},
|
|
||||||
async fetchData() {
|
|
||||||
this.listLoading = true
|
|
||||||
const { data } = await getTree()
|
|
||||||
this.list = data
|
|
||||||
this.listLoading = false
|
|
||||||
},
|
|
||||||
toggleRowExpansion(isExpansion) {
|
|
||||||
this.listLoading = true
|
|
||||||
this.toggleRowExpansion_forAll(this.list, isExpansion)
|
|
||||||
this.listLoading = false
|
|
||||||
},
|
|
||||||
toggleRowExpansion_forAll(data, isExpansion) {
|
|
||||||
data.forEach((item) => {
|
|
||||||
this.$refs.dataTreeList.toggleRowExpansion(item, isExpansion)
|
|
||||||
if (item.children !== undefined && item.children != null) {
|
|
||||||
this.toggleRowExpansion_forAll(item.children, isExpansion)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
toggleRowExpansion(isExpansion) {
|
||||||
|
this.listLoading = true
|
||||||
|
this.toggleRowExpansion_forAll(this.list, isExpansion)
|
||||||
|
this.listLoading = false
|
||||||
|
},
|
||||||
|
toggleRowExpansion_forAll(data, isExpansion) {
|
||||||
|
data.forEach((item) => {
|
||||||
|
this.$refs.dataTreeList.toggleRowExpansion(item, isExpansion)
|
||||||
|
if (item.children !== undefined && item.children != null) {
|
||||||
|
this.toggleRowExpansion_forAll(item.children, isExpansion)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -8,7 +8,6 @@
|
|||||||
@close="close"
|
@close="close"
|
||||||
>
|
>
|
||||||
<el-scrollbar style="height: 600px">
|
<el-scrollbar style="height: 600px">
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<baidu-map
|
<baidu-map
|
||||||
:center="{ lng: center_lng, lat: center_lat }"
|
:center="{ lng: center_lng, lat: center_lat }"
|
||||||
@ -262,10 +261,10 @@
|
|||||||
:image="form.chain_img"
|
:image="form.chain_img"
|
||||||
width="170px"
|
width="170px"
|
||||||
@upImage="
|
@upImage="
|
||||||
(image) => {
|
(image) => {
|
||||||
form.chain_img = image
|
form.chain_img = image
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<div class="sel_time">
|
<div class="sel_time">
|
||||||
@ -273,10 +272,10 @@
|
|||||||
<el-time-select
|
<el-time-select
|
||||||
v-model="form.chain_opening_hours"
|
v-model="form.chain_opening_hours"
|
||||||
:picker-options="{
|
:picker-options="{
|
||||||
start: '00:00',
|
start: '00:00',
|
||||||
step: '00:05',
|
step: '00:05',
|
||||||
end: '24:55',
|
end: '23:55',
|
||||||
}"
|
}"
|
||||||
:placeholder="__('选择时间')"
|
:placeholder="__('选择时间')"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
/>
|
/>
|
||||||
@ -285,10 +284,10 @@
|
|||||||
<el-time-select
|
<el-time-select
|
||||||
v-model="form.chain_close_hours"
|
v-model="form.chain_close_hours"
|
||||||
:picker-options="{
|
:picker-options="{
|
||||||
start: '00:00',
|
start: '00:00',
|
||||||
step: '00:05',
|
step: '00:05',
|
||||||
end: '24:55',
|
end: '23:55',
|
||||||
}"
|
}"
|
||||||
:placeholder="__('选择时间')"
|
:placeholder="__('选择时间')"
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
/>
|
/>
|
||||||
@ -306,288 +305,288 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { translateTitle as __ } from '@/utils/i18n'
|
import { translateTitle as __ } from '@/utils/i18n'
|
||||||
import Area from '@/components/VabArea/area'
|
import Area from '@/components/VabArea/area'
|
||||||
import keyword from '@/components/baiduMap/keyword'
|
import keyword from '@/components/baiduMap/keyword'
|
||||||
import Upload from '@/components/upload'
|
import Upload from '@/components/upload'
|
||||||
import { doEdit } from '@/api/chain/base'
|
import { doEdit } from '@/api/chain/base'
|
||||||
import { isPassword, isPhone } from 'vue-plugin-utils'
|
import { isPassword, isPhone } from 'vue-plugin-utils'
|
||||||
import { getCategoryTree } from '@/api/chain/category/base'
|
import { getCategoryTree } from '@/api/chain/category/base'
|
||||||
import { getList as getChainProjectList } from '@/api/chain/project/base'
|
import { getList as getChainProjectList } from '@/api/chain/project/base'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ChainBaseEdit',
|
name: 'ChainBaseEdit',
|
||||||
components: { Upload, keyword, Area },
|
components: { Upload, keyword, Area },
|
||||||
data() {
|
data() {
|
||||||
const validatePhone = (rule, value, callback) => {
|
const validatePhone = (rule, value, callback) => {
|
||||||
if (!this.form.chain_mobile || !isPhone(this.form.chain_mobile)) {
|
if (!this.form.chain_mobile || !isPhone(this.form.chain_mobile)) {
|
||||||
callback(new Error('请输入正确的手机号'))
|
callback(new Error('请输入正确的手机号'))
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const validatePassword = (rule, value, callback) => {
|
||||||
|
if (this.isAdd) {
|
||||||
|
if (!value) {
|
||||||
|
callback(new Error(this.__('请输入门店管理员密码')))
|
||||||
|
} else if (!isPassword(value)) {
|
||||||
|
callback(new Error(this.__('密码不能少于6位')))
|
||||||
} else {
|
} else {
|
||||||
callback()
|
callback()
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
callback()
|
||||||
}
|
}
|
||||||
const validatePassword = (rule, value, callback) => {
|
}
|
||||||
if (this.isAdd) {
|
return {
|
||||||
if (!value) {
|
form: {
|
||||||
callback(new Error(this.__('请输入门店管理员密码')))
|
chain_img: '',
|
||||||
} else if (!isPassword(value)) {
|
chain_district_id: '',
|
||||||
callback(new Error(this.__('密码不能少于6位')))
|
chain_district_info: '',
|
||||||
} else {
|
chain_opening_hours: '',
|
||||||
callback()
|
chain_close_hours: '',
|
||||||
}
|
chain_lat: undefined,
|
||||||
} else {
|
chain_lng: undefined,
|
||||||
callback()
|
},
|
||||||
}
|
categoryTree: [],
|
||||||
}
|
categoryProps: {
|
||||||
return {
|
value: 'chain_category_id',
|
||||||
form: {
|
label: 'chain_category_name',
|
||||||
chain_img: '',
|
children: 'children',
|
||||||
chain_district_id: '',
|
multiple: false,
|
||||||
chain_district_info: '',
|
checkStrictly: true,
|
||||||
chain_opening_hours: '',
|
},
|
||||||
chain_close_hours: '',
|
jobStateList: [
|
||||||
chain_lat: undefined,
|
{
|
||||||
chain_lng: undefined,
|
value: 201,
|
||||||
|
label: '洗车适中',
|
||||||
},
|
},
|
||||||
categoryTree: [],
|
{
|
||||||
categoryProps: {
|
value: 202,
|
||||||
value: 'chain_category_id',
|
label: '美容适中',
|
||||||
label: 'chain_category_name',
|
|
||||||
children: 'children',
|
|
||||||
multiple: false,
|
|
||||||
checkStrictly: true,
|
|
||||||
},
|
},
|
||||||
jobStateList: [
|
{
|
||||||
|
value: 203,
|
||||||
|
label: '保养适中',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
value: 204,
|
||||||
|
label: '钣喷适中',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
chainProjectList: [],
|
||||||
|
map_show: false,
|
||||||
|
center_lng: 116.404,
|
||||||
|
center_lat: 39.915,
|
||||||
|
rules: {},
|
||||||
|
isAdd: true,
|
||||||
|
saveLoading: false,
|
||||||
|
title: '',
|
||||||
|
formData: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
},
|
||||||
|
dialogFormVisible: false,
|
||||||
|
queryArea: {
|
||||||
|
province: { code: '', name: '' },
|
||||||
|
city: { code: '', name: '' },
|
||||||
|
district: { code: '', name: '' },
|
||||||
|
},
|
||||||
|
chainRules: {
|
||||||
|
user_account: [{ required: true, message: '门店管理员账号' }],
|
||||||
|
chain_name: [{ required: true, message: '门店名称' }],
|
||||||
|
chain_mobile: [
|
||||||
{
|
{
|
||||||
value: 201,
|
trigger: 'blur',
|
||||||
label: '洗车适中',
|
message: '手机号码',
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 202,
|
|
||||||
label: '美容适中',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 203,
|
|
||||||
label: '保养适中',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 204,
|
|
||||||
label: '钣喷适中',
|
|
||||||
},
|
},
|
||||||
|
{ validator: validatePhone, trigger: 'blur' },
|
||||||
],
|
],
|
||||||
chainProjectList: [],
|
user_password: [
|
||||||
map_show: false,
|
{
|
||||||
center_lng: 116.404,
|
trigger: 'blur',
|
||||||
center_lat: 39.915,
|
message: '密码',
|
||||||
rules: {},
|
},
|
||||||
isAdd: true,
|
{ validator: validatePassword, trigger: 'blur' },
|
||||||
saveLoading: false,
|
],
|
||||||
title: '',
|
chain_contacter: [{ required: true, message: '联系人' }],
|
||||||
formData: {
|
// chain_category_id: [
|
||||||
pageNum: 1,
|
// { required: true, message: '门店类型' },
|
||||||
pageSize: 9999,
|
// ],
|
||||||
},
|
chain_lng: [{ required: true, message: '经度' }],
|
||||||
dialogFormVisible: false,
|
chain_lat: [{ required: true, message: '纬度' }],
|
||||||
queryArea: {
|
chain_opening_hours: [{ required: true, message: '营业时间' }],
|
||||||
province: { code: '', name: '' },
|
chain_close_hours: [{ required: true, message: '关闭时间' }],
|
||||||
city: { code: '', name: '' },
|
chain_img: [{ required: true, message: '门店图片' }],
|
||||||
district: { code: '', name: '' },
|
},
|
||||||
},
|
}
|
||||||
chainRules: {
|
},
|
||||||
user_account: [{ required: true, message: '门店管理员账号' }],
|
created() {
|
||||||
chain_name: [{ required: true, message: '门店名称' }],
|
this.getCategoryTree()
|
||||||
chain_mobile: [
|
this.getChainProjectList()
|
||||||
{
|
},
|
||||||
trigger: 'blur',
|
mounted() {
|
||||||
message: '手机号码',
|
this.form = {
|
||||||
},
|
unit_name: '',
|
||||||
{ validator: validatePhone, trigger: 'blur' },
|
}
|
||||||
],
|
this.$forceUpdate()
|
||||||
user_password: [
|
},
|
||||||
{
|
methods: {
|
||||||
trigger: 'blur',
|
__,
|
||||||
message: '密码',
|
showEdit(row) {
|
||||||
},
|
if (!row) {
|
||||||
{ validator: validatePassword, trigger: 'blur' },
|
this.title = this.__('添加')
|
||||||
],
|
this.isAdd = true
|
||||||
chain_contacter: [{ required: true, message: '联系人' }],
|
} else {
|
||||||
// chain_category_id: [
|
this.title = this.__('编辑')
|
||||||
// { required: true, message: '门店类型' },
|
this.isAdd = false
|
||||||
// ],
|
this.form = Object.assign({}, row)
|
||||||
chain_lng: [{ required: true, message: '经度' }],
|
this.initData(row)
|
||||||
chain_lat: [{ required: true, message: '纬度' }],
|
}
|
||||||
chain_opening_hours: [{ required: true, message: '营业时间' }],
|
this.dialogFormVisible = true
|
||||||
chain_close_hours: [{ required: true, message: '关闭时间' }],
|
},
|
||||||
chain_img: [{ required: true, message: '门店图片' }],
|
initData(row) {
|
||||||
},
|
this.form.chain_district_info = row.chain_district_info.split('/')
|
||||||
|
this.form.chain_district_id = row.chain_district_id.split(',')
|
||||||
|
this.echoAddress(row.chain_lng, row.chain_lat)
|
||||||
|
this.initQueryArea(
|
||||||
|
this.form.chain_district_id,
|
||||||
|
this.form.chain_district_info
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
initQueryArea(chain_district_id, chain_district_info) {
|
||||||
|
if (!chain_district_id && chain_district_info) return
|
||||||
|
if (chain_district_id[0]) {
|
||||||
|
this.queryArea.province.code = chain_district_id[0]
|
||||||
|
}
|
||||||
|
if (chain_district_id[1]) {
|
||||||
|
this.queryArea.city.code = chain_district_id[1]
|
||||||
|
}
|
||||||
|
if (chain_district_id[2]) {
|
||||||
|
this.queryArea.district.code = chain_district_id[2]
|
||||||
|
}
|
||||||
|
if (chain_district_info[0]) {
|
||||||
|
this.queryArea.province.name = chain_district_info[0]
|
||||||
|
}
|
||||||
|
if (chain_district_info[1]) {
|
||||||
|
this.queryArea.city.name = chain_district_info[1]
|
||||||
|
}
|
||||||
|
if (chain_district_info[2]) {
|
||||||
|
this.queryArea.district.name = chain_district_info[2]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
|
||||||
this.getCategoryTree()
|
async getCategoryTree() {
|
||||||
this.getChainProjectList()
|
this.listLoading = true
|
||||||
|
const { data } = await getCategoryTree(this.formData)
|
||||||
|
this.categoryTree = data.items
|
||||||
|
this.listLoading = false
|
||||||
},
|
},
|
||||||
mounted() {
|
|
||||||
this.form = {
|
async getChainProjectList() {
|
||||||
unit_name: '',
|
this.listLoading = true
|
||||||
|
this.formData.pageSize = 9999
|
||||||
|
const { data } = await getChainProjectList(this.formData)
|
||||||
|
if (data) {
|
||||||
|
this.chainProjectList = data.items
|
||||||
}
|
}
|
||||||
this.$forceUpdate()
|
this.formData.pageSize = 20
|
||||||
|
this.listLoading = false
|
||||||
},
|
},
|
||||||
methods: {
|
|
||||||
__,
|
|
||||||
showEdit(row) {
|
|
||||||
if (!row) {
|
|
||||||
this.title = this.__('添加')
|
|
||||||
this.isAdd = true
|
|
||||||
} else {
|
|
||||||
this.title = this.__('编辑')
|
|
||||||
this.isAdd = false
|
|
||||||
this.form = Object.assign({}, row)
|
|
||||||
this.initData(row)
|
|
||||||
}
|
|
||||||
this.dialogFormVisible = true
|
|
||||||
},
|
|
||||||
initData(row) {
|
|
||||||
this.form.chain_district_info = row.chain_district_info.split('/')
|
|
||||||
this.form.chain_district_id = row.chain_district_id.split(',')
|
|
||||||
this.echoAddress(row.chain_lng, row.chain_lat)
|
|
||||||
this.initQueryArea(
|
|
||||||
this.form.chain_district_id,
|
|
||||||
this.form.chain_district_info
|
|
||||||
)
|
|
||||||
},
|
|
||||||
|
|
||||||
initQueryArea(chain_district_id, chain_district_info) {
|
getAddress(address) {
|
||||||
if (!chain_district_id && chain_district_info) return
|
this.form.chain_address = address.value
|
||||||
if (chain_district_id[0]) {
|
this.echoAddress(address.lng, address.lat)
|
||||||
this.queryArea.province.code = chain_district_id[0]
|
},
|
||||||
}
|
|
||||||
if (chain_district_id[1]) {
|
|
||||||
this.queryArea.city.code = chain_district_id[1]
|
|
||||||
}
|
|
||||||
if (chain_district_id[2]) {
|
|
||||||
this.queryArea.district.code = chain_district_id[2]
|
|
||||||
}
|
|
||||||
if (chain_district_info[0]) {
|
|
||||||
this.queryArea.province.name = chain_district_info[0]
|
|
||||||
}
|
|
||||||
if (chain_district_info[1]) {
|
|
||||||
this.queryArea.city.name = chain_district_info[1]
|
|
||||||
}
|
|
||||||
if (chain_district_info[2]) {
|
|
||||||
this.queryArea.district.name = chain_district_info[2]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
async getCategoryTree() {
|
// 回显地址
|
||||||
this.listLoading = true
|
echoAddress(lng, lat) {
|
||||||
const { data } = await getCategoryTree(this.formData)
|
this.form.chain_lng = lng
|
||||||
this.categoryTree = data.items
|
this.form.chain_lat = lat
|
||||||
this.listLoading = false
|
// 地图回显地位
|
||||||
},
|
this.center_lng = lng
|
||||||
|
this.center_lat = lat
|
||||||
|
},
|
||||||
|
|
||||||
async getChainProjectList() {
|
close() {
|
||||||
this.listLoading = true
|
this.form.chain_img = null
|
||||||
this.formData.pageSize = 9999
|
this.form.chain_opening_hours = null
|
||||||
const { data } = await getChainProjectList(this.formData)
|
this.form.chain_close_hours = null
|
||||||
if (data) {
|
;(this.queryArea = {
|
||||||
this.chainProjectList = data.items
|
province: { code: '', name: '' },
|
||||||
}
|
city: { code: '', name: '' },
|
||||||
this.formData.pageSize = 20
|
district: { code: '', name: '' },
|
||||||
this.listLoading = false
|
}),
|
||||||
},
|
(this.form = this.$options.data().form)
|
||||||
|
this.$refs['form'].resetFields()
|
||||||
|
this.dialogFormVisible = false
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
this.$refs['form'].validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
let params = {}
|
||||||
|
|
||||||
getAddress(address) {
|
params = this.form
|
||||||
this.form.chain_address = address.value
|
|
||||||
this.echoAddress(address.lng, address.lat)
|
|
||||||
},
|
|
||||||
|
|
||||||
// 回显地址
|
delete params.chain_district_id
|
||||||
echoAddress(lng, lat) {
|
|
||||||
this.form.chain_lng = lng
|
|
||||||
this.form.chain_lat = lat
|
|
||||||
// 地图回显地位
|
|
||||||
this.center_lng = lng
|
|
||||||
this.center_lat = lat
|
|
||||||
},
|
|
||||||
|
|
||||||
close() {
|
if (this.queryArea.province.name) {
|
||||||
this.form.chain_img = null
|
params.chain_district_info = this.queryArea.province.name
|
||||||
this.form.chain_opening_hours = null
|
|
||||||
this.form.chain_close_hours = null
|
|
||||||
;(this.queryArea = {
|
|
||||||
province: { code: '', name: '' },
|
|
||||||
city: { code: '', name: '' },
|
|
||||||
district: { code: '', name: '' },
|
|
||||||
}),
|
|
||||||
(this.form = this.$options.data().form)
|
|
||||||
this.$refs['form'].resetFields()
|
|
||||||
this.dialogFormVisible = false
|
|
||||||
},
|
|
||||||
save() {
|
|
||||||
this.$refs['form'].validate(async (valid) => {
|
|
||||||
if (valid) {
|
|
||||||
let params = {}
|
|
||||||
|
|
||||||
params = this.form
|
|
||||||
|
|
||||||
delete params.chain_district_id
|
|
||||||
|
|
||||||
if (this.queryArea.province.name) {
|
|
||||||
params.chain_district_info = this.queryArea.province.name
|
|
||||||
}
|
|
||||||
if (this.queryArea.city.name) {
|
|
||||||
params.chain_district_info += '/' + this.queryArea.city.name
|
|
||||||
}
|
|
||||||
if (this.queryArea.district.name) {
|
|
||||||
params.chain_district_info += '/' + this.queryArea.district.name
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.queryArea.province.code) {
|
|
||||||
params.chain_district_id = this.queryArea.province.code
|
|
||||||
}
|
|
||||||
if (this.queryArea.city.code) {
|
|
||||||
params.chain_district_id += '/' + this.queryArea.city.code
|
|
||||||
}
|
|
||||||
if (this.queryArea.district.code) {
|
|
||||||
params.chain_district_id += '/' + this.queryArea.district.code
|
|
||||||
}
|
|
||||||
|
|
||||||
// const chain_category_id =
|
|
||||||
// params.chain_category_id[
|
|
||||||
// params.chain_category_id.length - 1
|
|
||||||
// ]
|
|
||||||
// params.chain_category_id = chain_category_id
|
|
||||||
this.saveLoading = true
|
|
||||||
const { msg, status } = await doEdit(params)
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
this.saveLoading = false
|
|
||||||
this.$emit('fetch-data')
|
|
||||||
this.close()
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
})
|
if (this.queryArea.city.name) {
|
||||||
},
|
params.chain_district_info += '/' + this.queryArea.city.name
|
||||||
|
}
|
||||||
|
if (this.queryArea.district.name) {
|
||||||
|
params.chain_district_info += '/' + this.queryArea.district.name
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.queryArea.province.code) {
|
||||||
|
params.chain_district_id = this.queryArea.province.code
|
||||||
|
}
|
||||||
|
if (this.queryArea.city.code) {
|
||||||
|
params.chain_district_id += '/' + this.queryArea.city.code
|
||||||
|
}
|
||||||
|
if (this.queryArea.district.code) {
|
||||||
|
params.chain_district_id += '/' + this.queryArea.district.code
|
||||||
|
}
|
||||||
|
|
||||||
|
// const chain_category_id =
|
||||||
|
// params.chain_category_id[
|
||||||
|
// params.chain_category_id.length - 1
|
||||||
|
// ]
|
||||||
|
// params.chain_category_id = chain_category_id
|
||||||
|
this.saveLoading = true
|
||||||
|
const { msg, status } = await doEdit(params)
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
this.saveLoading = false
|
||||||
|
this.$emit('fetch-data')
|
||||||
|
this.close()
|
||||||
|
} else {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.map {
|
.map {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 400px;
|
height: 400px;
|
||||||
}
|
}
|
||||||
.admin_info {
|
.admin_info {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #b1eca4;
|
color: #b1eca4;
|
||||||
}
|
}
|
||||||
.sel_time {
|
.sel_time {
|
||||||
float: right;
|
float: right;
|
||||||
width: 325px;
|
width: 325px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -88,6 +88,11 @@
|
|||||||
<div style="color: transparent">{{ translateTitle('占位符') }}</div>
|
<div style="color: transparent">{{ translateTitle('占位符') }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
<div class="internet-content-provider">
|
||||||
|
<a href="https://beian.miit.gov.cn/" target="_blank" style="color: #fff">
|
||||||
|
桂ICP备2024040484号-1
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -233,6 +238,10 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
changeCode() {
|
changeCode() {
|
||||||
|
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.codeUrl = `https://www.oschina.net/action/user/captcha?timestamp=${new Date().getTime()}`
|
||||||
this.verify_token = new Date().getTime()
|
this.verify_token = new Date().getTime()
|
||||||
this.codeUrl = URL.verifyCode + '?verify_token=' + this.verify_token
|
this.codeUrl = URL.verifyCode + '?verify_token=' + this.verify_token
|
||||||
@ -247,6 +256,13 @@ export default {
|
|||||||
background: url('~@/assets/login_images/background.jpg') center center fixed
|
background: url('~@/assets/login_images/background.jpg') center center fixed
|
||||||
no-repeat;
|
no-repeat;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
|
|
||||||
|
.internet-content-provider {
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.login-form {
|
.login-form {
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<el-row :gutter="24">
|
<el-row :gutter="24">
|
||||||
<el-col :lg="24" :md="24" :sm="24" :xl="24" :xs="24">
|
<el-col :lg="24" :md="24" :sm="24" :xl="24" :xs="24">
|
||||||
<vab-query-form style="float: right;">
|
<vab-query-form style="float: right">
|
||||||
<vab-query-form-right-panel :span="24">
|
<vab-query-form-right-panel :span="24">
|
||||||
<el-form :inline="true" :model="queryForm" @submit.prevent>
|
<el-form :inline="true" :model="queryForm" @submit.prevent>
|
||||||
<el-form-item class="ml10">
|
<el-form-item class="ml10">
|
||||||
@ -112,18 +112,10 @@
|
|||||||
style="float: right"
|
style="float: right"
|
||||||
@change="statisticCountEvt"
|
@change="statisticCountEvt"
|
||||||
>
|
>
|
||||||
<el-radio-button
|
<el-radio-button :label="7">{{ __('7天') }}</el-radio-button>
|
||||||
:label="7"
|
<el-radio-button :label="30">{{ __('30天') }}</el-radio-button>
|
||||||
>{{ __('7天') }}</el-radio-button>
|
<el-radio-button :label="90">{{ __('3个月') }}</el-radio-button>
|
||||||
<el-radio-button
|
<el-radio-button :label="180">{{ __('半年') }}</el-radio-button>
|
||||||
:label="30"
|
|
||||||
>{{ __('30天') }}</el-radio-button>
|
|
||||||
<el-radio-button
|
|
||||||
:label="90"
|
|
||||||
>{{ __('3个月') }}</el-radio-button>
|
|
||||||
<el-radio-button
|
|
||||||
:label="180"
|
|
||||||
>{{ __('半年') }}</el-radio-button>
|
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</template>
|
</template>
|
||||||
<ms-chart
|
<ms-chart
|
||||||
@ -144,16 +136,16 @@ import TopNum from '@/components/MsWidget/TopNum'
|
|||||||
import MsDateRangePicker from '@/components/MsDateRangePicker'
|
import MsDateRangePicker from '@/components/MsDateRangePicker'
|
||||||
import MsChart from '@/extra/VabChart'
|
import MsChart from '@/extra/VabChart'
|
||||||
|
|
||||||
import {statisticState as statisticRetrunState} from "@/api/order/return";
|
import { statisticState as statisticRetrunState } from '@/api/order/return'
|
||||||
import {getOrderNum, getVoucherActiveNum} from "@/api/analytics/order";
|
import { getOrderNum, getVoucherActiveNum } from '@/api/analytics/order'
|
||||||
import {getReturnNum} from "@/api/analytics/return";
|
import { getReturnNum } from '@/api/analytics/return'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'OverviewOrder',
|
name: 'OverviewOrder',
|
||||||
components: { MsChart, MsDateRangePicker, TopNum },
|
components: { MsChart, MsDateRangePicker, TopNum },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
saleTime:7,
|
saleTime: 7,
|
||||||
columnLoading: true,
|
columnLoading: true,
|
||||||
polylineLoading: true,
|
polylineLoading: true,
|
||||||
initOptions: {
|
initOptions: {
|
||||||
@ -302,12 +294,11 @@ export default {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
order_time_range: ['', ''],
|
||||||
order_time_range: ["", ""],
|
|
||||||
userList: [],
|
userList: [],
|
||||||
queryForm: {
|
queryForm: {
|
||||||
stime: "",
|
stime: '',
|
||||||
etime: ""
|
etime: '',
|
||||||
},
|
},
|
||||||
|
|
||||||
orderNumConfig: {
|
orderNumConfig: {
|
||||||
@ -371,7 +362,7 @@ export default {
|
|||||||
this.fetchData()
|
this.fetchData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
t:__,
|
t: __,
|
||||||
__,
|
__,
|
||||||
queryData() {
|
queryData() {
|
||||||
this.fetchData()
|
this.fetchData()
|
||||||
@ -379,31 +370,29 @@ export default {
|
|||||||
async fetchData() {
|
async fetchData() {
|
||||||
if (this.order_time_range.length > 0) {
|
if (this.order_time_range.length > 0) {
|
||||||
if (this.order_time_range[0]) {
|
if (this.order_time_range[0]) {
|
||||||
this.queryForm.stime = this.order_time_range[0].getTime();
|
this.queryForm.stime = this.order_time_range[0].getTime()
|
||||||
}
|
}
|
||||||
if (this.order_time_range[1]) {
|
if (this.order_time_range[1]) {
|
||||||
this.queryForm.etime = this.order_time_range[1].getTime();
|
this.queryForm.etime = this.order_time_range[1].getTime()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.queryForm.stime = null
|
this.queryForm.stime = null
|
||||||
this.queryForm.etime = null
|
this.queryForm.etime = null
|
||||||
}
|
}
|
||||||
const params = this.queryForm;
|
const params = this.queryForm
|
||||||
this.getOrderNumFun(params);
|
this.getOrderNumFun(params)
|
||||||
this.getVoucherNumFun(params);
|
this.getVoucherNumFun(params)
|
||||||
this.getReturnNumFun(params);
|
this.getReturnNumFun(params)
|
||||||
|
|
||||||
//支付订单数量
|
//支付订单数量
|
||||||
const paramsPaid = Object.assign({}, params)
|
const paramsPaid = Object.assign({}, params)
|
||||||
paramsPaid.orderIsPaid = 3013
|
paramsPaid.orderIsPaid = 3013
|
||||||
|
|
||||||
this.getOrderNumPaidFun(paramsPaid);
|
this.getOrderNumPaidFun(paramsPaid)
|
||||||
|
|
||||||
await this.statisticState()
|
await this.statisticState()
|
||||||
await this.statisticRetrunState()
|
await this.statisticRetrunState()
|
||||||
await this.statisticCount()
|
await this.statisticCount()
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
async statisticState(days) {
|
async statisticState(days) {
|
||||||
this.columnLoading = true
|
this.columnLoading = true
|
||||||
@ -441,36 +430,33 @@ export default {
|
|||||||
this.polylineOption.series[0].data = data.map(
|
this.polylineOption.series[0].data = data.map(
|
||||||
(item) => item.effective_count
|
(item) => item.effective_count
|
||||||
)
|
)
|
||||||
this.polylineOption.series[1].data = data.map(
|
this.polylineOption.series[1].data = data.map((item) => item.cancel_count)
|
||||||
(item) => item.cancel_count
|
|
||||||
)
|
|
||||||
this.polylineLoading = false
|
this.polylineLoading = false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
async getOrderNumFun(params) {
|
async getOrderNumFun(params) {
|
||||||
const { data } = await getOrderNum(params);
|
const { data } = await getOrderNum(params)
|
||||||
data.today = data.current;
|
data.today = data.current
|
||||||
data.yestoday = data.pre;
|
data.yestoday = data.pre
|
||||||
this.orderNumConfig = Object.assign(this.orderNumConfig, data);
|
this.orderNumConfig = Object.assign(this.orderNumConfig, data)
|
||||||
},
|
},
|
||||||
async getReturnNumFun(params) {
|
async getReturnNumFun(params) {
|
||||||
const { data } = await getReturnNum(params);
|
const { data } = await getReturnNum(params)
|
||||||
data.today = data.current;
|
data.today = data.current
|
||||||
data.yestoday = data.pre;
|
data.yestoday = data.pre
|
||||||
this.refundNumConfig = Object.assign(this.refundNumConfig, data);
|
this.refundNumConfig = Object.assign(this.refundNumConfig, data)
|
||||||
},
|
},
|
||||||
async getOrderNumPaidFun(params) {
|
async getOrderNumPaidFun(params) {
|
||||||
const { data } = await getOrderNum(params);
|
const { data } = await getOrderNum(params)
|
||||||
data.today = data.current;
|
data.today = data.current
|
||||||
data.yestoday = data.pre;
|
data.yestoday = data.pre
|
||||||
this.orderNumPaidConfig = Object.assign(this.orderNumPaidConfig, data);
|
this.orderNumPaidConfig = Object.assign(this.orderNumPaidConfig, data)
|
||||||
},
|
},
|
||||||
async getVoucherNumFun(params) {
|
async getVoucherNumFun(params) {
|
||||||
const { data } = await getVoucherActiveNum(params);
|
const { data } = await getVoucherActiveNum(params)
|
||||||
data.today = data.current;
|
data.today = data.current
|
||||||
data.yestoday = data.pre;
|
data.yestoday = data.pre
|
||||||
this.voucherNumConfig = Object.assign(this.voucherNumConfig, data);
|
this.voucherNumConfig = Object.assign(this.voucherNumConfig, data)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,16 +63,19 @@
|
|||||||
<el-table-column :label="__('单位')" prop="unit_name" />
|
<el-table-column :label="__('单位')" prop="unit_name" />
|
||||||
<el-table-column :label="__('单价')" prop="order_item_unit_price" />
|
<el-table-column :label="__('单价')" prop="order_item_unit_price" />
|
||||||
<el-table-column :label="__('退款凭据')" prop="return_item_image">
|
<el-table-column :label="__('退款凭据')" prop="return_item_image">
|
||||||
<template slot-scope="scope">
|
<template #default="{ row }">
|
||||||
<el-image
|
<div
|
||||||
v-if="
|
v-if="row.return_item_image && row.return_item_image.length > 0"
|
||||||
scope.row.return_item_image &&
|
>
|
||||||
scope.row.return_item_image.length > 0
|
<el-image
|
||||||
"
|
v-for="(image, index) in row.return_item_image"
|
||||||
:preview-src-list="[scope.row.return_item_image]"
|
:key="index"
|
||||||
:src="scope.row.return_item_image"
|
:preview-src-list="row.return_item_image"
|
||||||
style="width: 35px; height: 35px"
|
preview-teleported
|
||||||
/>
|
:src="image"
|
||||||
|
style="width: 35px; height: 35px"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column :label="__('数量')" prop="return_item_num" />
|
<el-table-column :label="__('数量')" prop="return_item_num" />
|
||||||
@ -245,281 +248,279 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { translateTitle as __ } from '@/utils/i18n'
|
import { translateTitle as __ } from '@/utils/i18n'
|
||||||
import { get, review, refused, receive, refund } from '@/api/order/return'
|
import { get, review, refused, receive, refund } from '@/api/order/return'
|
||||||
import { getAddressList } from '@/api/store/shipping/address'
|
import { getAddressList } from '@/api/store/shipping/address'
|
||||||
import Refund from './RefundAmountEdit'
|
import Refund from './RefundAmountEdit'
|
||||||
import Returnlog from './index'
|
import Returnlog from './index'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'OrderReturnItem',
|
name: 'OrderReturnItem',
|
||||||
components: { Refund, Returnlog },
|
components: { Refund, Returnlog },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
reviewLoading: false,
|
reviewLoading: false,
|
||||||
refusedLoading: false,
|
refusedLoading: false,
|
||||||
addressList: [],
|
addressList: [],
|
||||||
viewLogisticsFlag: false,
|
viewLogisticsFlag: false,
|
||||||
reviewForm: {
|
reviewForm: {
|
||||||
return_flag: 0,
|
return_flag: 0,
|
||||||
},
|
},
|
||||||
returnForm: {},
|
returnForm: {},
|
||||||
reviewDialog: false,
|
reviewDialog: false,
|
||||||
refusedForm: {},
|
refusedForm: {},
|
||||||
refusedDialog: false,
|
refusedDialog: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
data: {},
|
data: {},
|
||||||
rules: {},
|
rules: {},
|
||||||
return_id: '',
|
return_id: '',
|
||||||
dialogFormVisible: false,
|
dialogFormVisible: false,
|
||||||
title: '',
|
title: '',
|
||||||
refusedTitle: '',
|
refusedTitle: '',
|
||||||
refusedRules: {
|
refusedRules: {
|
||||||
return_store_message: [
|
return_store_message: [
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入单行文本商家备注',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
reviewRules: {
|
|
||||||
return_flag: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '退货类型不能为空',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
return_store_message: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入商家备注',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
receiving_address: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请选择收货人',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
return_flagOptions: [
|
|
||||||
{
|
{
|
||||||
label: '不用退货',
|
required: true,
|
||||||
value: 0,
|
message: '请输入单行文本商家备注',
|
||||||
},
|
trigger: 'blur',
|
||||||
{
|
|
||||||
label: '需要退货',
|
|
||||||
value: 1,
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
getAddress() {
|
|
||||||
let address = ''
|
|
||||||
const da_province = this.data.da_province
|
|
||||||
const da_city = this.data.da_city
|
|
||||||
const da_county = this.data.da_county
|
|
||||||
const da_address = this.data.da_address
|
|
||||||
if (da_province) {
|
|
||||||
address += da_province
|
|
||||||
}
|
|
||||||
if (da_city) {
|
|
||||||
address += '/' + da_county
|
|
||||||
}
|
|
||||||
if (da_county) {
|
|
||||||
address += '/' + da_county
|
|
||||||
}
|
|
||||||
if (da_address) {
|
|
||||||
address += ' ' + da_address
|
|
||||||
}
|
|
||||||
return address
|
|
||||||
},
|
},
|
||||||
|
reviewRules: {
|
||||||
|
return_flag: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '退货类型不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
return_store_message: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入商家备注',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
receiving_address: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择收货人',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
return_flagOptions: [
|
||||||
|
{
|
||||||
|
label: '不用退货',
|
||||||
|
value: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: '需要退货',
|
||||||
|
value: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
getAddress() {
|
||||||
|
let address = ''
|
||||||
|
const da_province = this.data.da_province
|
||||||
|
const da_city = this.data.da_city
|
||||||
|
const da_county = this.data.da_county
|
||||||
|
const da_address = this.data.da_address
|
||||||
|
if (da_province) {
|
||||||
|
address += da_province
|
||||||
|
}
|
||||||
|
if (da_city) {
|
||||||
|
address += '/' + da_county
|
||||||
|
}
|
||||||
|
if (da_county) {
|
||||||
|
address += '/' + da_county
|
||||||
|
}
|
||||||
|
if (da_address) {
|
||||||
|
address += ' ' + da_address
|
||||||
|
}
|
||||||
|
return address
|
||||||
},
|
},
|
||||||
updated() {
|
},
|
||||||
this.$nextTick(() => {
|
updated() {
|
||||||
this.$refs['returnTable'].doLayout()
|
this.$nextTick(() => {
|
||||||
|
this.$refs['returnTable'].doLayout()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getAddressList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showRefund() {
|
||||||
|
let return_id = this.data.return_id
|
||||||
|
let return_refund_amount = this.data.return_refund_amount
|
||||||
|
this.$refs['refund'].showEdit(return_id, return_refund_amount)
|
||||||
|
},
|
||||||
|
// 统计申请总额
|
||||||
|
getSummaries(param) {
|
||||||
|
const { columns, data } = param
|
||||||
|
const sums = []
|
||||||
|
sums[0] = '申请总额'
|
||||||
|
columns.forEach((column, index) => {
|
||||||
|
if (index === 0) {
|
||||||
|
sums[index] = '申请总额'
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (index === 4 || index === 5) {
|
||||||
|
let values = 0
|
||||||
|
if (index === 4) {
|
||||||
|
values = data.map((item) => {
|
||||||
|
return Number(item['return_item_num'])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (index === 5) {
|
||||||
|
values = data.map((item) => {
|
||||||
|
return Number(item['return_item_subtotal'])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
sums[index] = values.reduce((prev, curr) => {
|
||||||
|
const value = Number(curr)
|
||||||
|
if (!isNaN(value)) {
|
||||||
|
return prev + curr
|
||||||
|
} else {
|
||||||
|
return prev
|
||||||
|
}
|
||||||
|
}, 0)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return sums
|
||||||
|
},
|
||||||
|
async viewLogistics() {
|
||||||
|
this.returnForm.return_tracking_name = this.data.return_tracking_name
|
||||||
|
this.returnForm.return_tracking_number = this.data.return_tracking_number
|
||||||
|
this.$refs['returnlog'].showEdit(this.returnForm)
|
||||||
|
},
|
||||||
|
async showEdit(row) {
|
||||||
|
this.dialogFormVisible = true
|
||||||
|
this.return_id = row.return_id
|
||||||
|
await this.get(row.return_id)
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.return_id = ''
|
||||||
|
this.dialogFormVisible = false
|
||||||
|
},
|
||||||
|
async get(return_id) {
|
||||||
|
if (!return_id) {
|
||||||
|
return_id = this.return_id
|
||||||
|
}
|
||||||
|
this.loading = true
|
||||||
|
const { data } = await get({ return_id: return_id })
|
||||||
|
this.tableData = data.items
|
||||||
|
this.data = Object.assign({}, data)
|
||||||
|
if (this.data.return_tracking_number) {
|
||||||
|
this.viewLogisticsFlag = true
|
||||||
|
}
|
||||||
|
this.loading = false
|
||||||
|
},
|
||||||
|
reviewConfirm() {
|
||||||
|
this.$refs['reviewForm'].validate(async (valid) => {
|
||||||
|
this.reviewLoading = true
|
||||||
|
if (valid) {
|
||||||
|
this.reviewForm.return_id = this.return_id
|
||||||
|
const { msg, status } = await review(this.reviewForm)
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
this.reviewClose()
|
||||||
|
await this.get(this.return_id)
|
||||||
|
this.reviewLoading = false
|
||||||
|
} else {
|
||||||
|
this.reviewLoading = false
|
||||||
|
return false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
created() {
|
refusedConfirm() {
|
||||||
this.getAddressList()
|
this.$refs['refusedForm'].validate(async (valid) => {
|
||||||
},
|
this.refusedLoading = true
|
||||||
methods: {
|
if (valid) {
|
||||||
showRefund() {
|
this.refusedForm.return_id = this.return_id
|
||||||
let return_id = this.data.return_id
|
const { msg, status } = await refused(this.refusedForm)
|
||||||
let return_refund_amount = this.data.return_refund_amount
|
if (200 == status) {
|
||||||
this.$refs['refund'].showEdit(return_id, return_refund_amount)
|
this.$baseMessage(msg, 'success')
|
||||||
},
|
|
||||||
// 统计申请总额
|
|
||||||
getSummaries(param) {
|
|
||||||
const { columns, data } = param
|
|
||||||
const sums = []
|
|
||||||
sums[0] = '申请总额'
|
|
||||||
columns.forEach((column, index) => {
|
|
||||||
if (index === 0) {
|
|
||||||
sums[index] = '申请总额'
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (index === 4 || index === 5) {
|
|
||||||
let values = 0
|
|
||||||
if (index === 4) {
|
|
||||||
values = data.map((item) => {
|
|
||||||
return Number(item['return_item_num'])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (index === 5) {
|
|
||||||
values = data.map((item) => {
|
|
||||||
return Number(item['return_item_subtotal'])
|
|
||||||
})
|
|
||||||
}
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr)
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr
|
|
||||||
} else {
|
|
||||||
return prev
|
|
||||||
}
|
|
||||||
}, 0)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return sums
|
|
||||||
},
|
|
||||||
async viewLogistics() {
|
|
||||||
this.returnForm.return_tracking_name = this.data.return_tracking_name
|
|
||||||
this.returnForm.return_tracking_number =
|
|
||||||
this.data.return_tracking_number
|
|
||||||
this.$refs['returnlog'].showEdit(this.returnForm)
|
|
||||||
},
|
|
||||||
async showEdit(row) {
|
|
||||||
this.dialogFormVisible = true
|
|
||||||
this.return_id = row.return_id
|
|
||||||
await this.get(row.return_id)
|
|
||||||
},
|
|
||||||
close() {
|
|
||||||
this.return_id = ''
|
|
||||||
this.dialogFormVisible = false
|
|
||||||
},
|
|
||||||
async get(return_id) {
|
|
||||||
if (!return_id) {
|
|
||||||
return_id = this.return_id
|
|
||||||
}
|
|
||||||
this.loading = true
|
|
||||||
const { data } = await get({ return_id: return_id })
|
|
||||||
this.tableData = data.items
|
|
||||||
|
|
||||||
this.data = Object.assign({}, data)
|
|
||||||
if (this.data.return_tracking_number) {
|
|
||||||
this.viewLogisticsFlag = true
|
|
||||||
}
|
|
||||||
this.loading = false
|
|
||||||
},
|
|
||||||
reviewConfirm() {
|
|
||||||
this.$refs['reviewForm'].validate(async (valid) => {
|
|
||||||
this.reviewLoading = true
|
|
||||||
if (valid) {
|
|
||||||
this.reviewForm.return_id = this.return_id
|
|
||||||
const { msg, status } = await review(this.reviewForm)
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
this.reviewClose()
|
|
||||||
await this.get(this.return_id)
|
|
||||||
this.reviewLoading = false
|
|
||||||
} else {
|
} else {
|
||||||
this.reviewLoading = false
|
this.$baseMessage(msg, 'error')
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
})
|
this.refusedClose()
|
||||||
},
|
await this.get(this.return_id)
|
||||||
refusedConfirm() {
|
this.refusedLoading = false
|
||||||
this.$refs['refusedForm'].validate(async (valid) => {
|
|
||||||
this.refusedLoading = true
|
|
||||||
if (valid) {
|
|
||||||
this.refusedForm.return_id = this.return_id
|
|
||||||
const { msg, status } = await refused(this.refusedForm)
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
this.refusedClose()
|
|
||||||
await this.get(this.return_id)
|
|
||||||
this.refusedLoading = false
|
|
||||||
} else {
|
|
||||||
this.refusedLoading = false
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
reviewClose() {
|
|
||||||
this.reviewDialog = false
|
|
||||||
this.$refs['reviewForm'].resetFields()
|
|
||||||
this.reviewForm = {
|
|
||||||
return_flag: 0,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
refusedClose() {
|
|
||||||
this.refusedDialog = false
|
|
||||||
this.$refs['refusedForm'].resetFields()
|
|
||||||
this.refusedForm = {}
|
|
||||||
},
|
|
||||||
refusedOpen() {
|
|
||||||
this.refusedTitle = this.return_id + ' 不通过审核'
|
|
||||||
this.refusedDialog = true
|
|
||||||
},
|
|
||||||
reviewOpen() {
|
|
||||||
// 默认地址
|
|
||||||
this.setDefaultAddress()
|
|
||||||
this.reviewDialog = true
|
|
||||||
},
|
|
||||||
setDefaultAddress() {
|
|
||||||
let addressList = this.addressList
|
|
||||||
if (addressList || addressList.length === 0) return
|
|
||||||
let address = addressList.find((item) => item.ss_is_default === 1)
|
|
||||||
if (address) {
|
|
||||||
this.reviewForm.receiving_address = address.ss_id
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async getAddressList() {
|
|
||||||
const { data } = await getAddressList()
|
|
||||||
if (data && data.length > 0) {
|
|
||||||
this.addressList = data
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async receive() {
|
|
||||||
const { msg, status } = await receive({ return_id: this.return_id })
|
|
||||||
await this.get(this.return_id)
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
} else {
|
||||||
this.$baseMessage(msg, 'error')
|
this.refusedLoading = false
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
},
|
})
|
||||||
async refund() {
|
|
||||||
const { msg, status } = await refund({ return_id: this.return_id })
|
|
||||||
await this.get(this.return_id)
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
reviewClose() {
|
||||||
|
this.reviewDialog = false
|
||||||
|
this.$refs['reviewForm'].resetFields()
|
||||||
|
this.reviewForm = {
|
||||||
|
return_flag: 0,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
refusedClose() {
|
||||||
|
this.refusedDialog = false
|
||||||
|
this.$refs['refusedForm'].resetFields()
|
||||||
|
this.refusedForm = {}
|
||||||
|
},
|
||||||
|
refusedOpen() {
|
||||||
|
this.refusedTitle = this.return_id + ' 不通过审核'
|
||||||
|
this.refusedDialog = true
|
||||||
|
},
|
||||||
|
reviewOpen() {
|
||||||
|
// 默认地址
|
||||||
|
this.setDefaultAddress()
|
||||||
|
this.reviewDialog = true
|
||||||
|
},
|
||||||
|
setDefaultAddress() {
|
||||||
|
let addressList = this.addressList
|
||||||
|
if (addressList || addressList.length === 0) return
|
||||||
|
let address = addressList.find((item) => item.ss_is_default === 1)
|
||||||
|
if (address) {
|
||||||
|
this.reviewForm.receiving_address = address.ss_id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getAddressList() {
|
||||||
|
const { data } = await getAddressList()
|
||||||
|
if (data && data.length > 0) {
|
||||||
|
this.addressList = data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async receive() {
|
||||||
|
const { msg, status } = await receive({ return_id: this.return_id })
|
||||||
|
await this.get(this.return_id)
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async refund() {
|
||||||
|
const { msg, status } = await refund({ return_id: this.return_id })
|
||||||
|
await this.get(this.return_id)
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style>
|
||||||
.span_margin_right_18 span {
|
.span_margin_right_18 span {
|
||||||
margin-right: 18px;
|
margin-right: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.span_margin_right_10 span {
|
.span_margin_right_10 span {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
20
src/views/settings/config/appVersion.vue
Normal file
20
src/views/settings/config/appVersion.vue
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<template>
|
||||||
|
<div class="appVersion-container">这是商家版APP</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'appVersion',
|
||||||
|
components: {},
|
||||||
|
data() {
|
||||||
|
return {}
|
||||||
|
},
|
||||||
|
created() {},
|
||||||
|
methods: {},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.appVersion-container {
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -6,19 +6,12 @@
|
|||||||
:visible.sync="dialogFormVisible"
|
:visible.sync="dialogFormVisible"
|
||||||
@close="close"
|
@close="close"
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form ref="form" label-width="150px" :model="form" :rules="rules">
|
||||||
ref="form"
|
|
||||||
label-width="150px"
|
|
||||||
:model="form"
|
|
||||||
:rules="rules"
|
|
||||||
>
|
|
||||||
<el-form-item :label="__('管理员账号')" prop="user_account">
|
<el-form-item :label="__('管理员账号')" prop="user_account">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.user_account"
|
v-model="form.user_account"
|
||||||
clearable
|
clearable
|
||||||
:placeholder="
|
:placeholder="__('管理员信息账号')"
|
||||||
__('管理员信息账号')
|
|
||||||
"
|
|
||||||
:readonly="isReadOnly"
|
:readonly="isReadOnly"
|
||||||
:style="{ width: '48%' }"
|
:style="{ width: '48%' }"
|
||||||
/>
|
/>
|
||||||
@ -142,208 +135,208 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// 商户-砍价
|
// 商户-砍价
|
||||||
import { translateTitle as __ } from '@/utils/i18n'
|
import { translateTitle as __ } from '@/utils/i18n'
|
||||||
import { doEdit, FindStoreLevel, storeSetUp } from '@/api/store/base'
|
import { doEdit, FindStoreLevel, storeSetUp } from '@/api/store/base'
|
||||||
import { GetStoreClassify } from '@/api/base/store/category'
|
import { GetStoreClassify } from '@/api/base/store/category'
|
||||||
import {getList as getSubsite} from "@/api/plantform/subsite";
|
import { getList as getSubsite } from '@/api/plantform/subsite'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StoreBaseEdit',
|
name: 'StoreBaseEdit',
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
options: [],
|
options: [],
|
||||||
classifyData: [],
|
classifyData: [],
|
||||||
siteOptions:[],
|
siteOptions: [],
|
||||||
form: {
|
form: {
|
||||||
store_is_open: 0,
|
store_is_open: 0,
|
||||||
store_is_selfsupport: 1,
|
store_is_selfsupport: 1,
|
||||||
store_type: 1,
|
store_type: 1,
|
||||||
store_o2o_flag: 0,
|
store_o2o_flag: 0,
|
||||||
subsite_id:0
|
subsite_id: 0,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
user_password: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入店铺管理员密码',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入店铺名称',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
user_account: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入管理员账号',
|
||||||
|
trigger: 'blur',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_grade_id: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择店铺等级',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_category_id: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择经营分类',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_is_selfsupport: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_type: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
store_o2o_flag: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '不能为空',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
subsite_id: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择所属分站',
|
||||||
|
trigger: 'change',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
store_is_selfsupportOptions: [
|
||||||
|
{
|
||||||
|
label: this.__('平台自营'),
|
||||||
|
value: 1,
|
||||||
},
|
},
|
||||||
rules: {
|
{
|
||||||
user_password: [
|
label: this.__('加盟商家'),
|
||||||
{
|
value: 0,
|
||||||
required: true,
|
|
||||||
message: '请输入店铺管理员密码',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_name: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入店铺名称',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
user_account: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请输入管理员账号',
|
|
||||||
trigger: 'blur',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_grade_id: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请选择店铺等级',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_category_id: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请选择经营分类',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_is_selfsupport: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '不能为空',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_type: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '不能为空',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
store_o2o_flag: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '不能为空',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
subsite_id: [
|
|
||||||
{
|
|
||||||
required: true,
|
|
||||||
message: '请选择所属分站',
|
|
||||||
trigger: 'change',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
store_is_selfsupportOptions: [
|
],
|
||||||
{
|
store_typeOptions: [
|
||||||
label: this.__('平台自营'),
|
{
|
||||||
value: 1,
|
label: this.__('零售店铺'),
|
||||||
},
|
value: 1,
|
||||||
{
|
},
|
||||||
label: this.__('加盟商家'),
|
{
|
||||||
value: 0,
|
label: this.__('供应商店铺'),
|
||||||
},
|
value: 2,
|
||||||
],
|
},
|
||||||
store_typeOptions: [
|
],
|
||||||
{
|
store_o2o_flagOptions: [
|
||||||
label: this.__('零售店铺'),
|
{
|
||||||
value: 1,
|
label: this.__('线上店铺'),
|
||||||
},
|
value: 0,
|
||||||
{
|
},
|
||||||
label: this.__('供应商店铺'),
|
{
|
||||||
value: 2,
|
label: this.__('线下门店'),
|
||||||
},
|
value: 1,
|
||||||
],
|
},
|
||||||
store_o2o_flagOptions: [
|
],
|
||||||
{
|
title: '',
|
||||||
label: this.__('线上店铺'),
|
dialogFormVisible: false,
|
||||||
value: 0,
|
saveLoading: false,
|
||||||
},
|
}
|
||||||
{
|
},
|
||||||
label: this.__('线下门店'),
|
computed: {
|
||||||
value: 1,
|
isReadOnly() {
|
||||||
},
|
return this.form.store_id !== undefined
|
||||||
],
|
},
|
||||||
title: '',
|
},
|
||||||
dialogFormVisible: false,
|
created() {
|
||||||
saveLoading: false,
|
this.fetchdataFindStoreLevel()
|
||||||
|
this.fetchdataGetStoreClassify()
|
||||||
|
this.getSubsiteList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
__,
|
||||||
|
async fetchdataFindStoreLevel() {
|
||||||
|
await FindStoreLevel().then((res) => {
|
||||||
|
this.options = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async fetchdataGetStoreClassify() {
|
||||||
|
await GetStoreClassify().then((res) => {
|
||||||
|
this.classifyData = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
async getSubsiteList() {
|
||||||
|
let param = {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 9999,
|
||||||
|
}
|
||||||
|
const { data } = await getSubsite(param)
|
||||||
|
if (data) {
|
||||||
|
this.siteOptions = data.items
|
||||||
|
} else {
|
||||||
|
this.siteOptions = []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
showEdit(row) {
|
||||||
isReadOnly() {
|
if (!row) {
|
||||||
return this.form.store_id !== undefined
|
this.title = this.__('新增')
|
||||||
},
|
} else {
|
||||||
|
this.title = this.__('编辑')
|
||||||
|
this.form = Object.assign({}, row)
|
||||||
|
}
|
||||||
|
this.dialogFormVisible = true
|
||||||
},
|
},
|
||||||
created() {
|
close() {
|
||||||
this.fetchdataFindStoreLevel()
|
this.form = {
|
||||||
this.fetchdataGetStoreClassify()
|
store_is_selfsupport: 1,
|
||||||
this.getSubsiteList()
|
store_type: 1,
|
||||||
|
store_o2o_flag: 0,
|
||||||
|
store_is_open: 0,
|
||||||
|
}
|
||||||
|
this.$refs['form'].resetFields()
|
||||||
|
this.dialogFormVisible = false
|
||||||
},
|
},
|
||||||
methods: {
|
save() {
|
||||||
__,
|
this.$refs['form'].validate(async (valid) => {
|
||||||
async fetchdataFindStoreLevel() {
|
if (valid) {
|
||||||
await FindStoreLevel().then((res) => {
|
if (this.form.store_id == undefined) {
|
||||||
this.options = res.data
|
this.saveLoading = true
|
||||||
})
|
const { msg, status } = await doEdit(this.form)
|
||||||
},
|
this.saveLoading = false
|
||||||
async fetchdataGetStoreClassify() {
|
if (200 == status) {
|
||||||
await GetStoreClassify().then((res) => {
|
this.$baseMessage(msg, 'success')
|
||||||
this.classifyData = res.data
|
|
||||||
})
|
|
||||||
},
|
|
||||||
async getSubsiteList() {
|
|
||||||
let param = {
|
|
||||||
pageNum: 1,
|
|
||||||
pageSize: 9999,
|
|
||||||
}
|
|
||||||
const { data } = await getSubsite(param)
|
|
||||||
if (data) {
|
|
||||||
this.siteOptions = data.items
|
|
||||||
} else {
|
|
||||||
this.siteOptions = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
showEdit(row) {
|
|
||||||
if (!row) {
|
|
||||||
this.title = this.__('新增')
|
|
||||||
} else {
|
|
||||||
this.title = this.__('编辑')
|
|
||||||
this.form = Object.assign({}, row)
|
|
||||||
}
|
|
||||||
this.dialogFormVisible = true
|
|
||||||
},
|
|
||||||
close() {
|
|
||||||
this.form = {
|
|
||||||
store_is_selfsupport: 1,
|
|
||||||
store_type: 1,
|
|
||||||
store_o2o_flag: 0,
|
|
||||||
store_is_open: 0,
|
|
||||||
}
|
|
||||||
this.$refs['form'].resetFields()
|
|
||||||
this.dialogFormVisible = false
|
|
||||||
},
|
|
||||||
save() {
|
|
||||||
this.$refs['form'].validate(async (valid) => {
|
|
||||||
if (valid) {
|
|
||||||
if (this.form.store_id == undefined) {
|
|
||||||
this.saveLoading = true
|
|
||||||
const { msg, status } = await doEdit(this.form)
|
|
||||||
this.saveLoading = false
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
this.$emit('fetch-data')
|
|
||||||
} else {
|
} else {
|
||||||
this.saveLoading = true
|
this.$baseMessage(msg, 'error')
|
||||||
const { msg, status } = await storeSetUp(this.form)
|
|
||||||
this.saveLoading = false
|
|
||||||
if (200 == status) {
|
|
||||||
this.$baseMessage(msg, 'success')
|
|
||||||
} else {
|
|
||||||
this.$baseMessage(msg, 'error')
|
|
||||||
}
|
|
||||||
this.$emit('fetch-data')
|
|
||||||
}
|
}
|
||||||
this.close()
|
this.$emit('fetch-data')
|
||||||
|
} else {
|
||||||
|
this.saveLoading = true
|
||||||
|
const { msg, status } = await storeSetUp(this.form)
|
||||||
|
this.saveLoading = false
|
||||||
|
if (200 == status) {
|
||||||
|
this.$baseMessage(msg, 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(msg, 'error')
|
||||||
|
}
|
||||||
|
this.$emit('fetch-data')
|
||||||
}
|
}
|
||||||
})
|
this.close()
|
||||||
},
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -2065,15 +2065,34 @@ export default {
|
|||||||
|
|
||||||
// },
|
// },
|
||||||
async handerSubmit() {
|
async handerSubmit() {
|
||||||
|
debugger
|
||||||
|
|
||||||
|
console.log(this.form)
|
||||||
if (
|
if (
|
||||||
!this.form.distance.distanceNum ||
|
this.form.distance.distanceNum == null ||
|
||||||
!this.form.distance.weightNum ||
|
this.form.distance.distanceNum === '' ||
|
||||||
!this.form.distance.distributionFreightNum ||
|
this.form.distance.weightNum == null ||
|
||||||
!this.form.distanceAdd.distanceNum ||
|
this.form.distance.weightNum === '' ||
|
||||||
!this.form.distanceAdd.FreightAddNum ||
|
this.form.distance.distributionFreightNum == null ||
|
||||||
!this.form.weightAdd.weightAddNum ||
|
this.form.distance.distributionFreightNum === '' ||
|
||||||
!this.form.weightAdd.FreightAddNum
|
this.form.distanceAdd.distanceNum == null ||
|
||||||
|
this.form.distanceAdd.distanceNum === '' ||
|
||||||
|
this.form.distanceAdd.FreightAddNum == null ||
|
||||||
|
this.form.distanceAdd.FreightAddNum === '' ||
|
||||||
|
this.form.weightAdd.weightAddNum == null ||
|
||||||
|
this.form.weightAdd.weightAddNum === '' ||
|
||||||
|
this.form.weightAdd.FreightAddNum == null ||
|
||||||
|
this.form.weightAdd.FreightAddNum === ''
|
||||||
) {
|
) {
|
||||||
|
console.log(
|
||||||
|
this.form.distance.distanceNum,
|
||||||
|
this.form.distance.weightNum,
|
||||||
|
this.form.distance.distributionFreightNum,
|
||||||
|
this.form.distanceAdd.distanceNum,
|
||||||
|
this.form.distanceAdd.FreightAddNum,
|
||||||
|
this.form.weightAdd.weightAddNum,
|
||||||
|
this.form.weightAdd.FreightAddNum
|
||||||
|
)
|
||||||
this.$baseMessage('请填写完整的信息', 'error')
|
this.$baseMessage('请填写完整的信息', 'error')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -2125,6 +2144,8 @@ export default {
|
|||||||
let res = await saveSameCityTransport(params)
|
let res = await saveSameCityTransport(params)
|
||||||
if (res && res.status == 200) {
|
if (res && res.status == 200) {
|
||||||
this.$baseMessage('保存成功', 'success')
|
this.$baseMessage('保存成功', 'success')
|
||||||
|
} else {
|
||||||
|
this.$baseMessage(res.msg, 'error')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -41,6 +41,7 @@
|
|||||||
:label="__('店铺log')"
|
:label="__('店铺log')"
|
||||||
label-width="150px"
|
label-width="150px"
|
||||||
prop="store_logo"
|
prop="store_logo"
|
||||||
|
class="form-item-img-list"
|
||||||
>
|
>
|
||||||
<upload
|
<upload
|
||||||
height="100px"
|
height="100px"
|
||||||
@ -52,6 +53,14 @@
|
|||||||
}
|
}
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
|
<el-form-item label="店铺二维码" class="QRcode">
|
||||||
|
<el-image
|
||||||
|
class="QRcode-img"
|
||||||
|
style="width: 100px; height: 100px"
|
||||||
|
:src="storeForm.wx_qrcode"
|
||||||
|
:previewSrcList="srcList"
|
||||||
|
></el-image>
|
||||||
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -125,6 +134,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="storeForm.store_longitude"
|
v-model="storeForm.store_longitude"
|
||||||
clearable
|
clearable
|
||||||
|
disabled
|
||||||
:placeholder="__('经度')"
|
:placeholder="__('经度')"
|
||||||
:style="{ width: '80%' }"
|
:style="{ width: '80%' }"
|
||||||
/>
|
/>
|
||||||
@ -141,6 +151,7 @@
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="storeForm.store_latitude"
|
v-model="storeForm.store_latitude"
|
||||||
clearable
|
clearable
|
||||||
|
disabled
|
||||||
:placeholder="__('维度')"
|
:placeholder="__('维度')"
|
||||||
:style="{ width: '80%' }"
|
:style="{ width: '80%' }"
|
||||||
/>
|
/>
|
||||||
@ -525,6 +536,7 @@ export default {
|
|||||||
city: { code: '', name: '' },
|
city: { code: '', name: '' },
|
||||||
district: { code: '', name: '' },
|
district: { code: '', name: '' },
|
||||||
},
|
},
|
||||||
|
srcList: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -536,7 +548,7 @@ export default {
|
|||||||
const form = this.physicalStoreForm
|
const form = this.physicalStoreForm
|
||||||
let params = {
|
let params = {
|
||||||
store_notice: form.store_notice,
|
store_notice: form.store_notice,
|
||||||
store_o2o_tags: form.store_o2o_tags.toString(),
|
// store_o2o_tags: form.store_o2o_tags.toString(),
|
||||||
store_opening_hours: form.store_opening_hours,
|
store_opening_hours: form.store_opening_hours,
|
||||||
store_close_hours: form.store_close_hours,
|
store_close_hours: form.store_close_hours,
|
||||||
store_discount: form.store_discount,
|
store_discount: form.store_discount,
|
||||||
@ -658,8 +670,10 @@ export default {
|
|||||||
store_qq: data.info.store_qq,
|
store_qq: data.info.store_qq,
|
||||||
store_ww: data.info.store_ww,
|
store_ww: data.info.store_ww,
|
||||||
company_description: data.company.company_description,
|
company_description: data.company.company_description,
|
||||||
|
wx_qrcode: data.wx_qrcode,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.srcList.push(data.wx_qrcode)
|
||||||
if (data.info.store_slide && data.info.store_slide.length > 0) {
|
if (data.info.store_slide && data.info.store_slide.length > 0) {
|
||||||
this.slideShowForm.store_slide = data.info.store_slide
|
this.slideShowForm.store_slide = data.info.store_slide
|
||||||
} else {
|
} else {
|
||||||
@ -709,7 +723,7 @@ export default {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style>
|
<style lang="scss">
|
||||||
.config-save {
|
.config-save {
|
||||||
color: white;
|
color: white;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@ -720,4 +734,21 @@ export default {
|
|||||||
.config-save:hover {
|
.config-save:hover {
|
||||||
background-color: #3d3d3d;
|
background-color: #3d3d3d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form-item-img-list {
|
||||||
|
.el-form-item__content {
|
||||||
|
display: flex;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.QRcode {
|
||||||
|
display: flex;
|
||||||
|
margin-left: 40px;
|
||||||
|
|
||||||
|
.QRcode-img {
|
||||||
|
border: 1px solid #cccccc;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
14592
src/views/store/shopAudit/cityData.js
Normal file
14592
src/views/store/shopAudit/cityData.js
Normal file
File diff suppressed because it is too large
Load Diff
304
src/views/store/shopAudit/formConfig.js
Normal file
304
src/views/store/shopAudit/formConfig.js
Normal file
@ -0,0 +1,304 @@
|
|||||||
|
const baseInfo = [
|
||||||
|
{
|
||||||
|
key:'store_name',
|
||||||
|
label:'店铺名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_category',
|
||||||
|
label:'经营品类',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'contact_name',
|
||||||
|
label:'联系人',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const addressInfo = [
|
||||||
|
{
|
||||||
|
key:'mapAddress',
|
||||||
|
label:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'store_address',
|
||||||
|
label:'详细地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'storefrontImg',
|
||||||
|
label:'门脸图',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'surroundingsImg',
|
||||||
|
label:'环境图',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const certificate = [
|
||||||
|
{
|
||||||
|
key:'biz_license_company',
|
||||||
|
label:'公司名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_license_number',
|
||||||
|
label:'营业执照编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_license_image',
|
||||||
|
label:'营业执照图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_type',
|
||||||
|
label:'许可证类型',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_number',
|
||||||
|
label:'许可证编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_image',
|
||||||
|
label:'许可证图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_name',
|
||||||
|
label:'法人姓名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_mobile',
|
||||||
|
label:'法人手机号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_id_number',
|
||||||
|
label:'法人身份证号码',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_id_images',
|
||||||
|
label:'法人身份证正面图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_id_images2',
|
||||||
|
label:'法人身份证反面图片',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
const certificate2 = [
|
||||||
|
{
|
||||||
|
key:'individual_id_number',
|
||||||
|
label:'身份证号码',
|
||||||
|
placeholder:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'individual_id_images',
|
||||||
|
label:'身份证正面图片',
|
||||||
|
placeholder:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'individual_id_images2',
|
||||||
|
label:'身份证反面图片',
|
||||||
|
placeholder:'地图地址',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const bankInfo = [
|
||||||
|
{
|
||||||
|
key:'bank_name',
|
||||||
|
label:'开户银行',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'bank_branch_name',
|
||||||
|
label:'开户银行的支行名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_number',
|
||||||
|
label:'收款账户号码',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_holder_name',
|
||||||
|
label:'收款账户姓名',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const formConfig = [
|
||||||
|
{
|
||||||
|
key:'contact_name',
|
||||||
|
label:'联系人',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_category',
|
||||||
|
label:'经营品类',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'store_name',
|
||||||
|
label:'店铺名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'mapAddress',
|
||||||
|
label:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'store_address',
|
||||||
|
label:'详细地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'storefrontImg',
|
||||||
|
label:'门脸图',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'surroundingsImg',
|
||||||
|
label:'环境图',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'entity_type',
|
||||||
|
label:'许可证类型',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_number',
|
||||||
|
label:'许可证编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_license_number',
|
||||||
|
label:'营业执照编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_license_company',
|
||||||
|
label:'营业执照公司名或真实的公司名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_name',
|
||||||
|
label:'法人姓名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_mobile',
|
||||||
|
label:'法人手机号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_id_number',
|
||||||
|
label:'法人身份证号码',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_license_image',
|
||||||
|
label:'营业执照图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_type',
|
||||||
|
label:'许可证类型',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_number',
|
||||||
|
label:'许可证编号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'license_image',
|
||||||
|
label:'许可证图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_id_images',
|
||||||
|
label:'法人身份证正面图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'legal_person_id_images2',
|
||||||
|
label:'法人身份证反面图片',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'bank_name',
|
||||||
|
label:'开户银行',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'bank_branch_name',
|
||||||
|
label:'开户银行的支行名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_number',
|
||||||
|
label:'收款账户号码',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_holder_name',
|
||||||
|
label:'收款账户姓名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_holder_name',
|
||||||
|
label:'收款账户姓名',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const formConfig2=[
|
||||||
|
{
|
||||||
|
key:'contact_name',
|
||||||
|
label:'联系人',
|
||||||
|
placeholder:'请输入联系人',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'biz_category',
|
||||||
|
label:'经营品类',
|
||||||
|
placeholder:'请选择经营品类',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'store_name',
|
||||||
|
label:'门店名称',
|
||||||
|
placeholder:'请输入门店名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'mapAddress',
|
||||||
|
label:'地图地址',
|
||||||
|
placeholder:'请在地图上选择门店地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'store_address',
|
||||||
|
label:'详细地址',
|
||||||
|
placeholder:'详细地址:如:人民大道205号2楼213',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'storefrontImg',
|
||||||
|
label:'门脸图',
|
||||||
|
placeholder:''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'surroundingsImg',
|
||||||
|
label:'环境图',
|
||||||
|
placeholder:'',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'individual_id_number',
|
||||||
|
label:'身份证号码',
|
||||||
|
placeholder:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'individual_id_images',
|
||||||
|
label:'身份证正面图片',
|
||||||
|
placeholder:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'individual_id_images2',
|
||||||
|
label:'身份证反面图片',
|
||||||
|
placeholder:'地图地址',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'bank_name',
|
||||||
|
label:'开户银行',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'bank_branch_name',
|
||||||
|
label:'开户银行的支行名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_number',
|
||||||
|
label:'收款账户号码',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_holder_name',
|
||||||
|
label:'收款账户姓名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key:'account_holder_name',
|
||||||
|
label:'收款账户姓名',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
formConfig,
|
||||||
|
formConfig2,
|
||||||
|
baseInfo,
|
||||||
|
addressInfo,
|
||||||
|
certificate,
|
||||||
|
certificate2,
|
||||||
|
bankInfo,
|
||||||
|
}
|
||||||
281
src/views/store/shopAudit/shopAudit.vue
Normal file
281
src/views/store/shopAudit/shopAudit.vue
Normal file
@ -0,0 +1,281 @@
|
|||||||
|
<template>
|
||||||
|
<div class="shopAudit-container">
|
||||||
|
<div class="content">
|
||||||
|
<span class="name">关键词搜索:</span>
|
||||||
|
<el-input
|
||||||
|
placeholder="请输入(店铺名称/法人/手机号/公司名称)"
|
||||||
|
suffix-icon="el-icon-search"
|
||||||
|
v-model="params.keyword"
|
||||||
|
size="medium"
|
||||||
|
class="input-with-select"
|
||||||
|
></el-input>
|
||||||
|
<el-button type="primary" size="medium" @click="getPrinterList">
|
||||||
|
搜索
|
||||||
|
</el-button>
|
||||||
|
<el-button size="medium" @click="handleClear">清除条件</el-button>
|
||||||
|
</div>
|
||||||
|
<el-table
|
||||||
|
:data="tableData"
|
||||||
|
:height="tableConfig.height"
|
||||||
|
:cell-class-name="handerColor"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
v-for="(item, index) in tabColumn"
|
||||||
|
:key="index"
|
||||||
|
:prop="item.prop"
|
||||||
|
:label="item.label"
|
||||||
|
>
|
||||||
|
<template #default="{ row, $index }" v-if="item.label == '操作'">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click="handleSkipEdit(row, $index)"
|
||||||
|
>
|
||||||
|
详情
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<el-pagination
|
||||||
|
background
|
||||||
|
:current-page="params.pageNum"
|
||||||
|
:layout="layout"
|
||||||
|
:page-size="params.pageSize"
|
||||||
|
:total="total"
|
||||||
|
@current-change="handleCurrentChange"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
/>
|
||||||
|
<shopAuditDetails
|
||||||
|
:show="showDialog"
|
||||||
|
:id="shopId"
|
||||||
|
@close="closeDialog"
|
||||||
|
></shopAuditDetails>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import shopAuditDetails from './shopAuditDetails'
|
||||||
|
import { getPrinterList } from '@/api/shopAudit/shopAudit'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
shopAuditDetails,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
layout: 'total, sizes, prev, pager, next, jumper',
|
||||||
|
total: 0,
|
||||||
|
params: {
|
||||||
|
keyword: '',
|
||||||
|
page: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
},
|
||||||
|
showDialog: false,
|
||||||
|
searchKeyWord: '',
|
||||||
|
tableConfig: {
|
||||||
|
height: window.innerHeight - 220 - 150,
|
||||||
|
},
|
||||||
|
shopId: 0,
|
||||||
|
approvalStatus: ['已通过', '未通过', '待审核'],
|
||||||
|
signedStatus: [
|
||||||
|
{
|
||||||
|
index: -1,
|
||||||
|
value: '预备数据阶段',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 0,
|
||||||
|
value: '等待签署',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 1,
|
||||||
|
value: '已部分签署',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 2,
|
||||||
|
value: '已完成',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 3,
|
||||||
|
value: '已撤销',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 5,
|
||||||
|
value: '已过期',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
index: 7,
|
||||||
|
value: '已拒签',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
entityType: ['企业', '个人'],
|
||||||
|
tabColumn: [
|
||||||
|
{
|
||||||
|
prop: 'operation',
|
||||||
|
label: '操作',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'store_id',
|
||||||
|
label: '入驻商家的店铺ID',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'store_name',
|
||||||
|
label: '店铺名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'login_mobile',
|
||||||
|
label: '登录手机号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'contact_name',
|
||||||
|
label: '联系人',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: '',
|
||||||
|
label: '公司名称',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'biz_category',
|
||||||
|
label: '经营品类',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'entity_type',
|
||||||
|
label: '入驻主体类型',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'legal_person_name',
|
||||||
|
label: '法人姓名',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'legal_person_mobile',
|
||||||
|
label: '法人手机号',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'approval_status',
|
||||||
|
label: '审批状态',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
prop: 'signed_status',
|
||||||
|
label: '合同签署状态',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
tableData: [
|
||||||
|
{
|
||||||
|
id: 0,
|
||||||
|
login_mobile: 66,
|
||||||
|
approval_status: 1,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {},
|
||||||
|
created() {
|
||||||
|
this.getPrinterList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async getPrinterList() {
|
||||||
|
let res = await getPrinterList(this.params)
|
||||||
|
if (res && res.status == 200) {
|
||||||
|
if (res.data.items.length > 0) {
|
||||||
|
res.data.items.forEach((item) => {
|
||||||
|
if (item.approval_status) {
|
||||||
|
item.approval_status =
|
||||||
|
this.approvalStatus[item.approval_status - 1]
|
||||||
|
}
|
||||||
|
if (item.signed_status != null) {
|
||||||
|
this.signedStatus.forEach((group) => {
|
||||||
|
if (group.index == item.signed_status) {
|
||||||
|
item.signed_status = group.value
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (item.entity_type) {
|
||||||
|
item.entity_type = this.entityType[item.entity_type - 1]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
this.tableData = res.data.items
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleClear() {
|
||||||
|
this.params = {
|
||||||
|
keyword: '',
|
||||||
|
page: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
}
|
||||||
|
this.getPrinterList()
|
||||||
|
},
|
||||||
|
handleCurrentChange() {},
|
||||||
|
handleSizeChange() {},
|
||||||
|
handleSkipEdit(item) {
|
||||||
|
this.showDialog = true
|
||||||
|
this.shopId = item.id
|
||||||
|
},
|
||||||
|
handerColor({ row, column, rowIndex, columnIndex }) {
|
||||||
|
if (row) {
|
||||||
|
if (row.approval_status == '已通过' && columnIndex == 10) {
|
||||||
|
return 'status-pass'
|
||||||
|
}
|
||||||
|
if (row.approval_status == '未通过' && columnIndex == 10) {
|
||||||
|
return 'status-not-pass'
|
||||||
|
}
|
||||||
|
if (row.approval_status == '待审核' && columnIndex == 10) {
|
||||||
|
return 'status-check-pass'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (row.signed_status == '' && columnIndex == 11) {
|
||||||
|
return 'status-pass'
|
||||||
|
}
|
||||||
|
if (row.signed_status == '没签署' && columnIndex == 11) {
|
||||||
|
return 'status-not-pass'
|
||||||
|
}
|
||||||
|
if (row.signed_status == '待审核' && columnIndex == 11) {
|
||||||
|
return 'status-check-pass'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeDialog() {
|
||||||
|
this.showDialog = false
|
||||||
|
this.handleClear()
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.shopAudit-container {
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
margin: 20px 0;
|
||||||
|
|
||||||
|
.name {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-with-select {
|
||||||
|
margin: 0 10px;
|
||||||
|
width: 270px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.status-pass {
|
||||||
|
.cell {
|
||||||
|
color: #48c978 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-not-pass {
|
||||||
|
.cell {
|
||||||
|
color: red !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.status-check-pass {
|
||||||
|
.cell {
|
||||||
|
color: #ffba00 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
1004
src/views/store/shopAudit/shopAuditDetails.vue
Normal file
1004
src/views/store/shopAudit/shopAuditDetails.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,19 +6,12 @@
|
|||||||
:visible.sync="dialogFormVisible"
|
:visible.sync="dialogFormVisible"
|
||||||
@close="close"
|
@close="close"
|
||||||
>
|
>
|
||||||
<el-form
|
<el-form ref="form" label-width="150px" :model="form" :rules="rules">
|
||||||
ref="form"
|
|
||||||
label-width="150px"
|
|
||||||
:model="form"
|
|
||||||
:rules="rules"
|
|
||||||
>
|
|
||||||
<el-form-item :label="__('管理员账号')" prop="user_account">
|
<el-form-item :label="__('管理员账号')" prop="user_account">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.user_account"
|
v-model="form.user_account"
|
||||||
clearable
|
clearable
|
||||||
:placeholder="
|
:placeholder="__('管理员信息账号')"
|
||||||
__('管理员信息账号')
|
|
||||||
"
|
|
||||||
:readonly="isReadOnly"
|
:readonly="isReadOnly"
|
||||||
:style="{ width: '48%' }"
|
:style="{ width: '48%' }"
|
||||||
/>
|
/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user