基础框架搭建
This commit is contained in:
@@ -10,17 +10,12 @@ import {
|
|||||||
BasicLayout,
|
BasicLayout,
|
||||||
UserLayout
|
UserLayout
|
||||||
} from '@/layouts'
|
} from '@/layouts'
|
||||||
import assign from './routes/assign'
|
|
||||||
import firstCheck from './routes/firstCheck'
|
|
||||||
import reCheck from './routes/reCheck'
|
|
||||||
import signIn from './routes/signIn'
|
|
||||||
import address from './routes/address'
|
|
||||||
import detail from './routes/detail'
|
import detail from './routes/detail'
|
||||||
import organization from './routes/organization'
|
import stock from './routes/stock'
|
||||||
import handleService from './routes/handleService'
|
import user from './routes/user'
|
||||||
import completeOrder from './routes/completeOrder'
|
import coupon from './routes/coupon'
|
||||||
import permission from './routes/permission'
|
import permission from './routes/permission'
|
||||||
import pendingOrder from './routes/pendingOrder'
|
import sales from './routes/sales'
|
||||||
|
|
||||||
export const asyncRouterMap = [{
|
export const asyncRouterMap = [{
|
||||||
path: '/',
|
path: '/',
|
||||||
@@ -37,20 +32,15 @@ export const asyncRouterMap = [{
|
|||||||
meta: {
|
meta: {
|
||||||
title: '数据看板',
|
title: '数据看板',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
icon: 'dashboard',
|
icon: 'user',
|
||||||
permission: ['home']
|
permission: ['home']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
...pendingOrder,
|
|
||||||
...assign,
|
|
||||||
...firstCheck,
|
|
||||||
...signIn,
|
|
||||||
...reCheck,
|
|
||||||
...detail,
|
...detail,
|
||||||
...handleService,
|
...stock,
|
||||||
...completeOrder,
|
...sales,
|
||||||
...address,
|
...user,
|
||||||
...organization,
|
...coupon,
|
||||||
...permission
|
...permission
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
10
src/config/routes/coupon.js
Normal file
10
src/config/routes/coupon.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
export default [{
|
||||||
|
path: '/coupon',
|
||||||
|
name: 'CouponIndex',
|
||||||
|
meta: {
|
||||||
|
title: '优惠券管理',
|
||||||
|
icon: 'bank'
|
||||||
|
},
|
||||||
|
component: () => import('@/views/coupon/Index')
|
||||||
|
}]
|
||||||
@@ -7,13 +7,13 @@ export default [
|
|||||||
component: () => import('@/views/detail/Detail'),
|
component: () => import('@/views/detail/Detail'),
|
||||||
meta: { title: '订单详情' }
|
meta: { title: '订单详情' }
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: '/organization/detail/:orderId/:itemId',
|
// path: '/organization/detail/:orderId/:itemId',
|
||||||
name: 'OrganizationDetail',
|
// name: 'OrganizationDetail',
|
||||||
hidden: true,
|
// hidden: true,
|
||||||
component: () => import('@/views/organization/Detail'),
|
// component: () => import('@/views/organization/Detail'),
|
||||||
meta: { title: '机构详情' }
|
// meta: { title: '机构详情' }
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: '/detail/:id/logistics',
|
path: '/detail/:id/logistics',
|
||||||
name: 'DetailLogistics',
|
name: 'DetailLogistics',
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
import {
|
|
||||||
RouteView
|
|
||||||
} from '@/layouts'
|
|
||||||
|
|
||||||
export default [{
|
|
||||||
path: '/organization',
|
|
||||||
component: RouteView,
|
|
||||||
name: 'organizationIndex',
|
|
||||||
redirect: '/organization/index',
|
|
||||||
meta: {
|
|
||||||
title: '机构信息列表',
|
|
||||||
icon: 'bank'
|
|
||||||
},
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: '/organization/index',
|
|
||||||
name: 'OrganizationIndex',
|
|
||||||
component: () => import('@/views/organization/Index'),
|
|
||||||
meta: {
|
|
||||||
title: '机构列表',
|
|
||||||
icon: 'unordered-list'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
@@ -11,10 +11,10 @@ export default [
|
|||||||
{
|
{
|
||||||
path: '/permissions/index',
|
path: '/permissions/index',
|
||||||
name: 'PermissionsIndex',
|
name: 'PermissionsIndex',
|
||||||
hidden: true,
|
|
||||||
component: () => import('@/views/permissions/Index'),
|
component: () => import('@/views/permissions/Index'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '组织结构(权限管理)'
|
title: '权限管理',
|
||||||
|
icon: 'bank'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
42
src/config/routes/sales.js
Normal file
42
src/config/routes/sales.js
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import {
|
||||||
|
RouteView
|
||||||
|
} from '@/layouts'
|
||||||
|
|
||||||
|
export default [{
|
||||||
|
path: '/sales',
|
||||||
|
name: 'StockIndex',
|
||||||
|
meta: {
|
||||||
|
title: '销售管理',
|
||||||
|
icon: 'bank'
|
||||||
|
},
|
||||||
|
component: RouteView,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '/sales/online',
|
||||||
|
name: 'SalesOnline',
|
||||||
|
meta: {
|
||||||
|
title: '线上零售订单',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
},
|
||||||
|
component: () => import('@/views/sales/Online')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/sales/stock',
|
||||||
|
name: 'SalesStock',
|
||||||
|
meta: {
|
||||||
|
title: '线上进货订单',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
},
|
||||||
|
component: () => import('@/views/sales/OnStock')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/sales/offline',
|
||||||
|
name: 'SalesOffline',
|
||||||
|
meta: {
|
||||||
|
title: '线下出货列表',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
},
|
||||||
|
component: () => import('@/views/sales/Offline')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}]
|
||||||
54
src/config/routes/stock.js
Normal file
54
src/config/routes/stock.js
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
import {
|
||||||
|
RouteView
|
||||||
|
} from '@/layouts'
|
||||||
|
|
||||||
|
export default [{
|
||||||
|
path: '/stock',
|
||||||
|
name: 'StockIndex',
|
||||||
|
meta: {
|
||||||
|
title: '库存管理',
|
||||||
|
icon: 'bank'
|
||||||
|
},
|
||||||
|
component: RouteView,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '/stock/ins',
|
||||||
|
name: 'StockIns',
|
||||||
|
meta: {
|
||||||
|
title: '分公司库存管理',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
},
|
||||||
|
component: RouteView,
|
||||||
|
redirect: '/stock/in',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: '/stock/in',
|
||||||
|
name: 'StockIn',
|
||||||
|
component: () => import('@/views/stock/In'),
|
||||||
|
meta: {
|
||||||
|
title: '入库管理',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/stock/out',
|
||||||
|
name: 'StockOut',
|
||||||
|
component: () => import('@/views/stock/Out'),
|
||||||
|
meta: {
|
||||||
|
title: '出库管理',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/stock/dealer',
|
||||||
|
name: 'StockDealer',
|
||||||
|
meta: {
|
||||||
|
title: '经销商库存管理',
|
||||||
|
icon: 'unordered-list'
|
||||||
|
},
|
||||||
|
component: () => import('@/views/stock/DealerIndex')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}]
|
||||||
9
src/config/routes/user.js
Normal file
9
src/config/routes/user.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
export default [{
|
||||||
|
path: '/user',
|
||||||
|
name: 'UserIndex',
|
||||||
|
meta: {
|
||||||
|
title: '用户管理',
|
||||||
|
icon: 'bank'
|
||||||
|
},
|
||||||
|
component: () => import('@/views/user/Index')
|
||||||
|
}]
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-slot:rightContentRender>
|
<template v-slot:rightContentRender>
|
||||||
<span class="rightContentRenderTitle">欢迎使用水感应大数据综合管理平台</span>
|
<span class="rightContentRenderTitle">欢迎使用水感应代理商综合管理平台</span>
|
||||||
<right-content :is-mobile="isMobile" :theme="settings.theme" :top-menu="settings.layout === 'topmenu'" />
|
<right-content :is-mobile="isMobile" :theme="settings.theme" :top-menu="settings.layout === 'topmenu'" />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ export default {
|
|||||||
menus: [],
|
menus: [],
|
||||||
// 侧栏收起状态
|
// 侧栏收起状态
|
||||||
collapsed: false,
|
collapsed: false,
|
||||||
title: ' 水感应法律 ',
|
title: ' 水感应代理商 ',
|
||||||
logo: '',
|
logo: '',
|
||||||
settings: {
|
settings: {
|
||||||
// 布局类型
|
// 布局类型
|
||||||
|
|||||||
344
src/views/coupon/Index.vue
Normal file
344
src/views/coupon/Index.vue
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="优惠券生成人姓名">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="优惠券生成人姓名" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="优惠券类型" has-feedback>
|
||||||
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="优惠券类型">
|
||||||
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="优惠券状态" has-feedback>
|
||||||
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="优惠券状态">
|
||||||
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<!-- <a-button class="ml8" t ype="primary" @click="onAddRole"><a-icon type="plus" />新增</a-button> -->
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
<a-button
|
||||||
|
v-if="exports_can"
|
||||||
|
class="ml8"
|
||||||
|
type="dashed"
|
||||||
|
shape="round"
|
||||||
|
icon="download"
|
||||||
|
@click="exports"/>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<div slot="name">
|
||||||
|
<div>zdx</div>
|
||||||
|
</div>
|
||||||
|
<div slot="phone">
|
||||||
|
<div>14745798066</div>
|
||||||
|
</div>
|
||||||
|
<div slot="time">
|
||||||
|
<div>2023-11-11~2029-11-11</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div slot="type">
|
||||||
|
<div>3瓶优惠券</div>
|
||||||
|
</div>
|
||||||
|
<div slot="status">
|
||||||
|
<div>待使用</div>
|
||||||
|
</div>
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onEdit(record)">查看明细</a>
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
import StockInfo from './widgets/StockInfo.vue'
|
||||||
|
import AddRole from './widgets/AddRole.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '优惠券生成人',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '姓名',
|
||||||
|
scopedSlots: { customRender: 'name' },
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '手机号',
|
||||||
|
scopedSlots: { customRender: 'phone' },
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '使用人',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '姓名',
|
||||||
|
scopedSlots: { customRender: 'name' },
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '手机号',
|
||||||
|
scopedSlots: { customRender: 'phone' },
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '优惠券有效期',
|
||||||
|
scopedSlots: { customRender: 'time' },
|
||||||
|
width: 240,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '优惠券类型',
|
||||||
|
scopedSlots: { customRender: 'type' },
|
||||||
|
width: 140,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '优惠券状态',
|
||||||
|
scopedSlots: { customRender: 'status' },
|
||||||
|
width: 140,
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// title: '操作',
|
||||||
|
// scopedSlots: { customRender: 'actions' },
|
||||||
|
// align: 'center',
|
||||||
|
// width: 160,
|
||||||
|
// fixed: 'right'
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'CouponIndex',
|
||||||
|
components: {
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
Info,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
// this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 新增用户
|
||||||
|
onAddRole () {
|
||||||
|
console.log('add....')
|
||||||
|
const success = {
|
||||||
|
title: '新增用户',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认新增',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
AddRole,
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 修改用户
|
||||||
|
onEdit (item) {
|
||||||
|
const success = {
|
||||||
|
title: '库变详情',
|
||||||
|
width: 1000,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
footer: '',
|
||||||
|
okText: '知道了'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
StockInfo,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
76
src/views/coupon/widgets/AddRole.vue
Normal file
76
src/views/coupon/widgets/AddRole.vue
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="机构状态" style="padding-top:30px;">
|
||||||
|
<a-select
|
||||||
|
v-decorator="[
|
||||||
|
'status',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择机构状态!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择机构状态!`"
|
||||||
|
>
|
||||||
|
<a-select-option v-for="(it) in item.status_two.texts" :key="it.key" :value="it.key+''">
|
||||||
|
{{ it.title }}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'AddRole',
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { changeStatusTwo } from '@/api/organization'
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
export default {
|
export default {
|
||||||
name: 'EditStatus',
|
name: 'EditRole',
|
||||||
props: {
|
props: {
|
||||||
item: {
|
item: {
|
||||||
type: Object,
|
type: Object,
|
||||||
119
src/views/coupon/widgets/StockInfo.vue
Normal file
119
src/views/coupon/widgets/StockInfo.vue
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-descriptions title="用户信息" :column="4">
|
||||||
|
<a-descriptions-item label="姓名" span="2">张冬雪</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="电话" span="2">1810000000</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="身份" span="2">创客</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线上出库 -->
|
||||||
|
<a-descriptions title="线上出库" :column="4">
|
||||||
|
<a-descriptions-item label="线上出库方式" span="2">线上零售、优惠券扣除库存</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="出库数量" span="2">12件</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线下出库 物流 -->
|
||||||
|
<a-descriptions title="线下出库(线上发货)" :column="4">
|
||||||
|
<a-descriptions-item label="出库数量" span="2">12件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货状态" span="2">线上发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递状态" span="2">待发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货时间" span="2">2023-12-12 12:12:12</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货人名" span="2">张冬雪</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货地址" span="3">哈尔滨市香坊区香顺街98号-2-201</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线下出库 自提 -->
|
||||||
|
<a-descriptions title="线下出库(自提)" :column="4">
|
||||||
|
<a-descriptions-item label="自提数量" span="2">12件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货状态" span="2">自提</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="提货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线上 -->
|
||||||
|
<a-descriptions title="入库(线上)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线下 线上发货-->
|
||||||
|
<a-descriptions title="入库(线下发货)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递状态" span="2">待发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货地址" span="3">哈尔滨市香坊区香顺街98号-2-201</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线下 自提-->
|
||||||
|
<a-descriptions title="入库(线下发货)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="自提时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'StockInfo',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -105,7 +105,6 @@ import RealName from '@/components/OrderDetailInfo/RealName.vue'
|
|||||||
import Services from '@/components/OrderDetailInfo/Services.vue'
|
import Services from '@/components/OrderDetailInfo/Services.vue'
|
||||||
import BankList from '@/components/OrderDetailInfo/BankList.vue'
|
import BankList from '@/components/OrderDetailInfo/BankList.vue'
|
||||||
import OrderSteps from '@/components/OrderDetailInfo/OrderSteps.vue'
|
import OrderSteps from '@/components/OrderDetailInfo/OrderSteps.vue'
|
||||||
import SelctAddr from '@/views/address/modules/SelctAddr.vue'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Detail',
|
name: 'Detail',
|
||||||
@@ -254,7 +253,7 @@ export default {
|
|||||||
// 选择邮寄地址操作
|
// 选择邮寄地址操作
|
||||||
selectAddr (order) {
|
selectAddr (order) {
|
||||||
this.$dialog(
|
this.$dialog(
|
||||||
SelctAddr,
|
// SelctAddr,
|
||||||
{
|
{
|
||||||
order,
|
order,
|
||||||
on: {
|
on: {
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
<template>
|
<template>
|
||||||
<a-row :gutter="[24, 24]">
|
<a-row :gutter="[24, 24]">
|
||||||
|
|
||||||
<a-col :lg="10" :md="24" :sm="24" :xl="8" :xxl="7">
|
<!-- <a-col :lg="10" :md="24" :sm="24" :xl="8" :xxl="7">
|
||||||
<UserInfo />
|
<UserInfo />
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
<a-col :lg="14" :md="24" :sm="24" :xl="16" :xxl="17">
|
<a-col :lg="24" :md="24" :sm="24" :xl="24" :xxl="24">
|
||||||
<Count v-if="info!=={}" :info="info" />
|
<Count v-if="info!=={}" :info="info" />
|
||||||
|
</a-col> -->
|
||||||
|
<a-col :lg="24" :md="24" :sm="24" :xl="24" :xxl="24">
|
||||||
|
<!-- <Analysis /> -->
|
||||||
|
首页展示。。
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
</a-row>
|
</a-row>
|
||||||
@@ -16,11 +20,12 @@
|
|||||||
import { getStatistical } from '@/api/statistical'
|
import { getStatistical } from '@/api/statistical'
|
||||||
import UserInfo from '@/views/home/components/UserInfo'
|
import UserInfo from '@/views/home/components/UserInfo'
|
||||||
import Count from '@/views/home/components/Count'
|
import Count from '@/views/home/components/Count'
|
||||||
|
import Analysis from '@/views/home/components/Analysis.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
components: {
|
components: {
|
||||||
UserInfo, Count
|
UserInfo, Count, Analysis
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
|||||||
252
src/views/home/components/Analysis.vue
Normal file
252
src/views/home/components/Analysis.vue
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-row>
|
||||||
|
<a-col :xl="12" :lg="24" :md="24" :sm="24" :xs="24">
|
||||||
|
<a-card class="antd-pro-pages-dashboard-analysis-salesCard" :loading="loading" :bordered="false" title="数据统计" :style="{ height: '100%' }">
|
||||||
|
<div slot="extra" style="height: inherit;">
|
||||||
|
<span class="dashboard-analysis-iconGroup">
|
||||||
|
<a-dropdown :trigger="['click']" placement="bottomLeft">
|
||||||
|
<a-icon type="ellipsis" class="ant-dropdown-link" />
|
||||||
|
<a-menu slot="overlay">
|
||||||
|
<a-menu-item>
|
||||||
|
<a href="javascript:;">当日</a>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item>
|
||||||
|
<a href="javascript:;">当周</a>
|
||||||
|
</a-menu-item>
|
||||||
|
</a-menu>
|
||||||
|
</a-dropdown>
|
||||||
|
</span>
|
||||||
|
<div class="analysis-salesTypeRadio">
|
||||||
|
<a-radio-group defaultValue="a">
|
||||||
|
<a-radio-button value="a">当周</a-radio-button>
|
||||||
|
<a-radio-button value="b">当日</a-radio-button>
|
||||||
|
<a-radio-button value="c">当月</a-radio-button>
|
||||||
|
<a-radio-button value="c">当</a-radio-button>
|
||||||
|
</a-radio-group>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h4>副标题</h4>
|
||||||
|
<div>
|
||||||
|
<v-chart :force-fit="true" :height="405" :data="pieData" :scale="pieScale">
|
||||||
|
<v-tooltip :showTitle="false" dataKey="item*percent" />
|
||||||
|
<v-axis />
|
||||||
|
<v-legend dataKey="item" />
|
||||||
|
<v-pie position="percent" color="item" :vStyle="pieStyle" />
|
||||||
|
<v-coord type="theta" :radius="0.75" :innerRadius="0.6" />
|
||||||
|
</v-chart>
|
||||||
|
</div>
|
||||||
|
</a-card>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import moment from 'moment'
|
||||||
|
import {
|
||||||
|
ChartCard,
|
||||||
|
MiniArea,
|
||||||
|
MiniBar,
|
||||||
|
MiniProgress,
|
||||||
|
RankList,
|
||||||
|
Bar,
|
||||||
|
Trend,
|
||||||
|
NumberInfo,
|
||||||
|
MiniSmoothArea
|
||||||
|
} from '@/components'
|
||||||
|
import { baseMixin } from '@/store/app-mixin'
|
||||||
|
|
||||||
|
const barData = []
|
||||||
|
const barData2 = []
|
||||||
|
for (let i = 0; i < 12; i += 1) {
|
||||||
|
barData.push({
|
||||||
|
x: `${i + 1}月`,
|
||||||
|
y: Math.floor(Math.random() * 1000) + 200
|
||||||
|
})
|
||||||
|
barData2.push({
|
||||||
|
x: `${i + 1}月`,
|
||||||
|
y: Math.floor(Math.random() * 1000) + 200
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const rankList = []
|
||||||
|
for (let i = 0; i < 7; i++) {
|
||||||
|
rankList.push({
|
||||||
|
name: '白鹭岛 ' + (i + 1) + ' 号店',
|
||||||
|
total: 1234.56 - i * 100
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const searchUserData = []
|
||||||
|
for (let i = 0; i < 7; i++) {
|
||||||
|
searchUserData.push({
|
||||||
|
x: moment().add(i, 'days').format('YYYY-MM-DD'),
|
||||||
|
y: Math.ceil(Math.random() * 10)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const searchUserScale = [
|
||||||
|
{
|
||||||
|
dataKey: 'x',
|
||||||
|
alias: '时间'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataKey: 'y',
|
||||||
|
alias: '用户数',
|
||||||
|
min: 0,
|
||||||
|
max: 10
|
||||||
|
}]
|
||||||
|
|
||||||
|
const searchData = []
|
||||||
|
for (let i = 0; i < 50; i += 1) {
|
||||||
|
searchData.push({
|
||||||
|
index: i + 1,
|
||||||
|
keyword: `搜索关键词-${i}`,
|
||||||
|
count: Math.floor(Math.random() * 1000),
|
||||||
|
range: Math.floor(Math.random() * 100),
|
||||||
|
status: Math.floor((Math.random() * 10) % 2)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const DataSet = require('@antv/data-set')
|
||||||
|
|
||||||
|
const sourceData = [
|
||||||
|
{ item: '家用电器', count: 32.2 },
|
||||||
|
{ item: '食用酒水', count: 21 },
|
||||||
|
{ item: '个护健康', count: 17 },
|
||||||
|
{ item: '服饰箱包', count: 13 },
|
||||||
|
{ item: '母婴产品', count: 9 },
|
||||||
|
{ item: '其他', count: 7.8 }
|
||||||
|
]
|
||||||
|
|
||||||
|
const pieScale = [{
|
||||||
|
dataKey: 'percent',
|
||||||
|
min: 0,
|
||||||
|
formatter: '.0%'
|
||||||
|
}]
|
||||||
|
|
||||||
|
const dv = new DataSet.View().source(sourceData)
|
||||||
|
dv.transform({
|
||||||
|
type: 'percent',
|
||||||
|
field: 'count',
|
||||||
|
dimension: 'item',
|
||||||
|
as: 'percent'
|
||||||
|
})
|
||||||
|
const pieData = dv.rows
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Analysis',
|
||||||
|
mixins: [baseMixin],
|
||||||
|
components: {
|
||||||
|
ChartCard,
|
||||||
|
MiniArea,
|
||||||
|
MiniBar,
|
||||||
|
MiniProgress,
|
||||||
|
RankList,
|
||||||
|
Bar,
|
||||||
|
Trend,
|
||||||
|
NumberInfo,
|
||||||
|
MiniSmoothArea
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
loading: true,
|
||||||
|
rankList,
|
||||||
|
|
||||||
|
// 搜索用户数
|
||||||
|
searchUserData,
|
||||||
|
searchUserScale,
|
||||||
|
searchData,
|
||||||
|
|
||||||
|
barData,
|
||||||
|
barData2,
|
||||||
|
|
||||||
|
//
|
||||||
|
pieScale,
|
||||||
|
pieData,
|
||||||
|
sourceData,
|
||||||
|
pieStyle: {
|
||||||
|
stroke: '#fff',
|
||||||
|
lineWidth: 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
searchTableColumns () {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
dataIndex: 'index',
|
||||||
|
title: this.$t('dashboard.analysis.table.rank'),
|
||||||
|
width: 90
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'keyword',
|
||||||
|
title: this.$t('dashboard.analysis.table.search-keyword')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'count',
|
||||||
|
title: this.$t('dashboard.analysis.table.users')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'range',
|
||||||
|
title: this.$t('dashboard.analysis.table.weekly-range'),
|
||||||
|
align: 'right',
|
||||||
|
sorter: (a, b) => a.range - b.range,
|
||||||
|
scopedSlots: { customRender: 'range' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.loading = !this.loading
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.extra-wrapper {
|
||||||
|
line-height: 55px;
|
||||||
|
padding-right: 24px;
|
||||||
|
|
||||||
|
.extra-item {
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 24px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
margin-left: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.antd-pro-pages-dashboard-analysis-twoColLayout {
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
display: block;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.antd-pro-pages-dashboard-analysis-salesCard {
|
||||||
|
height: calc(100% - 24px);
|
||||||
|
|
||||||
|
:deep(.ant-card-head) {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dashboard-analysis-iconGroup {
|
||||||
|
i {
|
||||||
|
margin-left: 16px;
|
||||||
|
color: rgba(0, 0, 0, .45);
|
||||||
|
cursor: pointer;
|
||||||
|
transition: color .32s;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.analysis-salesTypeRadio {
|
||||||
|
position: absolute;
|
||||||
|
right: 54px;
|
||||||
|
bottom: 12px;
|
||||||
|
}</style>
|
||||||
@@ -1,353 +0,0 @@
|
|||||||
<template>
|
|
||||||
<page-header-wrapper @back="() => $router.go(-1)" :title="('订单号: ' + infos.order_no)" v-if="!loading">
|
|
||||||
<!-- 订单详情 -->
|
|
||||||
<template v-slot:content>
|
|
||||||
<a-descriptions size="small">
|
|
||||||
<!-- <a-descriptions-item label="实习顾问"> {{ infos.manager || '-' }} </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="法务助理"> {{ infos.tutor || '-' }} </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="法务老师"> {{ infos.teachers || '-' }} </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="协办人"> {{ infos.transactor || '-' }} </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="下单时间"> {{ infos.created_at || '-' }} </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="提交审核次数" v-if="(infos.logs_sum > 0)"> {{ infos.logs_sum || '-' }} 次 -->
|
|
||||||
<!-- </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="驳回待审总数" v-if="infos.log_count">
|
|
||||||
<a-tooltip>
|
|
||||||
<template slot="title">驳回信息全部都确认后<br />才可以操作初审/复审通过!</template>
|
|
||||||
<span count="">{{ infos.log_count || '-' }}</span>
|
|
||||||
<a-icon type="info-circle" :style="{ fontSize: '15px', color: '#ff4d4f', padding: '0 0 0 6px' }" />
|
|
||||||
</a-tooltip>
|
|
||||||
</a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="订单状态" v-if="infos.status"> {{ infos.status.text || '-' }} </a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="指派签收地址">
|
|
||||||
<span v-if="infos.can&&infos.can.edit_sign_address">
|
|
||||||
<a @click="selectAddr(infos)" class="change">{{ infos.express ==''?'指派':'更改' }}地址 </a>
|
|
||||||
<a @click="$router.push({ name: 'AddressCreate'})" class="plus">( <a-icon type="plus" /> )</a>
|
|
||||||
</span>
|
|
||||||
<span v-else>-</span>
|
|
||||||
</a-descriptions-item> -->
|
|
||||||
<!-- <a-descriptions-item label="资料签收地址" :span="2" v-if="infos.express != ''">{{ infos.express }}</a-descriptions-item>
|
|
||||||
<a-descriptions-item label="查看邮寄进度" v-if="infos.express != ''">
|
|
||||||
<router-link tag="a" target="_blank" :to="{ name: 'DetailLogistics', params: { id: infos.business_order_id } }"> 查看详情 </router-link>
|
|
||||||
</a-descriptions-item> -->
|
|
||||||
</a-descriptions>
|
|
||||||
</template>
|
|
||||||
<!-- 右上角审核功能 -->
|
|
||||||
<template v-slot:extra>
|
|
||||||
<!-- 复审按钮 -->
|
|
||||||
<a-popconfirm
|
|
||||||
v-if="infos.can && infos.can.first && infos.can.recheck"
|
|
||||||
placement="bottomLeft"
|
|
||||||
title="是否确认通过当前审核"
|
|
||||||
ok-text="确认"
|
|
||||||
cancel-text="取消"
|
|
||||||
@confirm="firstPassActions">
|
|
||||||
<a-button :loading="loading" type="primary">复审核通过</a-button>
|
|
||||||
</a-popconfirm>
|
|
||||||
|
|
||||||
<!-- 初审按钮 -->
|
|
||||||
<a-popconfirm
|
|
||||||
v-if="infos.can && infos.can.first && !infos.can.recheck"
|
|
||||||
placement="bottomLeft"
|
|
||||||
title="是否确认通过当前审核"
|
|
||||||
ok-text="确认"
|
|
||||||
cancel-text="取消"
|
|
||||||
@confirm="firstPassActions">
|
|
||||||
<a-button :loading="loading" type="primary">初审核通过</a-button>
|
|
||||||
</a-popconfirm>
|
|
||||||
|
|
||||||
<!-- 法务老师确认按钮展示 -->
|
|
||||||
<a-popconfirm
|
|
||||||
v-if="infos.can && infos.can.teacher_makesure"
|
|
||||||
placement="bottomLeft"
|
|
||||||
title="是否确认通过当前审核"
|
|
||||||
ok-text="确认"
|
|
||||||
cancel-text="取消"
|
|
||||||
@confirm="teachearSure(infos)">
|
|
||||||
<a-button :loading="loading" type="primary">法务老师确认复审</a-button>
|
|
||||||
</a-popconfirm>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 流程进度 -->
|
|
||||||
<OrderSteps :steps="infos.steps" :stepsCount="stepsCount" />
|
|
||||||
|
|
||||||
<!-- 用户实名信息 -->
|
|
||||||
<OrganizationRealName :info="infos.userbase" :orderId="$route.params.orderId + ''" :can="infos.can" />
|
|
||||||
|
|
||||||
<!-- 机构信息 -->
|
|
||||||
<OrganizationInfo :institution="infos.institution" :orderId="$route.params.orderId + ''" :itemId="$route.params.itemId + ''" :can="infos.can" />
|
|
||||||
|
|
||||||
<!-- 跟进记录 -->
|
|
||||||
<OrganizationInfoFollow :orderId="$route.params.orderId + ''" :itemId="$route.params.itemId + ''" :can="infos.can" :userLogs="userLogs" :systemLogs="systemLogs" />
|
|
||||||
|
|
||||||
<!-- 机构信息 -->
|
|
||||||
<OrganizationSchemes :closeScheme="closeScheme" :schemes="schemes" :orderId="$route.params.orderId + ''" :itemId="$route.params.itemId + ''"/>
|
|
||||||
|
|
||||||
<!-- 服务包 -->
|
|
||||||
<OrganizationServiceInfo :orderId="$route.params.orderId + ''" :itemId="$route.params.itemId + ''" :can="infos.can" :services="services" :remark="services.remark || ''" />
|
|
||||||
|
|
||||||
</page-header-wrapper>
|
|
||||||
</template>
|
|
||||||
<script>
|
|
||||||
import {
|
|
||||||
firstPass, secondPass, teachermakesure
|
|
||||||
} from '@/api/order'
|
|
||||||
import {
|
|
||||||
getOriganizationInfo
|
|
||||||
} from '@/api/organization'
|
|
||||||
import OrganizationRealName from '@/components/OrderDetailInfo/OrganizationRealNames.vue'
|
|
||||||
import Services from '@/components/OrderDetailInfo/Services.vue'
|
|
||||||
import BankList from '@/components/OrderDetailInfo/BankList.vue'
|
|
||||||
import OrderSteps from '@/components/OrderDetailInfo/OrderSteps.vue'
|
|
||||||
import SelctAddr from '@/views/address/modules/SelctAddr.vue'
|
|
||||||
import OrganizationInfo from '@/components/OrderDetailInfo/OrganizationBankInfo.vue'
|
|
||||||
import OrganizationInfoFollow from '@/components/OrderDetailInfo/OrganizationInfoFollow.vue'
|
|
||||||
import OrganizationServiceInfo from '@/components/OrderDetailInfo/OrganizationServiceInfo.vue'
|
|
||||||
import OrganizationSchemes from '@/components/OrderDetailInfo/OrganizationSchemes.vue'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'Detail',
|
|
||||||
components: {
|
|
||||||
OrganizationRealName, Services, BankList, OrderSteps, OrganizationInfo, OrganizationInfoFollow, OrganizationServiceInfo, OrganizationSchemes
|
|
||||||
},
|
|
||||||
data () {
|
|
||||||
return {
|
|
||||||
infos: {},
|
|
||||||
systemLogs: [], // 系统展示记录
|
|
||||||
userLogs: [], // 用户展示记录
|
|
||||||
schemes: [], // 预估方案
|
|
||||||
services: {}, // 服务包
|
|
||||||
id: '',
|
|
||||||
loading: false,
|
|
||||||
stepsCount: 0,
|
|
||||||
IdCardVisible: false,
|
|
||||||
closeScheme: {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
activated () {
|
|
||||||
this.getInfo()
|
|
||||||
this.eventBus.$on('updateOrderInfo', (res) => {
|
|
||||||
this.getInfo()
|
|
||||||
})
|
|
||||||
},
|
|
||||||
deactivated () {
|
|
||||||
this.eventBus.$off('updateOrderInfo')
|
|
||||||
},
|
|
||||||
filters: {
|
|
||||||
statusFilter (status) {
|
|
||||||
const statusMap = {
|
|
||||||
'agree': '成功',
|
|
||||||
'reject': '驳回'
|
|
||||||
}
|
|
||||||
return statusMap[status]
|
|
||||||
},
|
|
||||||
statusTypeFilter (type) {
|
|
||||||
const statusTypeMap = {
|
|
||||||
'agree': 'success',
|
|
||||||
'reject': 'error'
|
|
||||||
}
|
|
||||||
return statusTypeMap[type]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
// 老师确认复审
|
|
||||||
teachearSure (item) {
|
|
||||||
teachermakesure(item.business_order_id).then(res => {
|
|
||||||
this.$notification.success({
|
|
||||||
message: '老师确认成功',
|
|
||||||
description: '审核通过'
|
|
||||||
})
|
|
||||||
this.getInfo()
|
|
||||||
}).catch(err => {
|
|
||||||
this.$notification.error(err)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 初审复审操作
|
|
||||||
firstPassActions () {
|
|
||||||
// 复审
|
|
||||||
if (this.infos.can.recheck) {
|
|
||||||
if (this.infos.alert) {
|
|
||||||
const key = `open${Date.now()}`
|
|
||||||
this.$notification.open({
|
|
||||||
message: '温馨提示',
|
|
||||||
description: '该订单存在减免结清业务,请确认是否通过.',
|
|
||||||
btn: h => {
|
|
||||||
return h(
|
|
||||||
'a-button',
|
|
||||||
{
|
|
||||||
props: {
|
|
||||||
type: 'primary',
|
|
||||||
size: 'small'
|
|
||||||
},
|
|
||||||
on: {
|
|
||||||
click: () => {
|
|
||||||
secondPass(this.$route.params.id).then(res => {
|
|
||||||
this.$notification.success({
|
|
||||||
message: '成功',
|
|
||||||
description: '复审核通过'
|
|
||||||
})
|
|
||||||
this.getInfo()
|
|
||||||
this.$notification.close(key)
|
|
||||||
}).catch(err => {
|
|
||||||
if (err.status_code === 400) {
|
|
||||||
this.$notification.error({
|
|
||||||
message: '失败',
|
|
||||||
description: err.message
|
|
||||||
})
|
|
||||||
}
|
|
||||||
this.$notification.close(key)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'确认通过'
|
|
||||||
)
|
|
||||||
},
|
|
||||||
key,
|
|
||||||
onClose: () => { }
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
// 复审
|
|
||||||
secondPass(this.$route.params.id).then(res => {
|
|
||||||
this.$notification.success({
|
|
||||||
message: '成功',
|
|
||||||
description: '复审核通过'
|
|
||||||
})
|
|
||||||
this.getInfo()
|
|
||||||
}).catch(err => {
|
|
||||||
if (err.status_code === 400) {
|
|
||||||
this.$notification.error({
|
|
||||||
message: '失败',
|
|
||||||
description: err.message
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 初审
|
|
||||||
firstPass(this.$route.params.id).then(res => {
|
|
||||||
this.$notification.success({
|
|
||||||
message: '成功',
|
|
||||||
description: '初审核通过'
|
|
||||||
})
|
|
||||||
this.getInfo()
|
|
||||||
}).catch(err => {
|
|
||||||
if (err.status_code === 400) {
|
|
||||||
this.$notification.error({
|
|
||||||
message: '失败',
|
|
||||||
description: err.message
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
// 获取订单信息
|
|
||||||
getInfo () {
|
|
||||||
getOriganizationInfo(this.$route.params.itemId).then(res => {
|
|
||||||
this.infos = res
|
|
||||||
this.userLogs = res.user_logs.reverse() || []
|
|
||||||
this.systemLogs = res.system_logs.reverse() || []
|
|
||||||
this.schemes = res.schemes || []
|
|
||||||
const services = res.service
|
|
||||||
services.parent = res.parent
|
|
||||||
services.remark = res.remark
|
|
||||||
services.center = res.center
|
|
||||||
this.services = services
|
|
||||||
let stepsCount = 0
|
|
||||||
res.steps.map(item => {
|
|
||||||
if (item.status) {
|
|
||||||
stepsCount = stepsCount + 1
|
|
||||||
}
|
|
||||||
})
|
|
||||||
this.stepsCount = stepsCount
|
|
||||||
this.closeScheme = res.closeScheme || '{}'
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 选择邮寄地址操作
|
|
||||||
selectAddr (order) {
|
|
||||||
this.$dialog(
|
|
||||||
SelctAddr,
|
|
||||||
{
|
|
||||||
order,
|
|
||||||
on: {
|
|
||||||
ok: () => {
|
|
||||||
// this.eventBus.$emit('editRealName', { data: true })
|
|
||||||
},
|
|
||||||
cancel: () => {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '指派签收地址',
|
|
||||||
width: 500,
|
|
||||||
maskClosable: true,
|
|
||||||
closable: true,
|
|
||||||
okText: '确认',
|
|
||||||
cancelText: '取消'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="less" scoped>
|
|
||||||
.detail-layout {
|
|
||||||
margin-left: 44px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text {
|
|
||||||
color: rgba(0, 0, 0, .45);
|
|
||||||
}
|
|
||||||
|
|
||||||
.heading {
|
|
||||||
color: rgba(0, 0, 0, .85);
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no-data {
|
|
||||||
color: rgba(0, 0, 0, .25);
|
|
||||||
text-align: center;
|
|
||||||
line-height: 64px;
|
|
||||||
font-size: 16px;
|
|
||||||
|
|
||||||
i {
|
|
||||||
font-size: 24px;
|
|
||||||
margin-right: 16px;
|
|
||||||
position: relative;
|
|
||||||
top: 3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile {
|
|
||||||
.detail-layout {
|
|
||||||
margin-left: unset;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-list {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active {
|
|
||||||
font-size: 10px;
|
|
||||||
color: rgb(9, 100, 237);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.plus {
|
|
||||||
padding-top: 8px;
|
|
||||||
padding-left: 8px;
|
|
||||||
color: rgb(9, 100, 237);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.change {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.count {
|
|
||||||
color: #ff4d4f;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -28,15 +28,15 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="6" :sm="24">
|
<a-col :md="6" :sm="24">
|
||||||
<a-form-item label="用户手机号">
|
<a-form-item label="用户手机">
|
||||||
<a-input v-model="userQueryParam.username" placeholder="" />
|
<a-input v-model="userQueryParam.username" placeholder="" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
||||||
|
<a-button class="ml8" type="primary" @click="addPromissions">新增</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
class="ml8"
|
class="ml8"
|
||||||
@click="() => ((this.queryParam = { state: 'role' }), $refs.table.refresh(true))">重置</a-button>
|
@click="() => ((this.queryParam = { state: 'role' }), $refs.table.refresh(true))">重置</a-button>
|
||||||
<a-button class="ml8" type="primary" @click="addPromissions">新增</a-button>
|
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
</div>
|
</div>
|
||||||
@@ -246,7 +246,7 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '新增权限',
|
title: '新增用户',
|
||||||
width: 500,
|
width: 500,
|
||||||
maskClosable: true,
|
maskClosable: true,
|
||||||
closable: true,
|
closable: true,
|
||||||
|
|||||||
@@ -1,46 +1,18 @@
|
|||||||
<!-- 驳回原因客户姓名输入 -->
|
<!-- 驳回原因客户姓名输入 -->
|
||||||
<template>
|
<template>
|
||||||
<a-form ref="form" v-bind="formItemLayout" :form="form">
|
<a-form ref="form" v-bind="formItemLayout" :form="form">
|
||||||
<a-form-item label="新增角色权限">
|
<a-form-item label="登录账号">
|
||||||
<a-select
|
<a-input
|
||||||
|
:maxLength="11"
|
||||||
v-decorator="[
|
v-decorator="[
|
||||||
'role',
|
'username',
|
||||||
{
|
{
|
||||||
rules: [
|
rules: [
|
||||||
{ required: true, message: '请选择添加记录类型!', type: 'string' },
|
{ required: true, message: '请输入添加登录账号!', type: 'string' },
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]"
|
]"
|
||||||
@change="handleRoleChange"
|
placeholder="请输入添加登录账号!" />
|
||||||
placeholder="请选择添加记录类型">
|
|
||||||
<a-select-option
|
|
||||||
:value="item.key+''"
|
|
||||||
v-for="item in permission"
|
|
||||||
:key="item.key">
|
|
||||||
<a-icon
|
|
||||||
type="user"
|
|
||||||
:style="{ fontSize: '14px', color: '#1890ff', padding: '6px 16px 6px 0' }" />{{ item.title }}</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="选择上级用户">
|
|
||||||
<a-select
|
|
||||||
v-decorator="[
|
|
||||||
'parent_id',
|
|
||||||
{
|
|
||||||
rules: [
|
|
||||||
{ required: true, message: '选择上级用户!', type: 'string' },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]"
|
|
||||||
placeholder="选择上级用户">
|
|
||||||
<a-select-option
|
|
||||||
:value="item.staff_id + ''"
|
|
||||||
v-for="item in users"
|
|
||||||
:key="item.staff_id">
|
|
||||||
<a-icon
|
|
||||||
type="user"
|
|
||||||
:style="{ fontSize: '14px', color: '#1890ff', padding: '6px 16px 6px 0' }" />{{ item.name }}({{ item.type }}){{ item.username }}</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="用户姓名">
|
<a-form-item label="用户姓名">
|
||||||
<a-input
|
<a-input
|
||||||
@@ -55,19 +27,6 @@
|
|||||||
]"
|
]"
|
||||||
placeholder="请输入添加姓名!" />
|
placeholder="请输入添加姓名!" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="手机号码">
|
|
||||||
<a-input
|
|
||||||
:maxLength="11"
|
|
||||||
v-decorator="[
|
|
||||||
'username',
|
|
||||||
{
|
|
||||||
rules: [
|
|
||||||
{ required: true, message: '请输入添加手机号码!', type: 'string' },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]"
|
|
||||||
placeholder="请输入添加手机号码!" />
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="初始密码">
|
<a-form-item label="初始密码">
|
||||||
<a-input
|
<a-input
|
||||||
:maxLength="6"
|
:maxLength="6"
|
||||||
|
|||||||
@@ -1,45 +1,6 @@
|
|||||||
<!-- 驳回原因客户姓名输入 -->
|
<!-- 驳回原因客户姓名输入 -->
|
||||||
<template>
|
<template>
|
||||||
<a-form ref="form" v-bind="formItemLayout" :form="form">
|
<a-form ref="form" v-bind="formItemLayout" :form="form">
|
||||||
<a-form-item label="角色权限">
|
|
||||||
<a-select
|
|
||||||
v-decorator="[
|
|
||||||
'role',
|
|
||||||
{
|
|
||||||
rules: [
|
|
||||||
{ required: true, message: '请选择添加记录类型!', type: 'string' },
|
|
||||||
],
|
|
||||||
initialValue: defaultRoleName
|
|
||||||
},
|
|
||||||
]"
|
|
||||||
@change="handleRoleChange"
|
|
||||||
placeholder="请选择添加记录类型">
|
|
||||||
<a-select-option :value="it.key + ''" v-for="it in permissions" :key="it.key">
|
|
||||||
<a-icon
|
|
||||||
type="user"
|
|
||||||
:style="{ fontSize: '14px', color: '#1890ff', padding: '6px 16px 6px 0' }" />{{ it.title }}</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="上级用户">
|
|
||||||
<a-select
|
|
||||||
v-decorator="[
|
|
||||||
'parent_id',
|
|
||||||
{
|
|
||||||
rules: [
|
|
||||||
{ required: true, message: '选择上级用户!', type: 'string' },
|
|
||||||
],
|
|
||||||
initialValue: defaultParentsName
|
|
||||||
}
|
|
||||||
]"
|
|
||||||
placeholder="选择上级用户">
|
|
||||||
<a-select-option :value="its.staff_id + ''" v-for="its in users" :key="its.staff_id">
|
|
||||||
<a-icon
|
|
||||||
type="user"
|
|
||||||
:style="{ fontSize: '14px', color: '#1890ff', padding: '6px 16px 6px 0' }" />
|
|
||||||
{{ its.name }}({{ its.type }}){{ its.username }}
|
|
||||||
</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="用户姓名">
|
<a-form-item label="用户姓名">
|
||||||
<a-input
|
<a-input
|
||||||
:rows="4"
|
:rows="4"
|
||||||
|
|||||||
@@ -1,291 +0,0 @@
|
|||||||
|
|
||||||
<template>
|
|
||||||
<page-header-wrapper
|
|
||||||
:tab-active-key="tabActiveKey"
|
|
||||||
:tab-change="handleTabChange"
|
|
||||||
:tab-list="tabsList"
|
|
||||||
:title="pageTitle"
|
|
||||||
>
|
|
||||||
<!-- <template v-slot:content>
|
|
||||||
<a-descriptions size="small">
|
|
||||||
<a-descriptions-item :label="item.tab" v-for="item in tabList" :key="item.key" >
|
|
||||||
<div><a style="font-size:18px;font-weight:600;">{{ item.count }}</a> 单</div>
|
|
||||||
</a-descriptions-item>
|
|
||||||
</a-descriptions>
|
|
||||||
</template> -->
|
|
||||||
<a-card :bordered="false">
|
|
||||||
<div class="table-page-search-wrapper">
|
|
||||||
<a-form layout="inline">
|
|
||||||
<a-row :gutter="48">
|
|
||||||
<a-col :md="6" :sm="24">
|
|
||||||
<a-form-item label="订单编号">
|
|
||||||
<a-input v-model="queryParam.order_no" placeholder="" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :md="6" :sm="24">
|
|
||||||
<a-form-item label="申请用户">
|
|
||||||
<a-input v-model="queryParam.nickname" placeholder="" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :md="6" :sm="24">
|
|
||||||
<a-form-item label="法务老师">
|
|
||||||
<a-input v-model="queryParam.teacher" placeholder="" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
|
|
||||||
<a-button class="ml8" @click="() => ((this.queryParam = {state: tabActiveKey}), $refs.table.refresh(true))">重置</a-button>
|
|
||||||
<!-- <DeriveButton :queryParam="queryParam" :listCount="listCount" /> -->
|
|
||||||
</a-row>
|
|
||||||
</a-form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<s-table
|
|
||||||
ref="table"
|
|
||||||
:columns="columns"
|
|
||||||
:data="loadData"
|
|
||||||
:rowKey="(row) => row.business_order_id"
|
|
||||||
showPagination="auto"
|
|
||||||
bordered
|
|
||||||
size="default"
|
|
||||||
:scroll="{ x: 1500, y: 1000 }"
|
|
||||||
>
|
|
||||||
<!-- 订单单号 -->
|
|
||||||
<span slot="order_no" slot-scope="text, record">
|
|
||||||
<router-link tag="a" target="_blank" :to="{ name: 'Detail', params: {id: record.business_order_id } }">
|
|
||||||
{{ record.order_no }}
|
|
||||||
</router-link>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<!-- 申请用户 实习顾问 法务老师 -->
|
|
||||||
<div slot="user" slot-scope="text, record">
|
|
||||||
<user-info :info="{...record.user,sex:record.cert.sex}" />
|
|
||||||
</div>
|
|
||||||
<div slot="transactor" slot-scope="text, record">
|
|
||||||
{{ record.transactor != '' ?record.transactor:'--' }}
|
|
||||||
</div>
|
|
||||||
<div slot="teachers" slot-scope="text, record">
|
|
||||||
{{ record.teachers != '' ? record.teachers : '--' }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 业务类型 -->
|
|
||||||
<span slot="one" slot-scope="text, record"><a> {{ record.item_type.one>0?'x '+record.item_type.one :'--' }}</a></span>
|
|
||||||
<span slot="two" slot-scope="text, record"><a> {{ record.item_type.two>0?'x '+record.item_type.two :'--' }}</a></span>
|
|
||||||
<span slot="price" slot-scope="text, record">¥ <span>{{ record.price }}</span></span>
|
|
||||||
<span slot="total" slot-scope="text, record">¥<span>{{ record.total }}</span></span>
|
|
||||||
|
|
||||||
<!-- 订单状态 -->
|
|
||||||
<span slot="status" slot-scope="text, record">
|
|
||||||
<a-tag color="blue">{{ record.status.text }}</a-tag>
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<!-- 操作 -->
|
|
||||||
<div slot="actions" slot-scope="text, record">
|
|
||||||
<router-link tag="a" target="_blank" :to="{ name: 'Detail', params: { id: record.business_order_id } }"> 查看详情 </router-link>
|
|
||||||
<span v-if="(record.can && record.can.teacher_makesure && queryParam.state === 'tea_make')">
|
|
||||||
<a-divider type="vertical" />
|
|
||||||
<a-popconfirm
|
|
||||||
placement="bottomLeft"
|
|
||||||
title="是否确认通过审核"
|
|
||||||
ok-text="确认"
|
|
||||||
cancel-text="取消"
|
|
||||||
@confirm="teachearSure(record)"
|
|
||||||
><a> 通过审核 </a></a-popconfirm>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</s-table>
|
|
||||||
</a-card>
|
|
||||||
</page-header-wrapper>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { STable, UserInfo } from '@/components'
|
|
||||||
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
|
||||||
import {
|
|
||||||
getOrderList,
|
|
||||||
teachermakesure,
|
|
||||||
getOrdersCount
|
|
||||||
} from '@/api/order'
|
|
||||||
|
|
||||||
const columns = [
|
|
||||||
{
|
|
||||||
title: '订单号',
|
|
||||||
dataIndex: 'order_no',
|
|
||||||
scopedSlots: { customRender: 'order_no' },
|
|
||||||
align: 'center',
|
|
||||||
width: 160,
|
|
||||||
fixed: 'left'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '申请用户',
|
|
||||||
dataIndex: 'user',
|
|
||||||
key: 'user',
|
|
||||||
scopedSlots: { customRender: 'user' },
|
|
||||||
width: 180,
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '实习顾问',
|
|
||||||
dataIndex: 'manager',
|
|
||||||
key: 'manager',
|
|
||||||
scopedSlots: { customRender: 'manager' },
|
|
||||||
align: 'center',
|
|
||||||
width: 120
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '法务老师',
|
|
||||||
dataIndex: 'teachers',
|
|
||||||
key: 'teachers',
|
|
||||||
scopedSlots: { customRender: 'teachers' },
|
|
||||||
align: 'center',
|
|
||||||
width: 120
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '业务类型',
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
title: '信用卡业务',
|
|
||||||
dataIndex: 'one',
|
|
||||||
key: 'one',
|
|
||||||
scopedSlots: { customRender: 'one' },
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '网贷业务',
|
|
||||||
dataIndex: 'two',
|
|
||||||
scopedSlots: { customRender: 'two' },
|
|
||||||
key: 'two',
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '总申请额度',
|
|
||||||
dataIndex: 'price',
|
|
||||||
scopedSlots: { customRender: 'price' },
|
|
||||||
key: 'price',
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '服务包总金额',
|
|
||||||
dataIndex: 'total',
|
|
||||||
scopedSlots: { customRender: 'total' },
|
|
||||||
key: 'total',
|
|
||||||
align: 'center'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '订单状态',
|
|
||||||
dataIndex: 'status',
|
|
||||||
scopedSlots: { customRender: 'status' },
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '下单时间',
|
|
||||||
dataIndex: 'created_at',
|
|
||||||
align: 'center',
|
|
||||||
sorter: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '操作',
|
|
||||||
scopedSlots: { customRender: 'actions' },
|
|
||||||
align: 'center',
|
|
||||||
width: 180,
|
|
||||||
fixed: 'right'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
export default {
|
|
||||||
name: 'Index',
|
|
||||||
components: {
|
|
||||||
STable,
|
|
||||||
UserInfo,
|
|
||||||
DeriveButton
|
|
||||||
},
|
|
||||||
data () {
|
|
||||||
this.columns = columns
|
|
||||||
return {
|
|
||||||
// diff 待补价 | first 初审 | firstcheck 修改 | tea_make 待老师确认
|
|
||||||
tabList: [
|
|
||||||
{ key: 'first', tab: '初审中' },
|
|
||||||
{ key: 'firstcheck', tab: '待修改' },
|
|
||||||
{ key: 'diff', tab: '待补价' }
|
|
||||||
// { key: 'tea_make', tab: '待老师确认' }
|
|
||||||
],
|
|
||||||
tabsList: [],
|
|
||||||
tabActiveKey: 'first',
|
|
||||||
pageTitle: '初审中',
|
|
||||||
dataList: [],
|
|
||||||
queryParam: {
|
|
||||||
state: 'first',
|
|
||||||
order_no: '',
|
|
||||||
nickname: '',
|
|
||||||
teacher: ''
|
|
||||||
},
|
|
||||||
listCount: 0,
|
|
||||||
loadData: (parameter) => {
|
|
||||||
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
|
||||||
getOrderList(requestParameters).then(res => {
|
|
||||||
this.listCount = res.data.length
|
|
||||||
})
|
|
||||||
return getOrderList(requestParameters)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
$route (to, from) {
|
|
||||||
if (
|
|
||||||
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
|
||||||
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
|
||||||
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
|
||||||
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
|
||||||
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
|
||||||
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
|
||||||
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
|
||||||
) {
|
|
||||||
this.$refs.table.loadData()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
activated () {
|
|
||||||
getOrdersCount({ state: this.tabList }).then(res => {
|
|
||||||
this.tabsList = []
|
|
||||||
res.map(item => {
|
|
||||||
item.tab = item.tab + '(' + item.count + ')'
|
|
||||||
this.tabsList.push(item)
|
|
||||||
})
|
|
||||||
}).catch(err => {
|
|
||||||
console.log(err)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
teachearSure (item) {
|
|
||||||
teachermakesure(item.business_order_id).then(res => {
|
|
||||||
this.$notification.success({
|
|
||||||
message: '成功',
|
|
||||||
description: '审核通过'
|
|
||||||
})
|
|
||||||
this.$refs.table.loadData()
|
|
||||||
}).catch(err => {
|
|
||||||
this.$notification.error(err)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
logistic (order) {
|
|
||||||
this.$router.push({
|
|
||||||
name: 'OrderLogistic',
|
|
||||||
params: { orderId: order.order_no }
|
|
||||||
})
|
|
||||||
},
|
|
||||||
handleTabChange (key) {
|
|
||||||
this.tabActiveKey = key
|
|
||||||
this.queryParam.state = key
|
|
||||||
this.$refs.table.refresh(true)
|
|
||||||
this.pageTitle = this.tabList.find((item) => item.key === key).tab
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="less" scoped>
|
|
||||||
.ml8 {
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
359
src/views/sales/Offline.vue
Normal file
359
src/views/sales/Offline.vue
Normal file
@@ -0,0 +1,359 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<!-- 线下出货列表 -->
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="订单号码">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="订单号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="手机号码">
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="购买人手机号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="真实姓名">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="购买人真实姓名" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="发货数量" has-feedback>
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="发货数量" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="快递类型" has-feedback>
|
||||||
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="快递类型">
|
||||||
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="快递单号">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="快递单号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<a-button class="ml8" t ype="primary" @click="onAddRole"><a-icon type="plus" />新增线下出货</a-button>
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
<a-button
|
||||||
|
v-if="exports_can"
|
||||||
|
class="ml8"
|
||||||
|
type="dashed"
|
||||||
|
shape="round"
|
||||||
|
icon="download"
|
||||||
|
@click="exports"/>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<!-- 申请用户 实习顾问 法务老师 -->
|
||||||
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
|
<div>{{ record.user }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 创建时间 -->
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onInfo(record)">查看详情</a>
|
||||||
|
<!-- <a-divider type="vertical" /> -->
|
||||||
|
<!-- <a class="ant-dropdown-link" @click="onEdit(record)">发货</a> -->
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
import EditSend from './widgets/EditSend.vue'
|
||||||
|
import StockInfo from './widgets/StockInfo.vue'
|
||||||
|
import AddOffline from './widgets/AddOffline.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '订单号',
|
||||||
|
dataIndex: 'user22',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '收货人',
|
||||||
|
dataIndex: 'created_at',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '发货数量',
|
||||||
|
dataIndex: 'created_at1',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '订单信息',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '金额',
|
||||||
|
dataIndex: 'name1',
|
||||||
|
key: 'name1',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
scopedSlots: { customRender: 'actions' },
|
||||||
|
align: 'center',
|
||||||
|
width: 160,
|
||||||
|
fixed: 'right'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Online',
|
||||||
|
components: {
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
Info,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
// this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 新增用户
|
||||||
|
onAddRole () {
|
||||||
|
console.log('add....')
|
||||||
|
const success = {
|
||||||
|
title: '新增用户',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认新增',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
AddOffline,
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 查看详情
|
||||||
|
onInfo (item) {
|
||||||
|
const success = {
|
||||||
|
title: '立即发货',
|
||||||
|
width: 1000,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
footer: '',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
StockInfo,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 发货
|
||||||
|
onEdit (item) {
|
||||||
|
console.log(item)
|
||||||
|
const success = {
|
||||||
|
title: '立即发货',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认发货',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
EditSend,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
335
src/views/sales/OnStock.vue
Normal file
335
src/views/sales/OnStock.vue
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<!-- 线上进货 -->
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="订单号码">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="订单号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="手机号码">
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="购买人手机号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="真实姓名">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="购买人真实姓名" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="进货数量" has-feedback>
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="发货数量" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="快递类型" has-feedback>
|
||||||
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="快递类型">
|
||||||
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="快递单号">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="快递单号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<!-- <a-button class="ml8" t ype="primary" @click="onAddRole"><a-icon type="plus" />新增</a-button> -->
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
<a-button
|
||||||
|
v-if="exports_can"
|
||||||
|
class="ml8"
|
||||||
|
type="dashed"
|
||||||
|
shape="round"
|
||||||
|
icon="download"
|
||||||
|
@click="exports"/>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<!-- 申请用户 实习顾问 法务老师 -->
|
||||||
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
|
<div>{{ record.user }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 创建时间 -->
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onInfo(record)">查看详情</a>
|
||||||
|
<!-- <a-divider type="vertical" /> -->
|
||||||
|
<!-- <a class="ant-dropdown-link" @click="onEdit(record)">发货</a> -->
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
import EditSend from './widgets/EditSend.vue'
|
||||||
|
import StockInfo from './widgets/StockInfo.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '订单号',
|
||||||
|
dataIndex: 'order_no',
|
||||||
|
align: 'center',
|
||||||
|
width: 160
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '收货人',
|
||||||
|
dataIndex: 'tutor',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '进货数量',
|
||||||
|
dataIndex: 'order_id',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '订单信息',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
key: 'status',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '金额',
|
||||||
|
dataIndex: 'price',
|
||||||
|
key: 'price',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
scopedSlots: { customRender: 'actions' },
|
||||||
|
align: 'center',
|
||||||
|
width: 160,
|
||||||
|
fixed: 'right'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Online',
|
||||||
|
components: {
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
Info,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
// this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查看详情
|
||||||
|
onInfo (item) {
|
||||||
|
const success = {
|
||||||
|
title: '立即发货',
|
||||||
|
width: 1000,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
footer: '',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
StockInfo,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 发货
|
||||||
|
onEdit (item) {
|
||||||
|
console.log(item)
|
||||||
|
const success = {
|
||||||
|
title: '立即发货',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认发货',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
EditSend,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
335
src/views/sales/Online.vue
Normal file
335
src/views/sales/Online.vue
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<!-- 线上零售 -->
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="订单号码">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="订单号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="手机号码">
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="购买人手机号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="真实姓名">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="购买人真实姓名" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="发货数量" has-feedback>
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="发货数量" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="快递类型" has-feedback>
|
||||||
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="快递类型">
|
||||||
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="快递单号">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="快递单号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<!-- <a-button class="ml8" type="primary" @click="onAdd">新增</a-button> -->
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
<a-button
|
||||||
|
v-if="exports_can"
|
||||||
|
class="ml8"
|
||||||
|
type="dashed"
|
||||||
|
shape="round"
|
||||||
|
icon="download"
|
||||||
|
@click="exports"/>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<!-- 申请用户 实习顾问 法务老师 -->
|
||||||
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
|
<div>{{ record.user }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 创建时间 -->
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onInfo(record)">查看详情</a>
|
||||||
|
<!-- <a-divider type="vertical" /> -->
|
||||||
|
<!-- <a class="ant-dropdown-link" @click="onEdit(record)">发货</a> -->
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
import EditSend from './widgets/EditSend.vue'
|
||||||
|
import StockInfo from './widgets/StockInfo.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '订单号',
|
||||||
|
dataIndex: 'order_no',
|
||||||
|
align: 'center',
|
||||||
|
width: 160
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '收货人',
|
||||||
|
dataIndex: 'tutor',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '进货数量',
|
||||||
|
dataIndex: 'order_id',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '订单信息',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
dataIndex: 'status',
|
||||||
|
key: 'status',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '金额',
|
||||||
|
dataIndex: 'price',
|
||||||
|
key: 'price',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
scopedSlots: { customRender: 'actions' },
|
||||||
|
align: 'center',
|
||||||
|
width: 160,
|
||||||
|
fixed: 'right'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Online',
|
||||||
|
components: {
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
Info,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
// this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 查看详情
|
||||||
|
onInfo (item) {
|
||||||
|
const success = {
|
||||||
|
title: '立即发货',
|
||||||
|
width: 1000,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
footer: '',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
StockInfo,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 发货
|
||||||
|
onEdit (item) {
|
||||||
|
console.log(item)
|
||||||
|
const success = {
|
||||||
|
title: '立即发货',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认发货',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
EditSend,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
173
src/views/sales/widgets/AddOffline.vue
Normal file
173
src/views/sales/widgets/AddOffline.vue
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="收货人名">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'no1',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择收货人名!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择收货人名!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="收货地址">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'no2',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择收货地址!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择收货地址!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="购买数量">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'no3',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择购买数量!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择购买数量!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="发货方式">
|
||||||
|
<a-select
|
||||||
|
@change="typeChange"
|
||||||
|
v-decorator="[
|
||||||
|
'status',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择发货方式!`, type: 'string' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择发货方式!`">
|
||||||
|
<a-select-option value="online">线上发货</a-select-option>
|
||||||
|
<a-select-option value="offline">线下自提</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="快递类型" v-if="currentType === 'online'">
|
||||||
|
<a-select
|
||||||
|
v-decorator="[
|
||||||
|
'tpe',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择快递类型!`, type: 'string' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择快递类型!`">
|
||||||
|
<a-select-option value="shunfeng">顺丰速递</a-select-option>
|
||||||
|
<a-select-option value="yunda">韵达快递</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="快递单号" v-if="currentType === 'online'">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'no',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择快递单号!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择快递单号!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
label="自提时间"
|
||||||
|
v-if="currentType === 'offline'"
|
||||||
|
>
|
||||||
|
<a-date-picker
|
||||||
|
v-decorator="[
|
||||||
|
'time',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择自提时间!` },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择自提时间!`"
|
||||||
|
style="width: 100%" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
import moment from 'moment'
|
||||||
|
export default {
|
||||||
|
name: 'EditSend',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false,
|
||||||
|
currentType: ''
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
console.log(moment(values.time).format('YYYY-MM-DD'))
|
||||||
|
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 切换发货方式(线上发货 自提发货)
|
||||||
|
typeChange (e) {
|
||||||
|
this.currentType = e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
126
src/views/sales/widgets/EditSend.vue
Normal file
126
src/views/sales/widgets/EditSend.vue
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="发货类型">
|
||||||
|
<a-select
|
||||||
|
@change="typeChange"
|
||||||
|
v-decorator="[
|
||||||
|
'status',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择发货类型!`, type: 'string' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择发货类型!`">
|
||||||
|
<a-select-option value="online">线上发货</a-select-option>
|
||||||
|
<a-select-option value="offline">线下自提</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="快递类型" v-if="currentType === 'online'">
|
||||||
|
<a-select
|
||||||
|
v-decorator="[
|
||||||
|
'tpe',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择快递类型!`, type: 'string' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择快递类型!`">
|
||||||
|
<a-select-option value="shunfeng">顺丰速递</a-select-option>
|
||||||
|
<a-select-option value="yunda">韵达快递</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="快递单号" v-if="currentType === 'online'">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'no',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择快递单号!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择快递单号!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="原因">
|
||||||
|
<a-textarea
|
||||||
|
:rows="4"
|
||||||
|
v-decorator="[
|
||||||
|
'remark',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: '请输入详细的添加原因!', type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
placeholder="请输入详细的添加补差价原因" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'EditSend',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false,
|
||||||
|
currentType: ''
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
typeChange (e) {
|
||||||
|
this.currentType = e
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
119
src/views/sales/widgets/StockInfo.vue
Normal file
119
src/views/sales/widgets/StockInfo.vue
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-descriptions title="用户信息" :column="4">
|
||||||
|
<a-descriptions-item label="姓名" span="2">张冬雪</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="电话" span="2">1810000000</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="身份" span="2">创客</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线上出库 -->
|
||||||
|
<a-descriptions title="线上出库" :column="4">
|
||||||
|
<a-descriptions-item label="线上出库方式" span="2">线上零售、优惠券扣除库存</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="出库数量" span="2">12件</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线下出库 物流 -->
|
||||||
|
<a-descriptions title="线下出库(线上发货)" :column="4">
|
||||||
|
<a-descriptions-item label="出库数量" span="2">12件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货状态" span="2">线上发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递状态" span="2">待发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货时间" span="2">2023-12-12 12:12:12</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货人名" span="2">张冬雪</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货地址" span="3">哈尔滨市香坊区香顺街98号-2-201</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线下出库 自提 -->
|
||||||
|
<a-descriptions title="线下出库(自提)" :column="4">
|
||||||
|
<a-descriptions-item label="自提数量" span="2">12件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货状态" span="2">自提</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="提货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线上 -->
|
||||||
|
<a-descriptions title="入库(线上)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线下 线上发货-->
|
||||||
|
<a-descriptions title="入库(线下发货)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递状态" span="2">待发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货地址" span="3">哈尔滨市香坊区香顺街98号-2-201</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线下 自提-->
|
||||||
|
<a-descriptions title="入库(线下发货)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="自提时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'StockInfo',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -6,50 +6,36 @@
|
|||||||
<a-form layout="inline">
|
<a-form layout="inline">
|
||||||
<a-row :gutter="48">
|
<a-row :gutter="48">
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-form-item label="订单号码">
|
<a-form-item label="用户昵称">
|
||||||
<a-input v-model="queryParam.order_no" placeholder="订单号码" />
|
<a-input v-model="queryParam.item_id" placeholder="用户昵称" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-form-item label="机构号码">
|
<a-form-item label="用户手机">
|
||||||
<a-input v-model="queryParam.item_id" placeholder="机构号码" />
|
<a-input v-model="queryParam.order_no" placeholder="用户手机" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-form-item label="机构名称">
|
<a-form-item label="顶点账号">
|
||||||
<a-input v-model="queryParam.institution" placeholder="机构名称" />
|
<a-input v-model="queryParam.item_id" placeholder="顶点账号" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-form-item label="客户姓名">
|
<a-form-item label="身份筛选" has-feedback>
|
||||||
<a-input v-model="queryParam.nickname" placeholder="客户姓名" />
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="身份筛选">
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :md="8" :sm="24">
|
|
||||||
<a-form-item label="业务类型" has-feedback>
|
|
||||||
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="业务类型">
|
|
||||||
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-form-item label="机构状态">
|
<a-form-item label="库变类型" has-feedback>
|
||||||
<a-select v-model="queryParam.status" @change="onOrganizationChange" placeholder="机构状态">
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="库变类型">
|
||||||
<a-select-option v-for="item in statusArray" :key="item.key" :value="item.key">{{ item.value }}</a-select-option>
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- <a-col :md="8" :sm="24" v-if="searchType">
|
|
||||||
<a-form-item label="处理状态" >
|
|
||||||
<a-select v-model="queryParam.dispose" placeholder="处理状态" @change="onDisposeChange">
|
|
||||||
<a-select-option value="1">Option 1</a-select-option>
|
|
||||||
<a-select-option value="2">Option 2</a-select-option>
|
|
||||||
<a-select-option value="3">Option 3</a-select-option>
|
|
||||||
</a-select>
|
|
||||||
</a-form-item>
|
|
||||||
</a-col> -->
|
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-form-item label="下单时间">
|
<a-form-item label="入库时间">
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
:placeholder="['开始日期', '结束日期']"
|
:placeholder="['开始日期', '结束日期']"
|
||||||
v-model="queryParam.paid_at"
|
v-model="queryParam.paid_at"
|
||||||
@@ -57,26 +43,9 @@
|
|||||||
@change="onCreateChange" />
|
@change="onCreateChange" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :md="8" :sm="24">
|
|
||||||
<a-form-item label="执行时间">
|
|
||||||
<a-range-picker
|
|
||||||
:placeholder="['开始日期', '结束日期']"
|
|
||||||
v-model="queryParam.audit_at"
|
|
||||||
:ranges="{ Today: [moment(), moment()], 'This Month': [moment(), moment().endOf('month')] }"
|
|
||||||
@change="onCarryChange" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :md="8" :sm="24">
|
|
||||||
<a-form-item label="结案时间">
|
|
||||||
<a-range-picker
|
|
||||||
:placeholder="['开始日期', '结束日期']"
|
|
||||||
v-model="queryParam.settle_at"
|
|
||||||
:ranges="{ Today: [moment(), moment()], 'This Month': [moment(), moment().endOf('month')] }"
|
|
||||||
@change="onSettleChange" />
|
|
||||||
</a-form-item>
|
|
||||||
</a-col>
|
|
||||||
<a-col :md="8" :sm="24">
|
<a-col :md="8" :sm="24">
|
||||||
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<!-- <a-button class="ml8" t ype="primary" @click="onAddRole"><a-icon type="plus" />新增</a-button> -->
|
||||||
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
<a-button
|
<a-button
|
||||||
v-if="exports_can"
|
v-if="exports_can"
|
||||||
@@ -101,48 +70,16 @@
|
|||||||
showPagination="auto"
|
showPagination="auto"
|
||||||
bordered
|
bordered
|
||||||
size="default"
|
size="default"
|
||||||
:scroll="{ x: 1500, y: 1000 }">
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
<!-- 机构详情 -->
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
<span slot="order_no" slot-scope="text, record">
|
<div>{{ record.user }}</div>
|
||||||
<router-link tag="a" target="_blank" :to="{ name: 'OrganizationDetail', params: { orderId: record.order_id, itemId: record.order_item_id }}">
|
</div>
|
||||||
{{ record.order_no }}
|
|
||||||
</router-link>
|
|
||||||
</span>
|
|
||||||
<!-- 申请用户 实习顾问 法务老师 -->
|
|
||||||
<div slot="user" slot-scope="text, record"><user-info :info="{ ...record.user, sex: record.cert.sex }" /></div>
|
|
||||||
<div slot="transactor" slot-scope="text, record">{{ record.transactor != '' ? record.transactor : '--' }}</div>
|
|
||||||
<div slot="teachers" slot-scope="text, record">{{ record.teachers != '' ? record.teachers : '--' }}</div>
|
|
||||||
<span slot="institution_name" slot-scope="text, record">{{ record.institution_name || '-' }}</span>
|
|
||||||
<!-- 业务类型 -->
|
|
||||||
<span slot="price" slot-scope="text, record">¥ <span>{{ record.price }}</span></span>
|
|
||||||
<!-- 机构状态 -->
|
|
||||||
<span slot="status" slot-scope="text, record"><a-tag color="blue">{{ record.status }}</a-tag></span>
|
|
||||||
<!-- 机构状态2 -->
|
|
||||||
<span slot="status_two_text" slot-scope="text, record">
|
|
||||||
<a-tag color="#87d068">{{ record.status_two_text }}</a-tag>
|
|
||||||
<a-icon v-if="record.status_two.can_set" type="edit" :style="{ fontSize: '16px', color: '#87d068' }" @click="onEditStatus(record)" />
|
|
||||||
</span>
|
|
||||||
<!-- 创建时间 -->
|
|
||||||
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
<!-- 申请时间 -->
|
|
||||||
<span slot="audit_at" slot-scope="text, record">{{ record.audit_at || '-' }}</span>
|
|
||||||
<!-- 结案时间 -->
|
|
||||||
<span slot="settle_at" slot-scope="text, record">{{ record.settle_at || '-' }}</span>
|
|
||||||
<!-- 处理时效 -->
|
|
||||||
<span
|
|
||||||
slot="prescription"
|
|
||||||
slot-scope="text, record">{{ record.prescription > 0 ? record.prescription + '天' : '-' }}</span>
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<div slot="actions" slot-scope="text, record">
|
<div slot="actions" slot-scope="text, record">
|
||||||
<a-dropdown v-if="record.can_status" :trigger="['click']">
|
<a class="ant-dropdown-link" @click="onEdit(record)">查看明细</a>
|
||||||
<a class="ant-dropdown-link">操作<a-icon type="down" /></a>
|
<a-divider type="vertical" />
|
||||||
<a-menu slot="overlay">
|
<a class="ant-dropdown-link" @click="onUpData(record)">更改库存</a>
|
||||||
<a-menu-item v-for="item in record.update_status" :key="item.key" @click="actions(item.key, record)">
|
|
||||||
<a>{{ `${item.title}` }}</a>
|
|
||||||
</a-menu-item>
|
|
||||||
</a-menu>
|
|
||||||
</a-dropdown>
|
|
||||||
<a v-else>-</a>
|
|
||||||
</div>
|
</div>
|
||||||
</s-table>
|
</s-table>
|
||||||
</a-card>
|
</a-card>
|
||||||
@@ -154,130 +91,93 @@ import { STable, UserInfo } from '@/components'
|
|||||||
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
import { institutionsExports } from '@/api/storage'
|
import { institutionsExports } from '@/api/storage'
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
import {
|
import {
|
||||||
getList,
|
getList,
|
||||||
init,
|
init,
|
||||||
changeStatus,
|
|
||||||
canExport
|
canExport
|
||||||
} from '@/api/organization'
|
} from '@/api/organization'
|
||||||
import storage from 'store'
|
import storage from 'store'
|
||||||
import EditStatus from './widgets/EditStatu.vue'
|
import StockInfo from './widgets/StockInfo.vue'
|
||||||
|
import onUpData from './widgets/onUpData.vue'
|
||||||
|
|
||||||
// 列表规格
|
// 列表规格
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
title: '订单号码',
|
title: '用户ID',
|
||||||
dataIndex: 'order_no',
|
dataIndex: 'order_id',
|
||||||
scopedSlots: { customRender: 'order_no' },
|
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 160,
|
width: 80
|
||||||
fixed: 'left'
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '机构号码',
|
title: '当前用户信息',
|
||||||
dataIndex: 'order_item_id',
|
children: [
|
||||||
width: 100,
|
{
|
||||||
|
title: '昵称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
align: 'center',
|
||||||
|
width: 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '账号',
|
||||||
|
dataIndex: 'name23',
|
||||||
|
key: 'name23',
|
||||||
|
align: 'center',
|
||||||
|
width: 140
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '身份',
|
||||||
|
dataIndex: 'name2',
|
||||||
|
key: 'name2',
|
||||||
|
align: 'center',
|
||||||
|
width: 140
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '机构名称',
|
title: '库变类型(入库、出库)',
|
||||||
dataIndex: 'institution',
|
dataIndex: 'user212',
|
||||||
width: 140,
|
width: 140,
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '机构名称2',
|
title: '库变数量',
|
||||||
scopedSlots: { customRender: 'institution_name' },
|
dataIndex: 'user232',
|
||||||
width: 140,
|
width: 140,
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '机构状态',
|
title: '当前库存',
|
||||||
scopedSlots: { customRender: 'status' },
|
dataIndex: 'user22',
|
||||||
width: 160,
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '机构状态2',
|
|
||||||
scopedSlots: { customRender: 'status_two_text' },
|
|
||||||
width: 160,
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '客户姓名',
|
|
||||||
dataIndex: 'user',
|
|
||||||
key: 'user',
|
|
||||||
width: 180,
|
|
||||||
align: 'center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '业务类型',
|
|
||||||
dataIndex: 'business_type',
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '欠款金额',
|
|
||||||
dataIndex: 'price',
|
|
||||||
scopedSlots: { customRender: 'price' },
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '匹配额度',
|
|
||||||
dataIndex: 'allocation',
|
|
||||||
scopedSlots: { customRender: 'allocation' },
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '法务老师',
|
|
||||||
dataIndex: 'teacher',
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '法务助理',
|
|
||||||
dataIndex: 'tutor',
|
|
||||||
width: 140,
|
width: 140,
|
||||||
align: 'center'
|
align: 'center'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '下单时间',
|
title: '库变时间',
|
||||||
dataIndex: 'paid_at',
|
dataIndex: 'created_at',
|
||||||
|
width: 200,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 140,
|
|
||||||
sorter: true
|
sorter: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '申请时间',
|
|
||||||
dataIndex: 'audit_at',
|
|
||||||
scopedSlots: { customRender: 'audit_at' },
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '结案时间',
|
|
||||||
dataIndex: 'settle_at',
|
|
||||||
scopedSlots: { customRender: 'settle_at' },
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '处理时效',
|
|
||||||
dataIndex: 'prescription',
|
|
||||||
scopedSlots: { customRender: 'prescription' },
|
|
||||||
width: 140,
|
|
||||||
align: 'center'
|
|
||||||
}, {
|
|
||||||
title: '操作',
|
title: '操作',
|
||||||
dataIndex: 'status10',
|
dataIndex: 'status110',
|
||||||
scopedSlots: { customRender: 'actions' },
|
scopedSlots: { customRender: 'actions' },
|
||||||
width: 180,
|
|
||||||
align: 'center',
|
align: 'center',
|
||||||
|
width: 200,
|
||||||
fixed: 'right'
|
fixed: 'right'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Index',
|
name: 'DealerIndex',
|
||||||
components: {
|
components: {
|
||||||
STable,
|
STable,
|
||||||
UserInfo,
|
UserInfo,
|
||||||
|
Info,
|
||||||
DeriveButton
|
DeriveButton
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
@@ -302,9 +202,6 @@ export default {
|
|||||||
listCount: 0,
|
listCount: 0,
|
||||||
loadData: (parameter) => {
|
loadData: (parameter) => {
|
||||||
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
getList(requestParameters).then(res => {
|
|
||||||
this.listCount = res.data.length
|
|
||||||
})
|
|
||||||
return getList(requestParameters)
|
return getList(requestParameters)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -329,28 +226,12 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
moment,
|
moment,
|
||||||
// 更改机构状态
|
|
||||||
actions (status, record) {
|
|
||||||
console.log(status, record.order_item_id)
|
|
||||||
const params = {
|
|
||||||
status: status
|
|
||||||
}
|
|
||||||
changeStatus(record.order_item_id, params).then(res => {
|
|
||||||
this.$notification.success({
|
|
||||||
message: '成功',
|
|
||||||
description: '机构状态修改成功'
|
|
||||||
})
|
|
||||||
this.$refs.table.loadData()
|
|
||||||
}).catch(err => {
|
|
||||||
console.log(err)
|
|
||||||
})
|
|
||||||
},
|
|
||||||
// 获取检索的基本样式
|
// 获取检索的基本样式
|
||||||
init () {
|
init () {
|
||||||
init().then(res => {
|
init().then(res => {
|
||||||
this.statusArray = res.status // 机构状态
|
this.statusArray = res.status // 机构状态
|
||||||
this.businessArray = res.type // 业务类型
|
this.businessArray = res.type // 业务类型
|
||||||
this.canExports()
|
// this.canExports()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 更改创建时间
|
// 更改创建时间
|
||||||
@@ -422,19 +303,42 @@ export default {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 修改状态2
|
// 更改库存
|
||||||
onEditStatus (item) {
|
onUpData (item) {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
const success = {
|
const success = {
|
||||||
title: '修改机构状态2',
|
title: '更改库存',
|
||||||
width: 600,
|
width: 600,
|
||||||
maskClosable: true,
|
maskClosable: true,
|
||||||
closable: true,
|
closable: true,
|
||||||
okText: '确认修改',
|
okText: '知道了'
|
||||||
cancelText: '取消'
|
|
||||||
}
|
}
|
||||||
this.$dialog(
|
this.$dialog(
|
||||||
EditStatus,
|
onUpData,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 修改用户
|
||||||
|
onEdit (item) {
|
||||||
|
const success = {
|
||||||
|
title: '库变详情',
|
||||||
|
width: 1000,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
footer: '',
|
||||||
|
okText: '知道了'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
StockInfo,
|
||||||
{
|
{
|
||||||
item,
|
item,
|
||||||
on: {
|
on: {
|
||||||
308
src/views/stock/In.vue
Normal file
308
src/views/stock/In.vue
Normal file
@@ -0,0 +1,308 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="入库时间">
|
||||||
|
<a-range-picker
|
||||||
|
:placeholder="['开始日期', '结束日期']"
|
||||||
|
v-model="queryParam.paid_at"
|
||||||
|
:ranges="{ Today: [moment(), moment()], 'This Month': [moment(), moment().endOf('month')] }"
|
||||||
|
@change="onCreateChange" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<a-row>
|
||||||
|
<a-col :sm="12" :xs="24">
|
||||||
|
<info title="线上库存量剩余" value="222" :bordered="true" />
|
||||||
|
</a-col>
|
||||||
|
<a-col :sm="12" :xs="24">
|
||||||
|
<info title="线下库存量剩余" value="333" :bordered="false" />
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-card>
|
||||||
|
<br/>
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<!-- 申请用户 实习顾问 法务老师 -->
|
||||||
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
|
<div>{{ record.user }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 创建时间 -->
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onEdit(record)">修改<a-icon type="down" /></a>
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
// import EditRole from './widgets/EditRole.vue'
|
||||||
|
import AddRole from './widgets/AddRole.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '创客进货金额',
|
||||||
|
dataIndex: 'user22',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '补充库存时间',
|
||||||
|
dataIndex: 'created_at',
|
||||||
|
align: 'center',
|
||||||
|
sorter: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '补充库存数量',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '线上',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '线下',
|
||||||
|
dataIndex: 'name1',
|
||||||
|
key: 'name1',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// title: '操作',
|
||||||
|
// dataIndex: 'status10',
|
||||||
|
// scopedSlots: { customRender: 'actions' },
|
||||||
|
// align: 'center',
|
||||||
|
// width: 160,
|
||||||
|
// fixed: 'right'
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'StockIn',
|
||||||
|
components: {
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
Info,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
// this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 新增用户
|
||||||
|
onAddRole () {
|
||||||
|
console.log('add....')
|
||||||
|
const success = {
|
||||||
|
title: '新增用户',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认新增',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
AddRole,
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 修改用户
|
||||||
|
onEdit (item) {
|
||||||
|
console.log(item)
|
||||||
|
// const success = {
|
||||||
|
// title: '修改用户',
|
||||||
|
// width: 600,
|
||||||
|
// maskClosable: true,
|
||||||
|
// closable: true,
|
||||||
|
// okText: '确认修改',
|
||||||
|
// cancelText: '取消'
|
||||||
|
// }
|
||||||
|
// this.$dialog(
|
||||||
|
// EditRole,
|
||||||
|
// {
|
||||||
|
// item,
|
||||||
|
// on: {
|
||||||
|
// ok: () => {
|
||||||
|
// console.log('成功了。。')
|
||||||
|
// this.$refs.table.loadData()
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// success
|
||||||
|
// )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
326
src/views/stock/Out.vue
Normal file
326
src/views/stock/Out.vue
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="出库时间">
|
||||||
|
<a-range-picker
|
||||||
|
:placeholder="['开始日期', '结束日期']"
|
||||||
|
v-model="queryParam.paid_at"
|
||||||
|
:ranges="{ Today: [moment(), moment()], 'This Month': [moment(), moment().endOf('month')] }"
|
||||||
|
@change="onCreateChange" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<a-row>
|
||||||
|
<a-col :sm="12" :xs="24">
|
||||||
|
<info title="线上库存量剩余" value="222" :bordered="true" />
|
||||||
|
</a-col>
|
||||||
|
<a-col :sm="12" :xs="24">
|
||||||
|
<info title="线下库存量剩余" value="333" :bordered="false" />
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-card>
|
||||||
|
<br/>
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<!-- 申请用户 实习顾问 法务老师 -->
|
||||||
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
|
<div>{{ record.user }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 创建时间 -->
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onEdit(record)">修改<a-icon type="down" /></a>
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import Info from '@/views/home/components/Info'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
// import EditRole from './widgets/EditRole.vue'
|
||||||
|
import AddRole from './widgets/AddRole.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '用户名',
|
||||||
|
dataIndex: 'user22',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '出库时间',
|
||||||
|
dataIndex: 'created_at',
|
||||||
|
align: 'center',
|
||||||
|
sorter: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '经销商进货明细',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '线上数量',
|
||||||
|
dataIndex: 'name33',
|
||||||
|
key: 'name',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '线下数量',
|
||||||
|
dataIndex: 'name1333',
|
||||||
|
key: 'name1',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '零售出库明细',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '线上数量',
|
||||||
|
dataIndex: 'name11',
|
||||||
|
key: 'name11',
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '线下数量',
|
||||||
|
dataIndex: 'name12',
|
||||||
|
key: 'name12',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
// {
|
||||||
|
// title: '操作',
|
||||||
|
// dataIndex: 'status10',
|
||||||
|
// scopedSlots: { customRender: 'actions' },
|
||||||
|
// align: 'center',
|
||||||
|
// width: 160,
|
||||||
|
// fixed: 'right'
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'StockOut',
|
||||||
|
components: {
|
||||||
|
Info,
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 新增用户
|
||||||
|
onAddRole () {
|
||||||
|
console.log('add....')
|
||||||
|
const success = {
|
||||||
|
title: '新增用户',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认新增',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
AddRole,
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 修改用户
|
||||||
|
onEdit (item) {
|
||||||
|
console.log(item)
|
||||||
|
// const success = {
|
||||||
|
// title: '修改用户',
|
||||||
|
// width: 600,
|
||||||
|
// maskClosable: true,
|
||||||
|
// closable: true,
|
||||||
|
// okText: '确认修改',
|
||||||
|
// cancelText: '取消'
|
||||||
|
// }
|
||||||
|
// this.$dialog(
|
||||||
|
// EditRole,
|
||||||
|
// {
|
||||||
|
// item,
|
||||||
|
// on: {
|
||||||
|
// ok: () => {
|
||||||
|
// console.log('成功了。。')
|
||||||
|
// this.$refs.table.loadData()
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// success
|
||||||
|
// )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
76
src/views/stock/widgets/AddRole.vue
Normal file
76
src/views/stock/widgets/AddRole.vue
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="机构状态" style="padding-top:30px;">
|
||||||
|
<a-select
|
||||||
|
v-decorator="[
|
||||||
|
'status',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请选择机构状态!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请选择机构状态!`"
|
||||||
|
>
|
||||||
|
<a-select-option v-for="(it) in item.status_two.texts" :key="it.key" :value="it.key+''">
|
||||||
|
{{ it.title }}
|
||||||
|
</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'AddRole',
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
119
src/views/stock/widgets/StockInfo.vue
Normal file
119
src/views/stock/widgets/StockInfo.vue
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-descriptions title="用户信息" :column="4">
|
||||||
|
<a-descriptions-item label="姓名" span="2">张冬雪</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="电话" span="2">1810000000</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="身份" span="2">创客</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线上出库 -->
|
||||||
|
<a-descriptions title="线上出库" :column="4">
|
||||||
|
<a-descriptions-item label="线上出库方式" span="2">线上零售、优惠券扣除库存</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="出库数量" span="2">12件</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线下出库 物流 -->
|
||||||
|
<a-descriptions title="线下出库(线上发货)" :column="4">
|
||||||
|
<a-descriptions-item label="出库数量" span="2">12件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货状态" span="2">线上发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递状态" span="2">待发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货时间" span="2">2023-12-12 12:12:12</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货人名" span="2">张冬雪</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货地址" span="3">哈尔滨市香坊区香顺街98号-2-201</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 出库 线下出库 自提 -->
|
||||||
|
<a-descriptions title="线下出库(自提)" :column="4">
|
||||||
|
<a-descriptions-item label="自提数量" span="2">12件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="发货状态" span="2">自提</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="提货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线上 -->
|
||||||
|
<a-descriptions title="入库(线上)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线下 线上发货-->
|
||||||
|
<a-descriptions title="入库(线下发货)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="快递状态" span="2">待发货</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="收货地址" span="3">哈尔滨市香坊区香顺街98号-2-201</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
|
||||||
|
<!-- 入库 线下 自提-->
|
||||||
|
<a-descriptions title="入库(线下发货)" :column="4">
|
||||||
|
<a-descriptions-item label="订单号" span="2">20398475766539979</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="进货数量" span="2">99件</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="经销商姓名手机号" span="2">张冬雪14745798055</a-descriptions-item>
|
||||||
|
<a-descriptions-item label="自提时间" span="2">2023-11-11 10:12:12</a-descriptions-item>
|
||||||
|
</a-descriptions>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'StockInfo',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
96
src/views/stock/widgets/onUpData.vue
Normal file
96
src/views/stock/widgets/onUpData.vue
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="新增库存" style="padding-top:10px;">
|
||||||
|
<a-input-number
|
||||||
|
style="width: 100%;"
|
||||||
|
:min="1"
|
||||||
|
:max="10"
|
||||||
|
v-decorator="[
|
||||||
|
'number',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请填写库存!`, type: 'number' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请填写库存!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="备注">
|
||||||
|
<a-textarea
|
||||||
|
:rows="4"
|
||||||
|
v-decorator="[
|
||||||
|
'remark',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: '请输入备注!', type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
placeholder="请输入备注!" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'EditRole',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
347
src/views/user/Index.vue
Normal file
347
src/views/user/Index.vue
Normal file
@@ -0,0 +1,347 @@
|
|||||||
|
|
||||||
|
<template>
|
||||||
|
<page-header-wrapper>
|
||||||
|
<template v-slot:content>
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline">
|
||||||
|
<a-row :gutter="48">
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="用户昵称">
|
||||||
|
<a-input v-model="queryParam.order_no" placeholder="用户昵称" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="用户昵称">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="用户昵称" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="顶点账号">
|
||||||
|
<a-input v-model="queryParam.item_id" placeholder="顶点账号" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-form-item label="身份筛选" has-feedback>
|
||||||
|
<a-select v-model="queryParam.business_type_id" @change="onBusinessChange" placeholder="身份筛选">
|
||||||
|
<a-select-option v-for="item in businessArray" :key="item.id" :value="item.id">{{ item.title }}</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="8" :sm="24">
|
||||||
|
<a-button type="primary" @click="search"><a-icon type="search" />搜索</a-button>
|
||||||
|
<a-button class="ml8" type="primary" @click="onAddRole"><a-icon type="plus" />新增</a-button>
|
||||||
|
<a-button class="ml8" @click="resetSearch"><a-icon type="undo" />重置</a-button>
|
||||||
|
<a-button
|
||||||
|
v-if="exports_can"
|
||||||
|
class="ml8"
|
||||||
|
type="dashed"
|
||||||
|
shape="round"
|
||||||
|
icon="download"
|
||||||
|
@click="exports"/>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<a-card :bordered="false">
|
||||||
|
<s-table
|
||||||
|
ref="table"
|
||||||
|
:columns="columns"
|
||||||
|
:data="loadData"
|
||||||
|
:rowKey="(row) => row.order_item_id"
|
||||||
|
showPagination="auto"
|
||||||
|
bordered
|
||||||
|
size="default"
|
||||||
|
:scroll="{ x: 1200, y: 1000 }">
|
||||||
|
<!-- 申请用户 实习顾问 法务老师 -->
|
||||||
|
<div slot="user" slot-scope="text, record" style="color: #1890ff">
|
||||||
|
<div>{{ record.user }}</div>
|
||||||
|
</div>
|
||||||
|
<!-- 创建时间 -->
|
||||||
|
<span slot="created_at" slot-scope="text, record">{{ record.created_at }}</span>
|
||||||
|
<!-- 操作 -->
|
||||||
|
<div slot="actions" slot-scope="text, record">
|
||||||
|
<a class="ant-dropdown-link" @click="onEdit(record)">更改推荐人</a>
|
||||||
|
</div>
|
||||||
|
</s-table>
|
||||||
|
</a-card>
|
||||||
|
</page-header-wrapper>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { STable, UserInfo } from '@/components'
|
||||||
|
import DeriveButton from '@/components/OrderDetailInfo/DeriveButton'
|
||||||
|
import { institutionsExports } from '@/api/storage'
|
||||||
|
import moment from 'moment'
|
||||||
|
import {
|
||||||
|
getList,
|
||||||
|
init,
|
||||||
|
canExport
|
||||||
|
} from '@/api/organization'
|
||||||
|
import storage from 'store'
|
||||||
|
import EditInvite from './widgets/EditInvite.vue'
|
||||||
|
import AddRole from './widgets/AddRole.vue'
|
||||||
|
|
||||||
|
// 列表规格
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: '用户id',
|
||||||
|
dataIndex: 'order_id',
|
||||||
|
align: 'center',
|
||||||
|
width: 80
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '当前用户信息',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
title: '昵称',
|
||||||
|
dataIndex: 'name',
|
||||||
|
key: 'name',
|
||||||
|
align: 'center',
|
||||||
|
width: 200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '真实姓名',
|
||||||
|
dataIndex: 'name1',
|
||||||
|
key: 'name1',
|
||||||
|
align: 'center',
|
||||||
|
width: 140
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '用户手机',
|
||||||
|
dataIndex: 'name23',
|
||||||
|
key: 'name23',
|
||||||
|
align: 'center',
|
||||||
|
width: 140
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '身份',
|
||||||
|
dataIndex: 'name2',
|
||||||
|
key: 'name2',
|
||||||
|
align: 'center',
|
||||||
|
width: 140
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '邀请码',
|
||||||
|
dataIndex: 'name554',
|
||||||
|
key: 'name5',
|
||||||
|
align: 'center',
|
||||||
|
width: 140
|
||||||
|
}
|
||||||
|
],
|
||||||
|
width: 300,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '推荐人手机号',
|
||||||
|
dataIndex: 'user22',
|
||||||
|
width: 140,
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '注册时间',
|
||||||
|
dataIndex: 'created_at',
|
||||||
|
width: 200,
|
||||||
|
align: 'center',
|
||||||
|
sorter: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'status10',
|
||||||
|
scopedSlots: { customRender: 'actions' },
|
||||||
|
align: 'center',
|
||||||
|
width: 160,
|
||||||
|
fixed: 'right'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'UserIndex',
|
||||||
|
components: {
|
||||||
|
STable,
|
||||||
|
UserInfo,
|
||||||
|
DeriveButton
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
exports_can: false,
|
||||||
|
columns,
|
||||||
|
searchType: false, // 展示全部的搜索
|
||||||
|
businessArray: [], // 业务类型
|
||||||
|
statusArray: [], // 机构列表
|
||||||
|
|
||||||
|
queryParam: {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined // 结案时间
|
||||||
|
},
|
||||||
|
listCount: 0,
|
||||||
|
loadData: (parameter) => {
|
||||||
|
const requestParameters = Object.assign({}, parameter, this.queryParam)
|
||||||
|
return getList(requestParameters)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route (to, from) {
|
||||||
|
if (
|
||||||
|
(from.name === 'Detail' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'Home' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'AssignrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'SignInrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'ReCheckrderIndex' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'HandleService' && to.name === 'FristCheckrderIndex') ||
|
||||||
|
(from.name === 'CompleteOrder' && to.name === 'FristCheckrderIndex')
|
||||||
|
) {
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
moment,
|
||||||
|
// 获取检索的基本样式
|
||||||
|
init () {
|
||||||
|
init().then(res => {
|
||||||
|
this.statusArray = res.status // 机构状态
|
||||||
|
this.businessArray = res.type // 业务类型
|
||||||
|
this.canExports()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 更改创建时间
|
||||||
|
onCreateChange (dates, dateStrings) {
|
||||||
|
this.queryParam.paid_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改执行时间
|
||||||
|
onCarryChange (dates, dateStrings) {
|
||||||
|
this.queryParam.audit_at = dateStrings
|
||||||
|
},
|
||||||
|
// 更改结案时间
|
||||||
|
onSettleChange (dates, dateStrings) {
|
||||||
|
this.queryParam.settle_at = dateStrings
|
||||||
|
},
|
||||||
|
// 处理状态
|
||||||
|
onDisposeChange (e) {
|
||||||
|
this.queryParam.dispose = e
|
||||||
|
},
|
||||||
|
// 业务类型
|
||||||
|
onBusinessChange (e) {
|
||||||
|
this.queryParam.business_type_id = e
|
||||||
|
},
|
||||||
|
// 机构状态
|
||||||
|
onOrganizationChange (e) {
|
||||||
|
this.queryParam.status = e
|
||||||
|
},
|
||||||
|
// 搜索列表
|
||||||
|
search () {
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 重置搜索列表
|
||||||
|
resetSearch () {
|
||||||
|
this.queryParam = {
|
||||||
|
order_no: '', // 订单编号
|
||||||
|
institution: '', // 机构名称
|
||||||
|
item_id: '', // 机构编号
|
||||||
|
nickname: '', // 下单人
|
||||||
|
business_type_id: '', // 业务类型
|
||||||
|
status: '', // 机构状态
|
||||||
|
paid_at: undefined, // 下单时间
|
||||||
|
audit_at: undefined, // 执行时间
|
||||||
|
settle_at: undefined// 结案时间
|
||||||
|
}
|
||||||
|
this.$refs.table.refresh(true) // 重置接口且刷先到第一页
|
||||||
|
},
|
||||||
|
// 机构是否能导出
|
||||||
|
canExports () {
|
||||||
|
console.log('canExports')
|
||||||
|
canExport(storage.get('userid')).then(res => {
|
||||||
|
this.exports_can = res.exports
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 导出列表
|
||||||
|
exports () {
|
||||||
|
const params = this.queryParam
|
||||||
|
params.audit_at = this.queryParam.audit_at || ''
|
||||||
|
params.paid_at = this.queryParam.paid_at || ''
|
||||||
|
params.settle_at = this.queryParam.settle_at || ''
|
||||||
|
if (this.listCount > 0) {
|
||||||
|
let downUrl = institutionsExports() + '?user_id=' + storage.get('userid')
|
||||||
|
for (const key in params) {
|
||||||
|
downUrl = downUrl + '&' + key + '=' + params[key]
|
||||||
|
}
|
||||||
|
window.open(downUrl)
|
||||||
|
} else {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '温馨提醒',
|
||||||
|
description: '数据为空不能下载!'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// 新增用户
|
||||||
|
onAddRole () {
|
||||||
|
console.log('add....')
|
||||||
|
const success = {
|
||||||
|
title: '新增用户',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认新增',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
AddRole,
|
||||||
|
{
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 修改用户
|
||||||
|
onEdit (item) {
|
||||||
|
console.log(item)
|
||||||
|
const success = {
|
||||||
|
title: '更改推荐人',
|
||||||
|
width: 600,
|
||||||
|
maskClosable: true,
|
||||||
|
closable: true,
|
||||||
|
okText: '确认变更',
|
||||||
|
cancelText: '取消'
|
||||||
|
}
|
||||||
|
this.$dialog(
|
||||||
|
EditInvite,
|
||||||
|
{
|
||||||
|
item,
|
||||||
|
on: {
|
||||||
|
ok: () => {
|
||||||
|
console.log('成功了。。')
|
||||||
|
this.$refs.table.loadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.ml8 {
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
98
src/views/user/widgets/AddRole.vue
Normal file
98
src/views/user/widgets/AddRole.vue
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="用户手机">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'phone',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请添加用户手机!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请添加用户手机!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="真实姓名">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'name',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请添加真实姓名!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请添加真实姓名!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="推荐人信息">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'invite',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请添加推荐人手机号!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请添加推荐人手机号!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'AddRole',
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
80
src/views/user/widgets/EditInvite.vue
Normal file
80
src/views/user/widgets/EditInvite.vue
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
|
||||||
|
<!-- 驳回原因用户姓名输入 -->
|
||||||
|
<template>
|
||||||
|
<a-form
|
||||||
|
ref="form"
|
||||||
|
v-bind="formItemLayout"
|
||||||
|
:form="form"
|
||||||
|
>
|
||||||
|
<a-form-item label="推荐人信息" style="padding-top:30px;">
|
||||||
|
<a-input
|
||||||
|
v-decorator="[
|
||||||
|
'name',
|
||||||
|
{
|
||||||
|
rules: [
|
||||||
|
{ required: true, message: `请输入推荐人信息!`, type: 'string' },
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]"
|
||||||
|
:placeholder="`请输入推荐人信息!`"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { changeStatusTwo } from '@/api/organization'
|
||||||
|
export default {
|
||||||
|
name: 'EditRole',
|
||||||
|
props: {
|
||||||
|
item: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
formItemLayout: {
|
||||||
|
labelCol: { span: 6 },
|
||||||
|
wrapperCol: { span: 14 }
|
||||||
|
},
|
||||||
|
loading: false
|
||||||
|
}),
|
||||||
|
beforeCreate () {
|
||||||
|
this.form = this.$form.createForm(this)
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onOk () {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
this.form.validateFields((errors, values) => {
|
||||||
|
console.log(values)
|
||||||
|
if (!errors) {
|
||||||
|
console.log(values)
|
||||||
|
const params = {
|
||||||
|
status: values.status
|
||||||
|
}
|
||||||
|
changeStatusTwo(this.item.order_item_id, params).then((res) => {
|
||||||
|
this.$notification.success({
|
||||||
|
message: '成功',
|
||||||
|
description: '修改成功'
|
||||||
|
})
|
||||||
|
resolve(true)
|
||||||
|
}).catch((err) => {
|
||||||
|
this.$notification.error({
|
||||||
|
message: '失败',
|
||||||
|
description: err.message
|
||||||
|
})
|
||||||
|
resolve(false)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user