Commit d55887d4 authored by jiangqihao's avatar jiangqihao

新增总代理商

parents f0bab561 9438c3a8
......@@ -8,7 +8,11 @@ export const customer = {
updateUrl: '/customer/update',
deleteUrl: '/customer/delete',
}
//查询省级供应商待审批列表
export const province = {
searchUrl: '/customer/searchProcessCustomer',
}
// 查询全部代理商数据
export function getAllData(data) {
return request({
......@@ -55,6 +59,15 @@ export function districtSearch(data){
}
// 客户发布记录
// 签约产品组
export function searchProduct(data) {
return request({
method: 'post',
url: '/commonSession/searchAll',
data
})
}
// // 客户发布记录
// export const releaseRecord = {
// createUrl: '/releaserecord/create',
// searchUrl: '/releaserecord/search',
......@@ -102,13 +115,6 @@ export function districtSearch(data){
// })
// }
// // 一级分类
// export function fetchFirstLevelClassification() {
// return request({
// method: 'post',
// url: '/levelClassification/searchAllOne'
// })
// }
// // 二级分类
// export function fetchSecondLevelClassification(data) {
......
......@@ -185,7 +185,8 @@ export default {
takeEffect: '生效',
invalid: '失效',
baseInfo: '基础信息',
viewAttachments: '查看附件'
viewAttachments: '查看附件',
approve:'审批'
},
example: {
warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见'
......
......@@ -55,7 +55,7 @@
</ul>
</li>
<!-- 消息三小列表 -->
<li
<!-- <li
v-for="route in topRoutes.slice(-1)"
:key="route.meta.title"
class="nav-item"
......@@ -72,7 +72,7 @@
/>
<span>{{ route.meta.topTitle }}</span>
<el-badge :value="2" class="item" />
</li>
</li> -->
</ul>
<!-- <div class="Mymessage">
<router-link to="/message/index">
......
import dictionary from '@/api/dictionary'
import { customer } from '@/api/customers'
import i18n from '@/lang'
import { province,searchProduct } from '@/api/customers'
// 潜在客户主列表配置
const tableConfig = {
url: customer.searchUrl,
initialParams: {
roleCode: 'BUP002'
},
url: province.searchUrl,
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
searchColums:{
Name: {
label: '客户名称',
label: '公司名称',
showInSearch: true,
type: 'input',
fixed: 'left',
renderItem: (h, scope, listeners) => {
return h(
'el-button',
{
on: {
click: (e) => listeners.handleCheck(scope.row)
},
props: {
type: 'text'
}
return h('el-button', {
on: {
click: (e) => listeners.handleDetails(scope.row)
},
scope.row.Name)
},
showInSearch: true
props: {
type: 'text'
}
}, scope.row.ID)
}
},
Ext_CustomerType_KUT: {
label: '客户类型',
type: 'select',
value: 'Ext_CustomerType_KUTText',
ExtProductGroup_SDK: {
label: '签约产品组',
showInSearch: true,
options: dictionary.customerType
},
Ext_CustomerStatus_KUT: {
label: '客户状态',
type: 'select',
value: 'Ext_CustomerStatus_KUTText',
showInSearch: true,
options: dictionary.customerStatus
fixed: 'left',
isOptions:'true',
options: async data => {
const res = await searchProduct({code:'ExtProductGroup_SDK',module:'Customer'})
var result = res.map(item => {
return {
text: item.content,
value: item.keyword
}
})
return result
},
},
},
columns: {
ExtCustomerID_SDK: {
label: '代理商编码',
type: 'input'
},
Ext_CustomerMainContactName_KUT: {
label: '联系人',
Name: {
label: '公司名称',
type: 'input'
},
Ext_CustomerMainContactPhone_KUT: {
label: '手机号码',
ExtCorporateName_SDK: {
label: '法定人代表',
type: 'input'
},
Ext_CustomerFollowUpDate_KUT: {
label: '最后跟进',
ExtSocialUnifiedCreditCode_SDK: {
label: '统一社会信用代码',
type: 'input'
},
Ext_CustomerForm_KUT: {
label: '来源',
value: 'Ext_CustomerForm_KUTText',
CreationOn: {
label: '注册时间',
type: 'input'
},
// Ext_QuoteOppotunity_KUT: {
// type: 'input',
// label: '代理商类型',
// showInSearch: true
// },
handle: {
label: '操作',
hideInFilter: true,
fixed: 'right',
minWidth: 100,
hideInFilter: true,
renderItem: (h, scope, listeners) => {
return h('div', {}, [
h(
'el-button',
{
on: {
click: (e) => listeners.handleEdit(scope.row)
},
class: 'el-icon-edit',
props: {
type: 'text'
}
},
'编辑'),
scope.row.Ext_CustomerStatus_KUTText === '草稿' && h(
'el-button',
{
on: {
click: (e) => listeners.handleDelete(scope.row)
},
class: 'el-icon-delete',
props: {
type: 'text'
}
return h('div', [
h('el-button', {
on: {
click: (e) => listeners.handleEdit(scope.row, 'approve')
},
'删除')
props: {
type: 'text',
label:'审批'
}
}, i18n.t('table.approve')),
// h('el-button', {
// on: {
// click: (e) => listeners.handleTakeEffect(scope.row, 'takeEffect')
// },
// props: {
// icon: 'el-icon-circle-check',
// type: 'text'
// }
// }, i18n.t('table.takeEffect')),
// h('el-button', {
// on: {
// click: (e) => listeners.handleInvalid(scope.row, 'invalid')
// },
// props: {
// icon: 'el-icon-circle-check',
// type: 'text'
// }
// }, i18n.t('table.invalid'))
])
}
}
}
}
// 注销客户弹框配置
const CancellationFormConfig = {
title: '注销原因',
createUrl: customer.updateUrl,
labelPosition: 'left',
submitBtnText: '确定',
span: 22,
formDesc: {
Ext_CustomerStatus_KUT: {
type: 'input',
label: '客户状态',
default: '131',
vif: false,
layout: 24
},
Ext_CustomerCancellationReasons_KUT: {
type: 'textarea',
label: '注销原因',
layout: 24
}
}
}
// 激活客户弹框配置
const ActivationFormConfig = {
title: '激活原因',
createUrl: customer.updateUrl,
labelPosition: 'left',
submitBtnText: '确定',
span: 22,
formDesc: {
Ext_CustomerStatus_KUT: {
type: 'input',
label: '客户状态',
default: '111',
vif: false,
layout: 24
},
Ext_CustomerActivationReasons_KUT: {
type: 'textarea',
label: '激活原因',
layout: 24
}
}
}
// 移入资源池弹框配置
const ResourcePoolFormConfig = {
title: '移入资源池',
createUrl: customer.toPoolUrl,
labelPosition: 'left',
submitBtnText: '确定',
span: 22,
formDesc: {
Ext_CustomerActivationReasons_KUT: {
type: 'textarea',
label: '移入资源池原因',
layout: 24
}
}
}
export default {
tableConfig,
ActivationFormConfig,
CancellationFormConfig,
ResourcePoolFormConfig
}
export default tableConfig
<template>
<h3>测试</h3>
<div class="app-container">
<ele-search
:columns="tableConfig.searchColums"
@handleSearch="handleSearch"
@handleReset="handleReset"
/>
<div class="table-container">
<ele-table
ref="eleTable"
v-bind="tableConfig"
:expand-params="expandParams"
:listeners="tableListeners"
/>
</div>
</div>
</template>
<script>
import constant from './constant'
import tableMixin from '@/mixins/table'
export default {
mixins: [tableMixin],
inject: ['reload'],
data() {
return {
expandParams: {}, // 筛选条件
tableListeners: {}, // 事件监听对象,供ele-table内部调用
tableConfig: constant
}
},
created() {
this.tableListeners = {
// handleDetails: this.handleDetails, // 添加
// handleTakeEffect: this.handleTakeEffect, // 生效
handleEdit: this.handleEdit, // 编辑
// handleInvalid: this.handleInvalid // 失效
}
},
methods: {
// 编辑
handleEdit(val) {
this.$router.push({ path: '/customersAdd',query:{id:val.ObjectID} })
},
}
}
</script>
<style>
</style>
\ No newline at end of file
</style>
......@@ -32,7 +32,7 @@ export default {
}
},
created() {
this.getTableData()
// this.getTableData()
},
mounted() {
},
......
const applyConfig = {
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
numberID: {
type: 'input',
label: '序号'
},
GoodsORTaxableServicesName: {
type: 'input',
label: '货物或应税劳务、服务名称'
},
SpecificationModel: {
type: 'input',
label: '规格型号'
},
Unit: {
type: 'input',
label: '单位'
},
Quantity: {
type: 'input',
label: '数量'
},
UnitPrice: {
type: 'input',
label: '单价'
},
Money: {
type: 'input',
label: '金额'
},
TaxRate: {
type: 'input',
label: '税率'
},
TaxAmount: {
type: 'input',
label: '税额'
}
}
}
export default applyConfig
<template>
<div class="apply">
<Title :title="apply" />
<ele-table
ref="eleTable"
v-bind="applyConfig"
/>
</div>
</template>
<script>
import constant from './constant'
import Title from '@/components/Title'
export default {
components: {
Title
},
data() {
return {
apply: '开票申请信息',
applyConfig: constant
}
}
}
</script>
<style>
</style>
const tableConfig = {
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
BillOfParcels: {
type: 'input',
label: '订单行',
fixed: 'left'
},
OrderID: {
type: 'input',
label: '订单编号'
},
OrderType: {
type: 'input',
label: '订单类型'
},
CustomerID: {
type: 'input',
label: '客户编号'
},
CustomerName: {
type: 'input',
label: '客户名称'
},
ReceiptPlace: {
type: 'input',
label: '收获地点'
},
ShippingTime: {
type: 'input',
label: '出货时间'
},
MaterialCode: {
type: 'input',
label: '物料编码'
},
MaterialCodeDescription: {
type: 'input',
label: '物料编码说明'
},
Quantity: {
type: 'input',
label: '数量'
},
Unit: {
type: 'input',
label: '单位'
},
UnitPrice: {
type: 'input',
label: '单价'
},
Money: {
type: 'input',
label: '金额'
},
InvoiceSource: {
type: 'input',
label: '发票来源'
},
Currency: {
type: 'input',
label: '币种'
},
ExchangeRate: {
type: 'input',
label: '汇率'
},
IsInformationComplete: {
type: 'input',
label: '资料是否齐全'
},
IsCustomsDeclaration: {
type: 'input',
label: '是否有报关单'
},
CustomsDeclarationID: {
type: 'input',
label: '报关单号'
},
CheckFeedback: {
type: 'input',
label: '审核反馈'
},
TwiceCheckFeedback: {
type: 'input',
label: '复核反馈'
},
ConfirmStatus: {
type: 'input',
label: '状态'
},
handle: {
label: '操作',
fixed: 'right',
minWidth: 200,
hideInFilter: true,
renderItem: (h, scope, listeners) => {
return h('div', [
h('el-button', {
on: {
click: (e) => listeners.handleEdit(scope.row)
},
props: {
icon: 'el-icon-success',
type: 'text'
}
}, '通过'),
h('el-button', {
on: {
click: (e) => listeners.handleTakeEffect(scope.row)
},
props: {
icon: 'el-icon-error',
type: 'text'
}
}, '未通过')
])
}
}
}
}
export default tableConfig
<template>
<div class="list">
<Title :title="list" />
<div class="listHanle">
<div class="listHanle_title">
<span><i class="el-icon-pie-chart" />行数:10</span>
<span>数量:1000</span>
<span>金额:1000</span>
</div>
</div>
<ele-table
ref="eleTable"
v-bind="tableConfig"
/>
</div>
</template>
<script>
import constant from './constant'
import Title from '@/components/Title'
export default {
components: {
Title
},
data() {
return {
tableConfig: constant,
list: '开票清单信息'
}
}
}
</script>
<style lang='scss' scoped>
.listHanle{
height: 60px;
line-height: 60px;
.listHanle_title {
float: right;
span{
padding-right: 20px;
}
}
}
</style>
const formConfigNote = {
isShowBackBtn: false,
isShowSubmitBtn: true,
detailUrl: '/invoiceApply/getOne',
formDesc: {
SpecialInstructions: {
type: 'input',
label: '特殊说明',
disabled: true,
layout: 12
},
ReferenceNote: {
type: 'input',
label: '参考备注',
disabled: true,
layout: 12
},
ActualNote: {
type: 'input',
label: '实际备注',
disabled: true,
layout: 12
}
}
}
export default formConfigNote
<template>
<div class="remarks">
<Title :title="remarks" />
<div class="remarks-btn">
<div class="addBtn">
<el-button type="text" @click="handleAdd">编辑</el-button>
</div>
</div>
<detail-table :table-config="formConfigNote" :table-data="tableData" />
</div>
</template>
<script>
import DetailTable from '@/components/DetailTable'
import constant from './constant'
import Title from '@/components/Title'
import { invoiceApplyUpdate, invoiceApplyGetOne } from '@/api/invoice'
export default {
components: {
DetailTable,
Title
},
props: {
objectId: {
type: Object,
default: () => {}
}
},
data() {
return {
remarks: '特殊开票及备注说明',
formConfigNote: constant,
tableData: {}
}
},
watch: {
objectId: {
handler(newVal) {
console.log(newVal)
},
deep: true,
immediate: true
}
},
methods: {
handleAdd() {
this.$prompt('实际备注', '编辑实际备注', {
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(({ value }) => {
// console.log(value, this.objectId)
invoiceApplyUpdate({ objectID: this.objectId.objectID, actualNote: value }).then(res => {
this.$message({
type: 'success',
message: '修改成功'
})
this.toUpdate()
})
}).catch(() => {
this.$message({
type: 'info',
message: '取消输入'
})
})
},
toUpdate() {
invoiceApplyGetOne(this.objectId).then(res => {
console.log(res.results[0])
this.tableData = res.results[0]
})
}
}
}
</script>
<style lang='scss' scoped>
.remarks-btn{
height: 30px;
line-height: 30px;
padding: 0 20px;
.addBtn{
float: right;
}
}
</style>
const formConfig = {
isShowBackBtn: false,
isShowSubmitBtn: true,
detailUrl: '/invoiceApply/getOne',
formDesc: {
CustomerName: {
type: 'input',
label: '客户名称',
disabled: true,
layout: 12
},
DetailedAddress: {
type: 'input',
label: '地址',
disabled: true,
layout: 12
},
TaxpayerIdentificationNumber: {
type: 'input',
label: '纳税人识别号',
disabled: true,
layout: 12
},
DepositBank: {
type: 'input',
layout: 12,
label: '开户行'
},
BankNumber: {
type: 'input',
label: '账户',
disabled: true,
layout: 12
},
Phone: {
type: 'input',
label: '电话',
disabled: true,
layout: 12
},
BillingType: {
type: 'input',
label: '开票类型',
disabled: true,
layout: 12
},
Currency: {
type: 'input',
label: '币种',
disabled: true,
layout: 12
}
}
}
export default formConfig
<template>
<div class="rise">
<Title :title="rise" />
<detail-table :table-config="formConfig" :table-data="tableData" />
</div>
</template>
<script>
import DetailTable from '@/components/DetailTable'
import constant from './constant'
import Title from '@/components/Title'
export default {
components: {
DetailTable,
Title
},
props: {
objectId: {
type: Object,
default: () => {}
}
},
data() {
return {
formConfig: constant,
rise: '客户抬头信息',
tableData: {}
}
}
}
</script>
<style>
</style>
<template>
<div v-loading="loading" class="app-container">
<div class="detail-header-container">
<div class="detail-header-title">
<h3>深圳市深蓝集团</h3>
<div class="detail-header-info">
<div>
<i class="el-icon-c-scale-to-original" />
<span>申请编码:{{ tableData.ID }}</span>
</div>
<div>
<i class="el-icon-c-scale-to-original" />
<span>申请状态:{{ tableData.Ext_QuoteStatus_KUT }}</span>
</div>
</div>
</div>
<div class="detail-header-info">
<div><span>申请总金额:{{ tableData.RequisitionTotalAmount }}</span></div>
<div><span>申请人:{{ tableData.RequisitionPerson }}</span></div>
<div><span>开票时间:{{ tableData.BillingTime }}</span></div>
<div><span>是否同步ERP:{{ tableData.IsToERP? '是':'否' }}</span></div>
<div><span>同步状态:{{ tableData.CreationDateTime? '同步成功':'同步失败' }}</span></div>
</div>
</div>
<div class="detail-content-container">
<Remarks :object-id="objectID" />
<Rise />
<Apply :object-id="objectID" />
<List :object-id="objectID" />
<div class="floor-btn">
<div class="btn">
<el-button
type="primary"
size="medium"
>
<i class="el-icon-error" />
不同意开票
</el-button>
<el-button
type="primary"
size="medium"
>
<i class="el-icon-success" />
同意开票
</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import { invoiceApplyGetOne } from '@/api/invoice'
import Remarks from './components/remarks-invoice/index'
import Rise from './components/rise-invoice/index'
import Apply from './components/apply-invoice/index'
import List from './components/list-invoice/index'
export default {
components: {
Remarks,
Rise,
Apply,
List
},
data() {
return {
tableData: {},
objectID: '',
loading: false
}
},
created() {
this.getTableData()
},
methods: {
getTableData() {
this.objectID = this.$route.query
this.loading = true
invoiceApplyGetOne(this.objectID).then(res => {
console.log(res)
this.tableData = res.results[0]
this.loading = false
})
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .apply .el-table--border{
margin-top: 40px;
}
.listHanle{
height: 60px;
line-height: 60px;
.listHanle_title {
float: right;
span{
padding-right: 20px;
}
}
}
.floor-btn{
height: 200px;
line-height: 200px;
.btn{
float: right;
}
}
.remarks-btn{
height: 30px;
line-height: 30px;
padding: 0 20px;
.addBtn{
float: right;
}
}
</style>
import { billingMessage } from '@/api/invoice'
const tableConfig = {
url: billingMessage.searchUrl,
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
InvoiceNo: {
type: 'input',
showInSearch: true,
fixed: 'left',
label: '发票号码'
},
InvoicingRequisitionNo: {
type: 'input',
label: '申请单号'
},
InvoiceCode: {
type: 'input',
label: '发票代码'
},
InvoiceType: {
type: 'input',
showInSearch: true,
label: '发票类型'
},
InvoiceAmount: {
type: 'input',
label: '发票金额'
},
BillingTime: {
type: 'input',
label: '开票时间'
},
SignStatus: {
type: 'input',
label: '开票状态'
},
SignTime: {
type: 'input',
label: '签收时间'
},
SignBack: {
type: 'input',
label: '签收回执'
},
CourierCompany: {
type: 'input',
label: '快递公司'
},
CourierNumber: {
type: 'input',
label: '快递单号'
},
handle: {
label: '操作',
fixed: 'right',
minWidth: 200,
hideInFilter: true,
renderItem: (h, scope, listeners) => {
return h('div', [
h('el-button', {
on: {
click: (e) => listeners.enterInvoice(scope.row, '录入发票')
},
props: {
icon: 'el-icon-full-screen',
type: 'text'
}
}, '录入发票'),
h('el-button', {
on: {
click: (e) => listeners.uploadReceipt(scope.row, '上传回执')
},
props: {
icon: 'el-icon-circle-check',
type: 'text'
}
}, '上传回执')
])
}
}
}
}
export default tableConfig
<template>
<div class="app-container">
<ele-search
:columns="tableConfig.columns"
@handleSearch="handleSearch"
@handleReset="handleReset"
@handleFilter="handleFilter"
/>
<div class="table-container">
<TableBtns>
<template v-slot:left>
<el-button
type="primary"
icon="el-icon-success"
@click="confirmReceipt"
>确认收票</el-button>
<el-button
type="primary"
icon="el-icon-edit-outline"
@click="fillLogistics"
>填写物流</el-button>
</template>
</TableBtns>
<ele-table
ref="eleTable"
v-bind="tableConfig"
:expand-params="expandParams"
:listeners="tableListeners"
@handleSelectionChange="handleSelectionChange"
/>
</div>
</div>
</template>
<script>
import constant from './constant'
import tableMixin from '@/mixins/table'
import { billingMessageUpdate } from '@/api/invoice'
export default {
mixins: [tableMixin],
data() {
return {
expandParams: {}, // 筛选条件
tableListeners: {}, // 事件监听对象,供ele-table内部调用
tableConfig: constant,
selection: []
}
},
created() {
this.tableListeners = {
enterInvoice: this.enterInvoice, // 录入发票
uploadReceipt: this.uploadReceipt // 上传回执
}
},
methods: {
// 录入发票
enterInvoice(row) {
console.log('录入发票', row)
},
// 上传回执
uploadReceipt(row) {
console.log('上传回执', row)
},
handleSelectionChange(selection) {
console.log(selection)
this.selection = selection
},
confirmReceipt() {
console.log(this.selection)
if (this.selection.length === 0) {
this.$message({
type: 'warning',
message: '请选择需要收票的发票'
})
} else {
this.$confirm(' 是否确定签收发票?', '确定提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
billingMessageUpdate(this.selection).then(res => {
this.$message({
type: 'success',
message: '签收成功!'
})
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
})
})
}
},
fillLogistics() {
console.log('确认物流')
}
}
}
</script>
<style>
</style>
<template>
<div>
<h2>发票总览</h2>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>
// import { invoiceApply } from '@/api/invoice'
const tableConfig = {
// url: invoiceApply.billingMessageSearchUrl,
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
BillOfParcels: {
type: 'input',
fixed: 'left',
label: '订单行'
},
OrderID: {
type: 'input',
showInSearch: true,
label: '订单编号'
},
OrderType: {
type: 'input',
label: '订单类型'
},
InvoicingRequisitionNo: {
type: 'input',
label: '开票申请单号'
},
CustomerID: {
type: 'input',
label: '客户编号'
},
CustomerName: {
type: 'input',
showInSearch: true,
label: '客户名称'
},
ReceiptPlace: {
type: 'input',
label: '收货地点'
},
ShippingTime: {
type: 'input',
label: '出货时间'
},
MaterialCode: {
type: 'input',
label: '物料编码'
},
MaterialCodeDescription: {
type: 'input',
label: '物料编码说明'
},
Quantity: {
type: 'input',
label: '数量'
},
Unit: {
type: 'input',
label: '单位'
},
UnitPrice: {
type: 'input',
label: '单价'
},
Money: {
type: 'input',
label: '金额'
},
InvoiceSource: {
type: 'input',
label: '发票来源'
},
Currency: {
type: 'input',
label: '币种'
},
ExchangeRate: {
type: 'input',
label: '汇率'
},
// InvoiceCode: {
// type: 'input',
// label: '发票代码'
// },
InvoiceNo: {
type: 'input',
label: '发票号码'
},
IsInformationComplete: {
type: 'input',
label: '资料是否齐全'
},
IsEmbedded: {
type: 'input',
label: '是否嵌入式'
},
IsCustomsDeclaration: {
type: 'input',
label: '是否有报关单'
},
CustomsDeclarationID: {
type: 'input',
label: '报关单号'
},
CheckFeedback: {
type: 'input',
label: '审核反馈'
},
ConfirmStatus: {
type: 'input',
label: '确认状态'
},
SignStatus: {
type: 'input',
label: '状态',
fixed: 'right'
}
}
}
export default tableConfig
<template>
<div class="app-container">
<ele-search
:columns="tableConfig.columns"
@handleSearch="handleSearch"
@handleReset="handleReset"
@handleFilter="handleFilter"
/>
<div class="table-container">
<TableBtns>
<template v-slot:left>
<el-button
type="primary"
icon="el-icon-success"
size="medium"
@click="handleAdd"
>开票申请</el-button>
</template>
</TableBtns>
<ele-table
ref="eleTable"
v-bind="tableConfig"
:expand-params="expandParams"
:listeners="tableListeners"
@handleSelectionChange="handleSelectionChange"
/>
</div>
</div>
</template>
<script>
import constant from './constant'
import tableMixin from '@/mixins/table'
export default {
mixins: [tableMixin],
data() {
return {
expandParams: {}, // 筛选条件
tableListeners: {}, // 事件监听对象,供ele-table内部调用
tableConfig: constant
}
},
created() {
this.tableListeners = {
handleDetails: this.handleDetails, // 添加
handleTakeEffect: this.handleTakeEffect, // 生效
handleEdit: this.handleEdit // 编辑
}
},
methods: {
// 新增报价,报价申请
handleAdd() {
},
// 报价编辑
handleEdit(row) {
console.log('编辑页面', row)
},
// 报价单详情页
handleDetails(row) {
console.log(row)
},
// 报价单生效
handleTakeEffect() {
console.log('生效')
},
handleSelectionChange(selection) {
console.log(selection)
this.selection = selection
}
}
}
</script>
<style>
</style>
import { invoiceApply } from '@/api/invoice'
const tableConfig = {
url: invoiceApply.searchUrl,
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
InvoicingRequisitionNo: {
type: 'input',
label: '申请单号',
showInSearch: true,
fixed: 'left'
},
RequisitionType: {
type: 'input',
label: '申请类型'
},
SignStatusText: {
type: 'input',
label: '开票状态',
showInSearch: true
},
RequisitionTotalAmount: {
type: 'input',
label: '申请总金额'
},
CustomerName: {
type: 'input',
label: '客户名称',
showInSearch: true
},
CreateName: {
type: 'input',
label: '申请人'
},
CreateOn: {
type: 'input',
label: '申请时间'
},
ReferenceNote: {
type: 'input',
label: '参考备注'
},
ActualNote: {
type: 'input',
label: '实际备注'
},
DisagreementReasons: {
type: 'input',
label: '不同意原因'
},
TwiceCheckNoPastReasons: {
type: 'input',
label: '复核未通过原因'
},
IsToERP: {
type: 'input',
label: '是否同步ERP'
},
Total_invoice_price: {
label: '操作',
fixed: 'right',
minWidth: 200,
hideInFilter: true,
renderItem: (h, scope, listeners) => {
return h('div', [
h('el-button', {
on: {
click: (e) => listeners.handleDetails(scope.row)
},
props: {
icon: 'el-icon-d-arrow-right',
type: 'text'
}
}, '详情')
])
}
}
}
}
export default tableConfig
<template>
<div class="app-container">
<ele-search
:columns="tableConfig.columns"
@handleSearch="handleSearch"
@handleReset="handleReset"
@handleFilter="handleFilter"
/>
<div class="table-container">
<TableBtns>
<template v-slot:left>
<el-button
icon="el-icon-upload2"
@click="handleAdd"
>导出申请</el-button>
<el-button
type="primary"
icon="el-icon-sort"
@click="handleSynchronization"
>ERP同步</el-button>
</template>
</TableBtns>
<ele-table
ref="eleTable"
v-bind="tableConfig"
:expand-params="expandParams"
:listeners="tableListeners"
@handleSelectionChange="handleSelectionChange"
/>
</div>
</div>
</template>
<script>
import constant from './constant'
import tableMixin from '@/mixins/table'
export default {
mixins: [tableMixin],
data() {
return {
expandParams: {}, // 筛选条件
tableListeners: {}, // 事件监听对象,供ele-table内部调用
tableConfig: constant
}
},
created() {
this.tableListeners = {
handleDetails: this.handleDetails // 详情
}
},
methods: {
// 详情页
handleDetails(row) {
console.log(row)
this.$router.push({ path: '/invoiceDetails', query: { objectID: row.ObjectID } })
},
handleSelectionChange(selection) {
console.log(selection)
this.selection = selection
}
}
}
</script>
<style>
</style>
<template>
<h2>复刻</h2>
</template>
<script>
export default {
}
</script>
<style>
</style>
......@@ -99,7 +99,7 @@
:offset="1"
class="padding-bottom">
<el-form-item label="省份:"
prop="extProvinceName_SDK"
prop="extProvinceCode_SDK"
label-width="80px"
>
<el-select v-model="formData.extProvinceCode_SDK" style="width: 91%" filterable placeholder="请选择省份" no-match-text="无匹配数据" @change="handleSelect">
......@@ -115,7 +115,7 @@
<el-col :span="7"
class="padding-bottom">
<el-form-item label="市:"
prop="extCityName_SDK"
prop="extCityCode_SDK"
label-width="80px"
required>
<el-select v-model="formData.extCityCode_SDK" style="width: 91%" filterable placeholder="请选择市" @change="handleSelectCity" >
......@@ -131,7 +131,7 @@
<el-col :span="7"
class="padding-bottom">
<el-form-item label="区:"
prop="extDistrictName_SDK"
prop="extDistrictCode_SDK"
label-width="80px"
required>
<el-select v-model="formData.extDistrictCode_SDK" style="width: 91%" filterable placeholder="请选择区" no-match-text="无匹配数据">
......@@ -320,8 +320,8 @@
label="社会统一信用代码">
</el-table-column>
</el-table>
<pagination v-show="page.TotalRecords>0"
:total="page.TotalRecords"
<pagination v-show="TotalRecords>0"
:total="TotalRecords"
:page.sync="page.currentPage"
:limit.sync="page.pageSize"
@pagination="getList" />
......@@ -351,7 +351,7 @@ export default {
countryArea: '',
title: '城市代理商注册',
loading: false,
formInline: [],
formInline: {},
recordList: [],
tableData: [],
fileList:[],
......@@ -363,9 +363,9 @@ export default {
extSocialUnifiedCreditCode_SDK: [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
extRegisteredCapital_SDK: [{ required: true, message: '请输入注册资本(万元)', trigger: 'blur' }],
extCorporateName_SDK: [{ required: true, message: '请输入法人', trigger: 'blur' }],
extProvinceName_SDK: [{ required: true, message: '请选择省份', trigger: 'blur' }],
extCityName_SDK: [{ required: true, message: '请选择市', trigger: 'blur' }],
extDistrictName_SDK: [{ required: true, message: '请选择区', trigger: 'blur' }],
extProvinceCode_SDK: [{ required: true, message: '请选择省份', trigger: 'blur' }],
extCityCode_SDK: [{ required: true, message: '请选择市', trigger: 'blur' }],
extDistrictCode_SDK: [{ required: true, message: '请选择区', trigger: 'blur' }],
extAddressDetail_SDK: [{ required: true, message: '请输入详细经营地址', trigger: 'blur' }],
extLeader_SDK: [{ required: true, message: '请输入公司负责人姓名', trigger: 'blur' }],
extLeaderPhone_SDK: [{ required: true, message: '请输入公司负责人联系电话', trigger: 'blur' }],
......@@ -375,9 +375,11 @@ export default {
extUnisEmail_SDK: [{ required: true, message: '请输入Unis业务负责人邮箱', trigger: 'blur' }],
},
dialogTableVisible: false,
TotalRecords:0,
page: {
currentPage: 0,
pageSize: 0
pageSize: 0,
}
}
......@@ -394,6 +396,7 @@ export default {
this.$request(Qcc.searchUrl, this.page).then((resp) => {
this.tableData = resp.results.Result
this.page = resp.results.Paging
this.TotalRecords=resp.results.Paging.TotalRecords
})
},
selectCountry(){
......
......@@ -276,7 +276,7 @@
</el-col>
<el-col :span="11" :offset="1" class="padding-bottom">
<el-form-item label="签约渠道类型:" prop="ExtChannelType_SDK" label-width="120px" >
<el-select v-model="formData.ExtChannelType_SDK" style="width: 91%" filterable placeholder="请选择" no-match-text="无匹配数据">
<el-select v-model="formData.ExtChannelType_SDK" style="width: 91%" filterable placeholder="请选择" no-match-text="无匹配数据">
<el-option
v-for="item in aOptions"
:key="item.id"
......@@ -288,7 +288,7 @@
</el-col>
<el-col :span="12" class="padding-bottom">
<el-form-item label="签约产品组:" prop="ExtProductGroup_SDK" label-width="120px" >
<el-select v-model="formData.ExtProductGroup_SDK" style="width: 91%" filterable placeholder="请选择" no-match-text="无匹配数据">
<el-select v-model="formData.ExtProductGroup_SDK" style="width: 91%" multiple filterable placeholder="请选择" no-match-text="无匹配数据">
<el-option
v-for="item in bOptions"
:key="item.id"
......@@ -300,7 +300,7 @@
</el-col>
<el-col :span="11" :offset="1" class="padding-bottom">
<el-form-item label="签约总代:" prop="extTotalAgent_SDK" label-width="100px" >
<el-select v-model="formData.extTotalAgent_SDK" style="width: 91%" filterable placeholder="请选择" no-match-text="无匹配数据">
<el-select v-model="formData.extTotalAgent_SDK" style="width: 91%" multiple filterable placeholder="请选择" no-match-text="无匹配数据">
<el-option
v-for="item in cOptions"
:key="item.id"
......@@ -329,11 +329,7 @@
action="https://jsonplaceholder.typicode.com/posts/"
:limit='1'
:auto-upload="false"
:before-upload="beforeUploadFile"
:on-change="fileChange"
:on-exceed="exceedFile"
:on-success="handleSuccess"
:on-error="handleError"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
......@@ -383,8 +379,8 @@
label="社会统一信用代码">
</el-table-column>
</el-table>
<pagination v-show="page.TotalRecords>0"
:total="page.TotalRecords"
<pagination v-show="TotalRecords>0"
:total="TotalRecords"
:page.sync="page.currentPage"
:limit.sync="page.pageSize"
@pagination="getList" />
......@@ -409,7 +405,7 @@ export default {
inputEnter: false,
countryArea: '',
loading: false,
formInline: [],
formInline: {},
recordList: [],
tableData: [],
fileList:[],
......@@ -420,7 +416,7 @@ export default {
bOptions:[],
cOptions:[],
supplierBaseRules: {
Name: [{ required: true, message: '请选择公司名称', trigger: 'blur' }],
Name: [{ required: true, message: '请选择公司名称', trigger: ['change', 'blur'] }],
extSocialUnifiedCreditCode_SDK: [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
extRegisteredCapital_SDK: [{ required: true, message: '请输入注册资本(万元)', trigger: 'blur' }],
extCorporateName_SDK: [{ required: true, message: '请输入法人', trigger: 'blur' }],
......@@ -442,6 +438,7 @@ export default {
extTotalAgent_SDK: [{ required: true, message: '请选择签约总代', trigger: 'blur' }],
},
dialogTableVisible: false,
TotalRecords:0,
page: {
currentPage: 0,
pageSize: 0
......@@ -451,6 +448,11 @@ export default {
},
watch: {
},
computed:{
visitedViews() {
return this.$store.state.tagsView.visitedViews
},
},
created() {
this.selectCountry()
......@@ -462,6 +464,7 @@ export default {
this.$request(Qcc.searchUrl, this.page).then((resp) => {
this.tableData = resp.results.Result
this.page = resp.results.Paging
this.TotalRecords=resp.results.Paging.TotalRecords
})
},
selectCountry(){
......@@ -517,10 +520,23 @@ export default {
// return false;
// }
// });
this.formData. ExtCustomerType_SDK=101
this.$request(Customer.searchUrl,this.paramsToFormData(this.formData)).then((resp) => {
this.$message.success('提交成功!')
window.close();
// this.handleClickGoBack()
})
},
handleClickGoBack() {
// const visitedViews = this.$store.state.tagsView.visitedViews
// const path = this.$route.path
// visitedViews.forEach(function(item, index) {
// if (item.path == path) {
// visitedViews.splice(index, 1)
// }
// })
this.$store.dispatch('tagsView/delView', this.visitedViews).then((visitedViews) => {
this.$router.back()
})
},
paramsToFormData(obj) {
......@@ -537,7 +553,7 @@ export default {
return formData;
},
reSet() {
formInline.Name=''
this.formInline.Name=''
},
handleClose() {
this.dialogTableVisible = false
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment