Compare commits

..

2 Commits

Author SHA1 Message Date
NH-LHG 0fa7650909 【init】 创建erp 项目
2 years ago
NH-LHG a1f413bcd6 【init】 创建erp 项目
2 years ago

@ -1,4 +1,4 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_API_BASE_URL=http://store-admin.nhet.cloud:8080/jeecg-boot VUE_APP_API_BASE_URL=http://47.100.1.234:8080/jeecg-boot
VUE_APP_CAS_BASE_URL=http://store-admin.nhet.cloud:8888/cas VUE_APP_CAS_BASE_URL=http://47.100.1.234:8888/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview

4
public/index.html vendored

@ -250,7 +250,9 @@
<div id="loader"></div> <div id="loader"></div>
<div class="loader-section section-left"></div> <div class="loader-section section-left"></div>
<div class="loader-section section-right"></div> <div class="loader-section section-right"></div>
<div class="load_title">正在加载 能辉在线商城管理平台</div> <div class="load_title">正在加载 能辉光伏运维平台
</div>
</div> </div>
</div> </div>

@ -3,7 +3,6 @@
*/ */
window._CONFIG = { window._CONFIG = {
//接口父路径 //接口父路径
// http://47.100.35.222:8080/jeecg-boot
VUE_APP_API_BASE_URL: '', VUE_APP_API_BASE_URL: '',
//单点登录地址 //单点登录地址
VUE_APP_CAS_BASE_URL: '', VUE_APP_CAS_BASE_URL: '',

@ -1,5 +1,3 @@
import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage' import { getAction, deleteAction, putAction, postAction, httpAction } from '@/api/manage'
export const editOrder = (params)=>postAction("/erp/order/edit",params); export const editOrder = (params)=>postAction("/erp/order/edit",params);
export const getOrderTotalPrice = (params)=>getAction("/erp/order/getTotalAmount",params);
export const editGoods = (params)=>postAction("/erp/goods/edit",params);

@ -49,7 +49,6 @@
data(){ data(){
return { return {
uploadAction:window._CONFIG['domianURL']+"/sys/common/upload", uploadAction:window._CONFIG['domianURL']+"/sys/common/upload",
// uploadAction:'http://47.100.35.222:8080/jeecg-boot'+"/sys/common/upload",
uploadLoading:false, uploadLoading:false,
picUrl:false, picUrl:false,
headers:{}, headers:{},

@ -5,11 +5,11 @@
<div class="header"> <div class="header">
<a href="/"> <a href="/">
<img src="~@/assets/logo.svg" class="logo" alt="logo"> <img src="~@/assets/logo.svg" class="logo" alt="logo">
<span class="title">能辉在线订货商城</span> <span class="title">NH DevOps Platform</span>
</a> </a>
</div> </div>
<div class="desc"> <div class="desc">
<!-- NH DevOps Platform 是能辉科技光伏电站运维监控平台--> NH DevOps Platform 是能辉科技光伏电站运维监控平台
</div> </div>
</div> </div>
@ -64,12 +64,12 @@
.container { .container {
width: 100%; width: 100%;
height: 100%; min-height: 90%;
background: #f0f2f5 url(~@/assets/Screenshot.png) no-repeat 50%; background: #f0f2f5 url(~@/assets/Screenshot.png) no-repeat 50%;
background-size: 100%;
padding: 110px 0 144px; padding: 110px 0 144px;
position: relative; position: relative;
background-size: cover;
background-position: top right;
a { a {
text-decoration: none; text-decoration: none;
} }

@ -17,8 +17,8 @@
:type="collapsed ? 'menu-unfold' : 'menu-fold'" :type="collapsed ? 'menu-unfold' : 'menu-fold'"
@click="toggle"/> @click="toggle"/>
<span v-if="device === 'desktop'">线</span> <span v-if="device === 'desktop'"></span>
<span v-else>NH SHOP</span> <span v-else>NH DevOps Plat</span>
<user-menu :theme="theme"/> <user-menu :theme="theme"/>
</div> </div>

@ -21,7 +21,7 @@
props: { props: {
title: { title: {
type: String, type: String,
default: 'NH SHOP', default: 'NH DevOps Plat',
required: false required: false
}, },
showTitle: { showTitle: {

@ -11,7 +11,6 @@ import { ACCESS_TOKEN, TENANT_ID } from "@/store/mutation-types"
* 则映射后端域名通过 vue.config.js * 则映射后端域名通过 vue.config.js
* @type {*|string} * @type {*|string}
*/ */
// let apiBaseUrl = 'http://store-admin.nhet.cloud:8080/jeecg-boot'
let apiBaseUrl = window._CONFIG['domianURL'] || "/jeecg-boot"; let apiBaseUrl = window._CONFIG['domianURL'] || "/jeecg-boot";
//console.log("apiBaseUrl= ",apiBaseUrl) //console.log("apiBaseUrl= ",apiBaseUrl)
// 创建 axios 实例 // 创建 axios 实例

@ -11,8 +11,8 @@
<!-- 操作按钮区域 --> <!-- 操作按钮区域 -->
<div class="table-operator"> <div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus" v-has="'erp:addr_manager:add'"></a-button> <a-button @click="handleAdd" v-has="'erp:addr_manager:add'" type="primary" icon="plus"></a-button>
<a-button type="primary" icon="download" @click="handleExportXls('仓库地址')"></a-button> <a-button type="primary" icon="download" @click="handleExportXls('地址管理')"></a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button> <a-button type="primary" icon="import">导入</a-button>
</a-upload> </a-upload>
@ -20,7 +20,7 @@
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0"> <a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item v-has="'erp:addr_manager:delete'" key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu> </a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown> </a-dropdown>
@ -77,9 +77,9 @@
<a-menu-item> <a-menu-item>
<a @click="handleDetail(record)"></a> <a @click="handleDetail(record)"></a>
</a-menu-item> </a-menu-item>
<a-menu-item v-has="'erp:addr_manager:delete'"> <a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a></a> <a v-has="'erp:addr_manager:delete'"></a>
</a-popconfirm> </a-popconfirm>
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
@ -109,7 +109,7 @@
}, },
data () { data () {
return { return {
description: '仓库地址管理页面', description: '地址管理管理页面',
// //
columns: [ columns: [
{ {
@ -122,11 +122,11 @@
return parseInt(index)+1; return parseInt(index)+1;
} }
}, },
// { {
// title:'', title:'用户id',
// align:"center", align:"center",
// dataIndex: 'userId_dictText' dataIndex: 'userId'
// }, },
{ {
title:'省', title:'省',
align:"center", align:"center",
@ -158,7 +158,7 @@
dataIndex: 'telephone' dataIndex: 'telephone'
}, },
{ {
title:'是否默认', title:'是否默认0否 默认1',
align:"center", align:"center",
dataIndex: 'isDefault_dictText' dataIndex: 'isDefault_dictText'
}, },
@ -201,7 +201,7 @@
}, },
getSuperFieldList(){ getSuperFieldList(){
let fieldList=[]; let fieldList=[];
fieldList.push({type:'list_multi',value:'userId',text:'所属项目',dictTable:"", dictText:'', dictCode:'project_code'}) fieldList.push({type:'string',value:'userId',text:'用户id',dictCode:''})
fieldList.push({type:'string',value:'province',text:'省',dictCode:''}) fieldList.push({type:'string',value:'province',text:'省',dictCode:''})
fieldList.push({type:'string',value:'city',text:'市',dictCode:''}) fieldList.push({type:'string',value:'city',text:'市',dictCode:''})
fieldList.push({type:'string',value:'county',text:'地区',dictCode:''}) fieldList.push({type:'string',value:'county',text:'地区',dictCode:''})

@ -20,7 +20,7 @@
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0"> <a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item key="1" v-has="'erp:bbs:delete'" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu> </a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown> </a-dropdown>
@ -95,132 +95,132 @@
<script> <script>
import '@/assets/less/TableExpand.less' import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin' import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import BbsModal from './modules/BbsModal' import BbsModal from './modules/BbsModal'
export default { export default {
name: 'BbsList', name: 'BbsList',
mixins:[JeecgListMixin, mixinDevice], mixins:[JeecgListMixin, mixinDevice],
components: { components: {
BbsModal BbsModal
},
data () {
return {
description: '评价管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
}, },
{ data () {
title:'内容', return {
align:"center", description: '评价管理页面',
dataIndex: 'content' //
}, columns: [
{ {
title:'评论时间', title: '#',
align:"center", dataIndex: '',
dataIndex: 'createTime' key:'rowIndex',
}, width:60,
{ align:"center",
title:'物流打分', customRender:function (t,r,index) {
align:"center", return parseInt(index)+1;
dataIndex: 'deliveryScore' }
}, },
{ {
title:'商品打分', title:'内容',
align:"center", align:"center",
dataIndex: 'qualityScore' dataIndex: 'content'
}, },
{ {
title:'服务打分', title:'评论时间',
align:"center", align:"center",
dataIndex: 'serviceScore' dataIndex: 'createTime'
}, },
{ {
title:'推荐打分', title:'物流打分满分5星',
align:"center", align:"center",
dataIndex: 'suggestScore' dataIndex: 'deliveryScore'
}, },
{ {
title:'图片url', title:'商品打分满分5星',
align:"center", align:"center",
dataIndex: 'url', dataIndex: 'qualityScore'
scopedSlots: {customRender: 'imgSlot'} },
}, {
{ title:'服务打分满分5星',
title:'产品', align:"center",
align:"center", dataIndex: 'erviceScore'
dataIndex: 'goodsName' },
{
title:'是否推荐打分满分5星',
align:"center",
dataIndex: 'suggestScore'
},
{
title:'图片url',
align:"center",
dataIndex: 'url',
scopedSlots: {customRender: 'imgSlot'}
},
{
title:'产品',
align:"center",
dataIndex: 'goodsName'
},
{
title:'备注',
align:"center",
dataIndex: 'remark'
},
{
title:'评论人',
align:"center",
dataIndex: 'userName'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/erp/bbs/list",
delete: "/erp/bbs/delete",
deleteBatch: "/erp/bbs/deleteBatch",
exportXlsUrl: "/erp/bbs/exportXls",
importExcelUrl: "erp/bbs/importExcel",
},
dictOptions:{},
superFieldList:[],
}
}, },
{ created() {
title:'备注', this.getSuperFieldList();
align:"center",
dataIndex: 'remark'
}, },
{ computed: {
title:'评论人', importExcelUrl: function(){
align:"center", return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
dataIndex: 'userName' },
}, },
{ methods: {
title: '操作', initDictConfig(){
dataIndex: 'action', },
align:"center", getSuperFieldList(){
fixed:"right", let fieldList=[];
width:147, fieldList.push({type:'string',value:'content',text:'内容',dictCode:''})
scopedSlots: { customRender: 'action' } fieldList.push({type:'datetime',value:'createTime',text:'评论时间'})
fieldList.push({type:'string',value:'deliveryScore',text:'物流打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'qualityScore',text:'商品打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'erviceScore',text:'服务打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'suggestScore',text:'是否推荐打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'url',text:'图片url',dictCode:''})
fieldList.push({type:'string',value:'goodsName',text:'产品',dictCode:''})
fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
fieldList.push({type:'string',value:'userName',text:'评论人',dictCode:''})
this.superFieldList = fieldList
}
} }
],
url: {
list: "/erp/bbs/list",
delete: "/erp/bbs/delete",
deleteBatch: "/erp/bbs/deleteBatch",
exportXlsUrl: "/erp/bbs/exportXls",
importExcelUrl: "erp/bbs/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'content',text:'内容',dictCode:''})
fieldList.push({type:'datetime',value:'createTime',text:'评论时间'})
fieldList.push({type:'string',value:'deliveryScore',text:'物流打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'qualityScore',text:'商品打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'erviceScore',text:'服务打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'suggestScore',text:'是否推荐打分满分5星',dictCode:''})
fieldList.push({type:'string',value:'url',text:'图片url',dictCode:''})
fieldList.push({type:'string',value:'goodsName',text:'产品',dictCode:''})
fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
fieldList.push({type:'string',value:'userName',text:'评论人',dictCode:''})
this.superFieldList = fieldList
} }
}
}
</script> </script>
<style scoped> <style scoped>
@import '~@assets/less/common.less'; @import '~@assets/less/common.less';
</style> </style>

@ -20,7 +20,7 @@
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0"> <a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item key="1" v-has="'erp:goods:delete'" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu> </a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown> </a-dropdown>
@ -68,21 +68,18 @@
</template> </template>
<span slot="action" slot-scope="text, record"> <span slot="action" slot-scope="text, record">
<a-popconfirm title="确定该操作吗?" @confirm="() => handleChangeStatus(record, getStatusData(record).status)">
<a v-has="'erp:goods:online'" >{{ getStatusData(record).text }}</a>
</a-popconfirm>
<a-divider type="vertical" v-has="'erp:goods:online'" />
<a v-has="'erp:goods:edit'" @click="handleEdit(record)"></a> <a v-has="'erp:goods:edit'" @click="handleEdit(record)"></a>
<a-divider type="vertical" v-has="'erp:goods:edit'" />
<a-divider type="vertical" />
<a-dropdown> <a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a> <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item> <a-menu-item>
<a @click="handleDetail(record)"></a> <a v-has="'erp:goods:delete'" @click="handleDetail(record)"></a>
</a-menu-item> </a-menu-item>
<a-menu-item v-has="'erp:goods:delete'"> <a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a ></a> <a v-has="'erp:goods:delete'"></a>
</a-popconfirm> </a-popconfirm>
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
@ -102,7 +99,6 @@
import { mixinDevice } from '@/utils/mixin' import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import GoodsModal from './modules/GoodsModal' import GoodsModal from './modules/GoodsModal'
import { editGoods } from '@/api/shop'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
export default { export default {
@ -131,11 +127,6 @@
align:"center", align:"center",
dataIndex: 'price' dataIndex: 'price'
}, },
{
title:'产品名称简',
align:"center",
dataIndex: 'goodsAbbr'
},
{ {
title:'产品名称', title:'产品名称',
align:"center", align:"center",
@ -157,25 +148,10 @@
dataIndex: 'factory' dataIndex: 'factory'
}, },
{ {
title:'是否销售', title:'是否销售01是 默认',
align:"center", align:"center",
dataIndex: 'ifSale_dictText' dataIndex: 'ifSale_dictText'
}, },
{
title:'所属项目',
align:"center",
dataIndex: 'orgCode_dictText'
},
{
title:'单位',
align:"center",
dataIndex: 'unit'
},
{
title:'图片地址',
align:"center",
dataIndex: 'url'
},
{ {
title:'备注', title:'备注',
align:"center", align:"center",
@ -211,41 +187,16 @@
}, },
}, },
methods: { methods: {
getStatusData(row) {
const isOnline = row.ifSale + ''
const objInfo = {
'1' : {
text: '下架',
status: 0
},
'0' : {
text: '上架',
status: 1
}
}
return objInfo[isOnline]
},
handleChangeStatus(row, isSafe) {
row.ifSale = isSafe
editGoods(row).then(res => {
this.loadData();
})
},
initDictConfig(){ initDictConfig(){
}, },
getSuperFieldList(){ getSuperFieldList(){
let fieldList=[]; let fieldList=[];
fieldList.push({type:'BigDecimal',value:'price',text:'价格',dictCode:''}) fieldList.push({type:'BigDecimal',value:'price',text:'价格',dictCode:''})
fieldList.push({type:'string',value:'goodsAddr',text:'产品名称简',dictCode:''})
fieldList.push({type:'string',value:'goodsName',text:'产品名称',dictCode:''}) fieldList.push({type:'string',value:'goodsName',text:'产品名称',dictCode:''})
fieldList.push({type:'string',value:'category',text:'分类',dictCode:''}) fieldList.push({type:'string',value:'category',text:'分类',dictCode:''})
fieldList.push({type:'string',value:'specs',text:'规格',dictCode:''}) fieldList.push({type:'string',value:'specs',text:'规格',dictCode:''})
fieldList.push({type:'string',value:'factory',text:'厂商',dictCode:''}) fieldList.push({type:'string',value:'factory',text:'厂商',dictCode:''})
fieldList.push({type:'int',value:'ifSale',text:'是否销售',dictCode:''}) fieldList.push({type:'int',value:'ifSale',text:'是否销售01是 默认',dictCode:'ifSale'})
fieldList.push({type:'list_multi',value:'orgCode',text:'所属项目',dictTable:"", dictText:'', dictCode:'project_code'})
fieldList.push({type:'string',value:'unit',text:'单位',dictCode:''})
fieldList.push({type:'string',value:'url',text:'图片地址',dictCode:''})
fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''}) fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
this.superFieldList = fieldList this.superFieldList = fieldList
} }

@ -20,19 +20,19 @@
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query> <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0"> <a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item key="1" v-has="'erp:order:delete'" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item> <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu> </a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button> <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown> </a-dropdown>
</div> </div>
<!-- table区域-begin --> <!-- table区域-begin -->
<div> <div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected"></a> <a style="margin-left: 24px" @click="onClearSelected"></a>
<b style="margin-left: 24px" > 总累计金额{{totalPrice}}</b>
</div> </div>
<a-table <a-table
ref="table" ref="table"
size="middle" size="middle"
@ -46,20 +46,7 @@
:loading="loading" :loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange"> @change="handleTableChange">
<template #state="text, record">
<div>
<a-tag color="green" v-if="record.state === 3">
{{ record.state_dictText }}
</a-tag>
<a-tag v-else-if="record.state === 5">
{{ record.state_dictText }}
</a-tag>
<a-tag color="red" v-else>
{{ record.state_dictText }}
</a-tag>
</div>
</template>
<template slot="htmlSlot" slot-scope="text"> <template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div> <div v-html="text"></div>
</template> </template>
@ -81,28 +68,20 @@
</template> </template>
<span slot="action" slot-scope="text, record"> <span slot="action" slot-scope="text, record">
<a v-has="'erp:order:edit'" @click="handleEdit(record)"> <a-divider type="vertical" /></a> <a v-has="'erp:order:edit'" @click="handleEdit(record)"></a>
<a v-show='record.state === 6' v-has="'erp:order:ok'" @click="handleConfirm(0, record, )"> <a v-has="'erp:order:check'" @click="handleConfirm(1, record)"></a>
<a-divider type="vertical" /> <a v-has="'erp:order:dispatch'" @click="handleConfirm(2, record)"></a>
</a>
<a v-show='record.state === 0' v-has="'erp:order:check'" @click="handleConfirm(1, record, )"> <a-divider type="vertical" />
<a-divider type="vertical" />
</a>
<a v-show='record.state === 2' v-has="'erp:order:dispatch'" @click="handleConfirm(3, record, )">
<a-divider type="vertical" />
</a>
<a v-has="'erp:order:print'" @click="handleConfirm(999, record, )">
物料打印 <a-divider type="vertical" /></a>
<a-dropdown> <a-dropdown>
<a class="ant-dropdown-link"> <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
更多 <a-icon type="down" /></a>
<a-menu slot="overlay"> <a-menu slot="overlay">
<a-menu-item v-has="'erp:order:view'"> <a-menu-item>
<a @click="handleDetail(record)"></a> <a @click="handleDetail(record)"></a>
</a-menu-item> </a-menu-item>
<a-menu-item v-has="'erp:order:delete'"> <a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a ></a> <a v-has="'erp:order:delete'"></a>
</a-popconfirm> </a-popconfirm>
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
@ -113,48 +92,6 @@
</div> </div>
<order-modal ref="modalForm" @ok="modalFormOk"/> <order-modal ref="modalForm" @ok="modalFormOk"/>
<a-modal
:title="infoModel.title"
:visible="infoModel.visible"
:confirm-loading="infoModel.confirmLoading"
@cancel="handleCloseInfoModal"
>
<a-form-model
ref="ruleForm"
:model="form"
:rules="rules"
:label-col="labelCol"
:wrapper-col="wrapperCol"
>
<!-- <a-form-model-item ref="logistics_id" label="物流单号" prop="logistics_id" v-if="rowInfo.state === 2">-->
<!-- <a-input-->
<!-- v-model="form.logistics_id"-->
<!-- @blur="-->
<!-- () => {-->
<!-- $refs.logistics_id.onFieldBlur();-->
<!-- }-->
<!-- "-->
<!-- />-->
<!-- </a-form-model-item>-->
<a-form-model-item label="上传文件" prop="url" v-if='rowInfo.state === 3'>
<j-image-upload v-model="form.imgUrl" ></j-image-upload>
</a-form-model-item>
<a-form-model-item label="上传文件" prop="url" v-if='rowInfo.state === 1'>
<j-image-upload v-model="form.imgUrl" ></j-image-upload>
</a-form-model-item>
<a-form-model-item :label="'意见'" prop="desc">
<a-input v-model="form.desc" type="textarea" />
</a-form-model-item>
</a-form-model>
<template v-slot:footer>
<a-button key="back" v-if="rowInfo.state !== 3" type='danger' :loading="infoModel.confirmLoading" @click="handleOk('cancel')">
不通过
</a-button>
<a-button key="submit" type="primary" :loading="infoModel.confirmLoading" @click="handleOk('ok')">
通过
</a-button>
</template>
</a-modal>
</a-card> </a-card>
</template> </template>
@ -164,10 +101,7 @@
import OrderModal from './modules/OrderModal' import OrderModal from './modules/OrderModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
import '@/assets/less/TableExpand.less' import '@/assets/less/TableExpand.less'
import { editOrder, getOrderTotalPrice } from '@/api/shop' import { editOrder } from '@/api/shop'
import orderList from '@views/erp/const/orderList'
import { mapGetters } from 'vuex'
import moment from 'moment'
export default { export default {
name: "OrderList", name: "OrderList",
@ -177,208 +111,139 @@
}, },
data () { data () {
return { return {
labelCol: { span: 4 },
wrapperCol: { span: 18 },
other: '',
rowInfo: {
state: -1,
row: {}
},
form: {
imgUrl: ''
},
rules: {
},
infoModel: {
title: '审核',
visible: false,
confirmLoading: false,
ModalText: 'Content of the modal',
},
description: '订单管理页面', description: '订单管理页面',
// //
columns: orderList, columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'收件人',
align:"center",
dataIndex: 'recipient'
},
{
title:'手机',
align:"center",
dataIndex: 'mobile'
},
{
title:'总金额',
align:"center",
dataIndex: 'totalAmount'
},
{
title:'用户id',
align:"center",
dataIndex: 'userId'
},
{
title:'地址',
align:"center",
dataIndex: 'addr'
},
{
title:'审核人',
align:"center",
dataIndex: 'financeReview'
},
{
title:'审核时间',
align:"center",
dataIndex: 'financeTime'
},
{
title:'审核意见',
align:"center",
dataIndex: 'financeRemark'
},
{
title:'派单人',
align:"center",
dataIndex: 'dispacher'
},
{
title:'派发时间',
align:"center",
dataIndex: 'dispacherTime'
},
{
title:'状态,0:待付款 默认1待发货2已发货3完结4退换货',
align:"center",
dataIndex: 'state_dictText'
},
{
title:'备注',
align:"center",
dataIndex: 'remark'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' },
}
],
url: { url: {
list: "/erp/order/list", list: "/erp/order/list",
delete: "/erp/order/delete", delete: "/erp/order/delete",
deleteBatch: "/erp/order/deleteBatch", deleteBatch: "/erp/order/deleteBatch",
exportXlsUrl: "/erp/order/exportXls", exportXlsUrl: "/erp/order/exportXls",
importExcelUrl: "erp/order/importExcel", importExcelUrl: "erp/order/importExcel",
uploadUrl: "sys/common/upload",
}, },
dictOptions:{}, dictOptions:{},
superFieldList:[], superFieldList:[],
totalPrice: 0
} }
}, },
created() { created() {
this.getSuperFieldList(); this.getSuperFieldList();
this.getOrderTotalPrice()
}, },
computed: { computed: {
importExcelUrl: function(){ importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
uploadUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.uploadUrl}`;
} }
}, },
methods: { methods: {
...mapGetters(["userInfo"]), handleConfirm(state, row) {
getOrderTotalPrice() { const that = this
const params = this.getQueryParams()
getOrderTotalPrice(params).then(res => {
if (res.success) {
this.totalPrice = res.result
}
})
},
handleSuperQuery(params, matchType) {
//
if(!params){
this.superQueryParams=''
this.superQueryFlag = false
}else{
this.superQueryFlag = true
this.superQueryParams=JSON.stringify(params)
this.superQueryMatchType = matchType
}
this.loadData(1)
this.getOrderTotalPrice()
},
handleOk(type) {
const that = this
const user = that.userInfo()
// 0 , 1 , 3
// return
if (type === "ok") {
if ([1, 3].includes(that.rowInfo.state) && !that.form.imgUrl) {
this.$message.warn('请上传确认文件')
return
}
}
if (type === "cancel" && [0, 1, 3].includes(that.rowInfo.state) && !that.form.desc) {
this.$message.warn('不通过,请填写备注信息')
return
}
this.$refs.ruleForm.validate(valid => {
if (valid) {
this.$confirm({ this.$confirm({
title: "确认操作", title: "确认操作",
content: "是否确认此操作?", content: "是否确认此操作?",
onOk: function () { onOk: function () {
that.infoModel.confirmLoading = true row.state = state
const state = type === 'cancel'? 5 : that.rowInfo.state editOrder(row).then(res => {
const time = moment().format('YYYY-MM-DD HH:mm:ss') that.$message.success('操作成功');
let params = { that.loadData(1);
state, })
id: that.rowInfo.row.id
} }
if (that.rowInfo.state === 1) {
params.financeReview = user.realname
params.financeTime = time
params.financeId = user.id
params.financeRemark = that.form.desc
params.financeUrl = that.form.imgUrl
} else if (that.rowInfo.state === 3) {
params.dispacher = user.realname
params.dispacherId = user.id
params.logisticsId = that.form.logistics_id
params.dispacherTime = time
params.dispacherUrl = that.form.imgUrl
params.dispacherRemark = that.form.desc
} else if (that.rowInfo.state === 0) {
params.materialRemark = that.form.desc
params.materialId = user.id
params.materialClerk = user.realname
params.materialTime = time
}
params = Object.assign({}, that.rowInfo.row, params)
editOrder(params).then(res => {
that.infoModel.confirmLoading = false
that.infoModel.visible = false
that.form.imgUrl = ''
if (res.result) {
that.$message.success('操作成功');
that.loadData(1);
} else {
that.$message.warn(res.message);
}
}).catch(() => {
that.form.imgUrl = ''
that.infoModel.confirmLoading = false
that.infoModel.visible = false
}) })
}
}) },
} else {
return false;
}
});
},
handleCancel() {
console.log()
},
handleCloseInfoModal() {
this.infoModel.visible = false
},
handleConfirm(state, row) {
//
if (state === 999) {
window.open(window._CONFIG['domianURL'] + '/jmreport/shareView/829568033299816448?id=' + row.id)
return
}
if (![6, 0, 2].includes(row.state)) {
this.$message.error('该状态无权限操作')
return
}
this.form = {}
this.rules = {}
const baseObject = {desc: ''}
const baseObjectRules = { desc: [{ message: '填写备注', trigger: 'blur' }]}
const textOBj = {
0: '物料确认',
1: '财务审核',
3: '出货确认'
}
const obj = {
1: Object.assign({}, baseObject),
3: Object.assign({
logistics_id: '',
}, baseObject),
0: Object.assign({
material_id: '',
}, baseObject)
}
this.form = obj[state]
//
// this.rules = state === 2 ? Object.assign({}, this.rules, {
// logistics_id: [
// { required: true, message: '', trigger: 'blur' },
// ],}) : this.rules
this.infoModel.title = textOBj[state]
this.infoModel.visible = true
this.rowInfo = {
row,
state
}
},
initDictConfig(){ initDictConfig(){
}, },
getSuperFieldList(){ getSuperFieldList(){
let fieldList=[]; let fieldList=[];
fieldList.push({type:'string',value:'createTime',text:'创建时间'}) fieldList.push({type:'string',value:'recipient',text:'收件人',dictCode:''})
fieldList.push({type:'string',value:'recipient',text:'联系人',dictCode:''})
fieldList.push({type:'string',value:'mobile',text:'手机',dictCode:''}) fieldList.push({type:'string',value:'mobile',text:'手机',dictCode:''})
fieldList.push({type:'BigDecimal',value:'totalAmount',text:'总金额',dictCode:''}) fieldList.push({type:'BigDecimal',value:'totalAmount',text:'总金额',dictCode:''})
fieldList.push({type:'string',value:'userId',text:'用户id',dictCode:''}) fieldList.push({type:'string',value:'userId',text:'用户id',dictCode:''})
fieldList.push({type:'string',value:'addr',text:'地址',dictCode:''}) fieldList.push({type:'string',value:'addr',text:'地址',dictCode:''})
fieldList.push({type:'string',value:'financeReview',text:'财务确认人',dictCode:''}) fieldList.push({type:'string',value:'financeReview',text:'审核人',dictCode:''})
fieldList.push({type:'string',value:'financeTime',text:'财务确认时间'}) fieldList.push({type:'datetime',value:'financeTime',text:'审核时间'})
fieldList.push({type:'string',value:'dispacher',text:'出货确认人',dictCode:''}) fieldList.push({type:'string',value:'financeRemark',text:'审核意见',dictCode:''})
fieldList.push({type:'string',value:'dispacherTime',text:'出货确认时间'}) fieldList.push({type:'string',value:'dispacher',text:'派单人',dictCode:''})
fieldList.push({type:'int',value:'state',text:'状态',dictCode:'orderState'}) fieldList.push({type:'datetime',value:'dispacherTime',text:'派发时间'})
fieldList.push({type:'int',value:'state',text:'状态,0:待付款 默认1待发货2已发货3完结4退换货',dictCode:'orderState'})
fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''}) fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
this.superFieldList = fieldList this.superFieldList = fieldList
} }

@ -166,7 +166,7 @@
deleteBatch: "/erp/shoppingCart/deleteBatch", deleteBatch: "/erp/shoppingCart/deleteBatch",
exportXlsUrl: "/erp/shoppingCart/exportXls", exportXlsUrl: "/erp/shoppingCart/exportXls",
importExcelUrl: "erp/shoppingCart/importExcel", importExcelUrl: "erp/shoppingCart/importExcel",
}, },
dictOptions:{}, dictOptions:{},
superFieldList:[], superFieldList:[],

@ -1,241 +0,0 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="仓库名称">
<a-input placeholder="请输入仓库名称" v-model="queryParam.name"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="仓管员">
<a-input placeholder="请输入仓管员" v-model="queryParam.contacts"></a-input>
</a-form-item>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="手机号">
<a-input placeholder="请输入手机号" v-model="queryParam.phone"></a-input>
</a-form-item>
</a-col>
</template>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button v-has="'erp:store:add'" @click="handleAdd" type="primary" icon="plus"></a-button>
<a-button type="primary" icon="download" @click="handleExportXls('仓库管理')"></a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
<!-- 高级查询区域 -->
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item v-has="'erp:store:delete'" key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown>
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected"></a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;"></span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a v-has="'erp:store:edit'" @click="handleEdit(record)"></a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)"></a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a v-has="'erp:store:delete'"></a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<store-info-modal ref="modalForm" @ok="modalFormOk"></store-info-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import StoreInfoModal from './modules/StoreInfoModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
export default {
name: 'StoreInfoList',
mixins:[JeecgListMixin, mixinDevice],
components: {
StoreInfoModal
},
data () {
return {
description: '仓库管理管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'仓库名称',
align:"center",
dataIndex: 'name'
},
{
title:'仓管员',
align:"center",
dataIndex: 'contacts'
},
{
title:'手机号',
align:"center",
dataIndex: 'phone'
},
{
title:'仓库地址',
align:"center",
dataIndex: 'addr'
},
{
title:'区域',
align:"center",
dataIndex: 'region'
},
{
title:'是否启用',
align:"center",
dataIndex: 'enable_dictText'
},
{
title:'创建时间',
align:"center",
dataIndex: 'createTime'
},
{
title:'创建部门',
align:"center",
dataIndex: 'orgCode'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/erp/storeInfo/list",
delete: "/erp/storeInfo/delete",
deleteBatch: "/erp/storeInfo/deleteBatch",
exportXlsUrl: "/erp/storeInfo/exportXls",
importExcelUrl: "erp/storeInfo/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'string',value:'name',text:'仓库名称',dictCode:''})
fieldList.push({type:'string',value:'contacts',text:'仓管员',dictCode:''})
fieldList.push({type:'string',value:'phone',text:'手机号',dictCode:''})
fieldList.push({type:'string',value:'addr',text:'仓库地址',dictCode:''})
fieldList.push({type:'string',value:'region',text:'区域',dictCode:''})
fieldList.push({type:'int',value:'enable',text:'是否启用',dictCode:'ifSale'})
fieldList.push({type:'datetime',value:'crateTime',text:'创建时间'})
fieldList.push({type:'string',value:'orgCode',text:'创建部门',dictCode:''})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

@ -1,65 +0,0 @@
export default [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'用户id',
align:"center",
dataIndex: 'userId'
},
{
title:'省',
align:"center",
dataIndex: 'province'
},
{
title:'市',
align:"center",
dataIndex: 'city'
},
{
title:'地区',
align:"center",
dataIndex: 'county'
},
{
title:'地址',
align:"center",
dataIndex: 'detail'
},
{
title:'接收人',
align:"center",
dataIndex: 'recipient'
},
{
title:'手机',
align:"center",
dataIndex: 'telephone'
},
{
title:'默认地址',
align:"center",
dataIndex: 'isDefault_dictText'
},
{
title:'备注',
align:"center",
dataIndex: 'remark'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
]

@ -1,60 +0,0 @@
export default [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'价格',
align:"center",
dataIndex: 'price'
},
{
title:'产品名称简',
align:"center",
dataIndex: 'goodsAbbr'
},
{
title:'产品名称',
align:"center",
dataIndex: 'goodsName'
},
{
title:'分类',
align:"center",
dataIndex: 'category'
},
{
title:'规格',
align:"center",
dataIndex: 'specs'
},
{
title:'厂商',
align:"center",
dataIndex: 'factory'
},
{
title:'是否销售',
align:"center",
dataIndex: 'ifSale_dictText'
},
{
title:'备注',
align:"center",
dataIndex: 'remark'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
]

@ -1,130 +0,0 @@
export default [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'订单ID',
align:"center",
dataIndex: 'id'
},
{
title:'订单状态',
align:"center",
dataIndex: 'state',
scopedSlots: { customRender: 'state' }
},
{
title:'提货仓库',
align:"center",
dataIndex: 'storeName'
},
{
title:'联系人',
align:"center",
dataIndex: 'recipient'
},
{
title:'联系电话',
align:"center",
dataIndex: 'mobile'
},
{
title:'总金额',
align:"center",
dataIndex: 'totalAmount'
},
{
title:'创建时间',
align:"center",
dataIndex: 'createTime'
},
{
title:'物料确认人',
align:"center",
dataIndex: 'materialClerk'
},
{
title:'物料确认时间',
align:"center",
dataIndex: 'materialTime'
},
{
title:'物料确认意见',
align:"center",
dataIndex: 'materialRemark'
},
{
title:'财务确认人',
align:"center",
dataIndex: 'financeReview'
},
{
title:'财务确认时间',
align:"center",
dataIndex: 'financeTime'
},
{
title:'财务确认意见',
align:"center",
dataIndex: 'financeRemark'
},
{
title:'出货确认人',
align:"center",
dataIndex: 'dispacher'
},
{
title:'出货确认时间',
align:"center",
dataIndex: 'dispacherTime'
},
// {
// title:'物流单号',
// align:"center",
// dataIndex: 'logisticsId'
// },
{
title:'出货确认意见',
align:"center",
dataIndex: 'dispacherRemark'
},
{
title:'订单备注',
align:"center",
dataIndex: 'remark'
},
{
title:'仓管员',
align:"center",
dataIndex: 'storeContacts'
},
{
title:'提货地址',
align:"center",
dataIndex: 'storeAddr'
},
// {
// title:'手机',
// align:"center",
// dataIndex: 'mobile'
// },
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' },
}
]

@ -4,8 +4,8 @@
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="所属项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> <a-form-model-item label="用户id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<j-multi-select-tag type="list_multi" v-model="model.userId" dictCode="project_code" placeholder="请选择所属项目" /> <a-input v-model="model.userId" placeholder="请输入用户id" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -39,8 +39,8 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="是否默认" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isDefault"> <a-form-model-item label="是否默认0否 默认1" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isDefault">
<j-dict-select-tag type="list" v-model="model.isDefault" dictCode="isDefault" placeholder="请选择是否默认" /> <j-dict-select-tag type="list" v-model="model.isDefault" dictCode="isDefault" placeholder="请选择是否默认0否 默认1" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -136,7 +136,7 @@
that.confirmLoading = false; that.confirmLoading = false;
}) })
} }
}) })
}, },
} }

@ -15,22 +15,22 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="物流打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliveryScore"> <a-form-model-item label="物流打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deliveryScore">
<a-input v-model="model.deliveryScore" placeholder="物流打分" ></a-input> <a-input v-model="model.deliveryScore" placeholder="请输入物流打分满分5星" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="商品打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qualityScore"> <a-form-model-item label="商品打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qualityScore">
<a-input v-model="model.qualityScore" placeholder="商品打分" ></a-input> <a-input v-model="model.qualityScore" placeholder="请输入商品打分满分5星" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="服务打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="serviceScore"> <a-form-model-item label="服务打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="erviceScore">
<a-input v-model="model.serviceScore" placeholder="服务打分" ></a-input> <a-input v-model="model.erviceScore" placeholder="请输入服务打分满分5星" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="是否推荐打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggestScore"> <a-form-model-item label="是否推荐打分" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggestScore">
<a-input v-model="model.suggestScore" placeholder="推荐打分" ></a-input> <a-input v-model="model.suggestScore" placeholder="请输入是否推荐打分满分5星" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -90,15 +90,15 @@
}, },
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
content: [ content: [
{ required: true, message: '请输入内容!'}, { required: true, message: '请输入内容!'},
], ],
createTime: [ createTime: [
{ required: true, message: '请输入评论时间!'}, { required: true, message: '请输入评论时间!'},
], ],
goodsName: [ goodsName: [
{ required: true, message: '请输入产品!'}, { required: true, message: '请输入产品!'},
], ],
}, },
url: { url: {
add: "/erp/bbs/add", add: "/erp/bbs/add",

@ -8,11 +8,6 @@
<a-input-number v-model="model.price" placeholder="请输入价格" style="width: 100%" /> <a-input-number v-model="model.price" placeholder="请输入价格" style="width: 100%" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24">
<a-form-model-item label="产品名称简" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="goodsAbbr">
<a-input v-model="model.goodsAbbr" placeholder="请输入产品名称简称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="产品名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="goodsName"> <a-form-model-item label="产品名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="goodsName">
<a-input v-model="model.goodsName" placeholder="请输入产品名称" ></a-input> <a-input v-model="model.goodsName" placeholder="请输入产品名称" ></a-input>
@ -34,23 +29,8 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-model-item label="是否销售" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ifSale"> <a-form-model-item label="是否销售01是 默认" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="ifSale">
<j-dict-select-tag v-model="model.ifSale" dictCode="ifSale" placeholder="请输入是否销售" style="width: 100%" /> <j-dict-select-tag type="list" v-model="model.ifSale" dictCode="ifSale" placeholder="请选择是否销售01是 默认" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="所属项目" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orgCode">
<j-multi-select-tag type="list_multi" v-model="model.orgCode" dictCode="orgCode" placeholder="请选择所属项目" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="单位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="unit">
<a-input v-model="model.unit" placeholder="请输入单位" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="图片地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="url">
<a-input v-model="model.url" placeholder="请输入图片地址" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
@ -146,7 +126,7 @@
that.confirmLoading = false; that.confirmLoading = false;
}) })
} }
}) })
}, },
} }

@ -5,13 +5,13 @@
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row> <a-row>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="订单状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="state"> <a-form-model-item label="收件人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="recipient">
<j-dict-select-tag type="list" v-model="model.state" dictCode="orderState" placeholder="请选择状" /> <a-input v-model="model.recipient" placeholder="请输入收件人" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="订单备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark"> <a-form-model-item label="手机" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mobile">
<a-input v-model="model.remark" type='textarea' placeholder="请输入备注" ></a-input> <a-input v-model="model.mobile" placeholder="请输入手机" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
@ -20,95 +20,54 @@
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="联系人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> <a-form-model-item label="用户id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId">
<a-input v-model="model.recipient" placeholder="请输入用户id" ></a-input> <a-input v-model="model.userId" placeholder="请输入用户id" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="联系电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> <a-form-model-item label="地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addr">
<a-input v-model="model.mobile" placeholder="请输入用户id" ></a-input> <a-input v-model="model.addr" placeholder="请输入地址" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="仓管员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addr"> <a-form-model-item label="审核人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeReview">
<a-input v-model="model.storeContacts" placeholder="请输入仓管员" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="仓管电话" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addr">
<a-input v-model="model.storePhone" placeholder="请输入仓管电话" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="提货仓库" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addr">
<a-input v-model="model.storeName" placeholder="请输入提货仓库" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="提货仓库地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addr">
<a-input v-model="model.storeAddr" placeholder="请提货仓库地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="物料确认人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dispacher">
<a-input v-model="model.materialClerk" placeholder="请输入确认人" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="物料确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dispacherTime">
<j-date placeholder="请选择物料确认时间" v-model="model.materialTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="物料确认意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeRemark">
<a-input v-model="model.materialRemark" type='textarea' placeholder="请输入审核意见" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24" >
<a-form-model-item label="财务审核人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeReview">
<a-input v-model="model.financeReview" placeholder="请输入审核人" ></a-input> <a-input v-model="model.financeReview" placeholder="请输入审核人" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="财务审核时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeTime"> <a-form-model-item label="审核时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeTime">
<j-date placeholder="请选择审核时间" v-model="model.financeTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> <j-date placeholder="请选择审核时间" v-model="model.financeTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="财务审核意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeRemark"> <a-form-model-item label="审核意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeRemark">
<a-input v-model="model.financeRemark" type='textarea' placeholder="请输入审核意见" ></a-input> <a-input v-model="model.financeRemark" placeholder="请输入审核意见" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="付款回执单" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="url">
<j-image-upload isMultiple v-model="model.financeUrl" ></j-image-upload>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="出货确认人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dispacher"> <a-form-model-item label="派单人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dispacher">
<a-input v-model="model.dispacher" placeholder="请输入确认人" ></a-input> <a-input v-model="model.dispacher" placeholder="请输入派单人" ></a-input>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="出货确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dispacherTime"> <a-form-model-item label="派发时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dispacherTime">
<j-date placeholder="请选择物料确认时间" v-model="model.dispacherTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> <j-date placeholder="请选择派发时间" v-model="model.dispacherTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" > <a-col :span="24" >
<a-form-model-item label="出货确认意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="financeRemark"> <a-form-model-item label="状态,0:待付款 默认1待发货2已发货3完结4退换货" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="state">
<a-input v-model="model.dispacherRemark" type='textarea' placeholder="请输入审核意见" ></a-input> <j-dict-select-tag type="list" v-model="model.state" dictCode="orderState" placeholder="请选择状态,0:待付款 默认1待发货2已发货3完结4退换货" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="24" >
<a-col :span="24"> <a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
<a-form-model-item label="完结确认文件" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="url"> <a-input v-model="model.remark" placeholder="请输入备注" ></a-input>
<j-image-upload isMultiple v-model="model.dispacherUrl" ></j-image-upload>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form-model> </a-form-model>
</j-form-container> </j-form-container>
<!-- 子表单区域 --> <!-- 子表单区域 -->
<a-tabs v-model="activeKey" @change="handleChangeTabs"> <a-tabs v-model="activeKey" @change="handleChangeTabs">
<a-tab-pane tab="订单详情" :key="refKeys[0]" :forceRender="true"> <a-tab-pane tab="订单详情" :key="refKeys[0]" :forceRender="true">
<j-vxe-table <j-vxe-table
@ -122,7 +81,7 @@
:rowNumber="true" :rowNumber="true"
:rowSelection="true" :rowSelection="true"
:toolbar="true" :toolbar="true"
/> />
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-spin> </a-spin>
@ -130,162 +89,164 @@
<script> <script>
import { getAction } from '@/api/manage' import { getAction } from '@/api/manage'
import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js' import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
import { JVXETypes } from '@/components/jeecg/JVxeTable' import { JVXETypes } from '@/components/jeecg/JVxeTable'
import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js' import { getRefPromise,VALIDATE_FAILED} from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
import { validateDuplicateValue } from '@/utils/util' import { validateDuplicateValue } from '@/utils/util'
import JFormContainer from '@/components/jeecg/JFormContainer' import JFormContainer from '@/components/jeecg/JFormContainer'
export default { export default {
name: 'OrderForm', name: 'OrderForm',
mixins: [JVxeTableModelMixin], mixins: [JVxeTableModelMixin],
components: { components: {
JFormContainer, JFormContainer,
},
data() {
return {
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
}, },
data() { wrapperCol: {
return { xs: { span: 24 },
labelCol: { sm: { span: 16 },
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
model:{
},
//
addDefaultRowNum: 1,
validatorRules: {
},
refKeys: ['orderDetail', ],
tableKeys:['orderDetail', ],
activeKey: 'orderDetail',
//
orderDetailTable: {
loading: false,
dataSource: [],
columns: [
{
title: '主单id',
key: 'orderId',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
validateRules: [{ required: true, message: '${title}不能为空' }],
},
{
title: '产品id',
key: 'goodsId',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
validateRules: [{ required: true, message: '${title}不能为空' }],
},
{
title: '产品名称',
key: 'goodsName',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
validateRules: [{ required: true, message: '${title}不能为空' }],
},
{
title: '产品数量',
key: 'goodsNo',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
{
title: '备注',
key: 'remark',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
},
]
},
url: {
add: "/erp/order/add",
edit: "/erp/order/edit",
queryById: "/erp/order/queryById",
orderDetail: {
list: '/erp/order/queryOrderDetailByMainId'
},
}
}
}, },
props: { model:{
// },
disabled: { //
type: Boolean, addDefaultRowNum: 1,
default: false, validatorRules: {
required: false addr: [
} { required: true, message: '请输入地址!'},
],
}, },
computed: { refKeys: ['orderDetail', ],
formDisabled(){ tableKeys:['orderDetail', ],
return this.disabled activeKey: 'orderDetail',
//
orderDetailTable: {
loading: false,
dataSource: [],
columns: [
{
title: '主单id',
key: 'orderId',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
validateRules: [{ required: true, message: '${title}不能为空' }],
}, },
}, {
created () { title: '产品id',
}, key: 'goodsId',
methods: { type: JVXETypes.input,
addBefore(){ width:"200px",
this.orderDetailTable.dataSource=[] placeholder: '请输入${title}',
defaultValue:'',
validateRules: [{ required: true, message: '${title}不能为空' }],
}, },
getAllTable() { {
let values = this.tableKeys.map(key => getRefPromise(this, key)) title: '产品名称',
return Promise.all(values) key: 'goodsName',
type: JVXETypes.input,
width:"200px",
placeholder: '请输入${title}',
defaultValue:'',
validateRules: [{ required: true, message: '${title}不能为空' }],
}, },
/** 调用完edit()方法之后会自动调用此方法 */ {
editAfter() { title: '产品数量',
this.$nextTick(() => { key: 'goodsNo',
}) type: JVXETypes.input,
// width:"200px",
if (this.model.id) { placeholder: '请输入${title}',
let params = { id: this.model.id } defaultValue:'',
this.requestSubTableData(this.url.orderDetail.list, params, this.orderDetailTable)
}
}, },
// {
validateSubForm(allValues){ title: '备注',
return new Promise((resolve,reject)=>{ key: 'remark',
Promise.all([ type: JVXETypes.input,
]).then(() => { width:"200px",
resolve(allValues) placeholder: '请输入${title}',
}).catch(e => { defaultValue:'',
if (e.error === VALIDATE_FAILED) {
// tab
this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
} else {
console.error(e)
}
})
})
}, },
/** 整理成formData */ ]
classifyIntoFormData(allValues) { },
let main = Object.assign(this.model, allValues.formValue) url: {
return { add: "/erp/order/add",
...main, // edit: "/erp/order/edit",
orderDetailList: allValues.tablesValue[0].tableData, queryById: "/erp/order/queryById",
orderDetail: {
list: '/erp/order/queryOrderDetailByMainId'
},
}
}
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
},
methods: {
addBefore(){
this.orderDetailTable.dataSource=[]
},
getAllTable() {
let values = this.tableKeys.map(key => getRefPromise(this, key))
return Promise.all(values)
},
/** 调用完edit()方法之后会自动调用此方法 */
editAfter() {
this.$nextTick(() => {
})
//
if (this.model.id) {
let params = { id: this.model.id }
this.requestSubTableData(this.url.orderDetail.list, params, this.orderDetailTable)
}
},
//
validateSubForm(allValues){
return new Promise((resolve,reject)=>{
Promise.all([
]).then(() => {
resolve(allValues)
}).catch(e => {
if (e.error === VALIDATE_FAILED) {
// tab
this.activeKey = e.index == null ? this.activeKey : this.refKeys[e.index]
} else {
console.error(e)
} }
}, })
validateError(msg){ })
this.$message.error(msg) },
}, /** 整理成formData */
classifyIntoFormData(allValues) {
let main = Object.assign(this.model, allValues.formValue)
return {
...main, //
orderDetailList: allValues.tablesValue[0].tableData,
} }
},
validateError(msg){
this.$message.error(msg)
},
} }
}
</script> </script>
<style scoped> <style scoped>

@ -1,139 +0,0 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="仓库名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name">
<a-input v-model="model.name" placeholder="请输入仓库名称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="仓管员" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contacts">
<a-input v-model="model.contacts" placeholder="请输入仓管员" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="手机号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
<a-input v-model="model.phone" placeholder="请输入手机号" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="仓库地址" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="addr">
<a-input v-model="model.addr" placeholder="请输入仓库地址" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="区域" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="region">
<a-input v-model="model.region" placeholder="请输入区域" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="enable">
<j-dict-select-tag type="list" v-model="model.enable" dictCode="ifSale" placeholder="请选择是否启用" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="创建时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="crateTime">
<j-date placeholder="请选择创建时间" v-model="model.createTime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="创建部门" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orgCode">
<a-input v-model="model.orgCode" placeholder="请输入创建部门" ></a-input>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'StoreInfoForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/erp/storeInfo/add",
edit: "/erp/storeInfo/edit",
queryById: "/erp/storeInfo/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

@ -1,84 +0,0 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<store-info-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></store-info-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;"></a-button>
</div>
</a-drawer>
</template>
<script>
import StoreInfoForm from './StoreInfoForm'
export default {
name: 'StoreInfoModal',
components: {
StoreInfoForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

@ -1,60 +0,0 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<store-info-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></store-info-form>
</j-modal>
</template>
<script>
import StoreInfoForm from './StoreInfoForm'
export default {
name: 'StoreInfoModal',
components: {
StoreInfoForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>
Loading…
Cancel
Save