Commit 1facc496 authored by rex's avatar rex

Merge branch 'dev' into 'master'

Dev

See merge request !3
parents f049cbf9 d55887d4
...@@ -8,7 +8,11 @@ export const customer = { ...@@ -8,7 +8,11 @@ export const customer = {
updateUrl: '/customer/update', updateUrl: '/customer/update',
deleteUrl: '/customer/delete', deleteUrl: '/customer/delete',
} }
//查询省级供应商待审批列表
export const province = {
searchUrl: '/customer/searchProcessCustomer',
}
// 查询全部代理商数据 // 查询全部代理商数据
export function getAllData(data) { export function getAllData(data) {
return request({ return request({
...@@ -17,6 +21,52 @@ export function getAllData(data) { ...@@ -17,6 +21,52 @@ export function getAllData(data) {
data data
}) })
} }
// 新增代理商
export function customerCreate(data) {
return request({
url: '/customer/create',
method: 'post',
data
})
}
// 查询省
export function provinceSearch(data) {
return request({
url: '/province/searchAll',
method: 'post',
data
})
}
// 查询市
export function citySearch(data){
return request({
url: '/city/searchAll',
method: 'post',
data
})
}
// 查询市
export function districtSearch(data){
return request({
url: '/district/searchAll',
method: 'post',
data
})
}
// 客户发布记录
// 签约产品组
export function searchProduct(data) {
return request({
method: 'post',
url: '/commonSession/searchAll',
data
})
}
// // 客户发布记录 // // 客户发布记录
// export const releaseRecord = { // export const releaseRecord = {
// createUrl: '/releaserecord/create', // createUrl: '/releaserecord/create',
...@@ -65,13 +115,6 @@ export function getAllData(data) { ...@@ -65,13 +115,6 @@ export function getAllData(data) {
// }) // })
// } // }
// // 一级分类
// export function fetchFirstLevelClassification() {
// return request({
// method: 'post',
// url: '/levelClassification/searchAllOne'
// })
// }
// // 二级分类 // // 二级分类
// export function fetchSecondLevelClassification(data) { // export function fetchSecondLevelClassification(data) {
...@@ -91,14 +134,14 @@ export function getAllData(data) { ...@@ -91,14 +134,14 @@ export function getAllData(data) {
// }) // })
// } // }
// // 客户项目信息 // 客户项目信息
// export const project = { export const project = {
// createUrl: '/project/create', createUrl: '/address/create',
// searchUrl: '/project/search', searchUrl: '/address/search',
// detailUrl: '/project/getOne', detailUrl: '/address/getOne',
// updateUrl: '/project/update', updateUrl: '/address/update',
// deleteUrl: '/project/delete' deleteUrl: '/address/delete'
// } }
// // 客户市场信息 // // 客户市场信息
// export const market = { // export const market = {
...@@ -211,15 +254,14 @@ export function getAllData(data) { ...@@ -211,15 +254,14 @@ export function getAllData(data) {
// updateUrl: '/paymentTerm/updateDetail' // updateUrl: '/paymentTerm/updateDetail'
// } // }
// // 客户附件 // 客户附件
// export const file = { export const file = {
// createUrl: '/file/create', createUrl: '/create',
// searchUrl: '/file/search', searchUrl: '/search',
// detailUrl: '/file/getOne', detailUrl: '/getOne',
// updateUrl: '/file/update', updateUrl: '/update',
// deleteUrl: '/file/delete', deleteUrl: '/delete',
// deleteDetailUrl: '/file/deleteDetail' }
// }
// export const businessLog = { // export const businessLog = {
// searchUrl: '/businessLog/search' // searchUrl: '/businessLog/search'
......
...@@ -424,6 +424,7 @@ export default { ...@@ -424,6 +424,7 @@ export default {
'module': 'OpportunityPhaseTask' 'module': 'OpportunityPhaseTask'
}, },
flowDefinitions: 'flow/definition/getAllEnum', flowDefinitions: 'flow/definition/getAllEnum',
flowNodesByDefinition: 'flow/node/getAllEnumByDefinitionId?definitionId=1424712643570155522', flowNodesByDefinition: 'flow/node/getAllEnumByDefinitionId?definitionId=1424712643570155522',
......
...@@ -173,5 +173,26 @@ export default { ...@@ -173,5 +173,26 @@ export default {
layout: 12 layout: 12
} }
} }
},
// 公司企称
qcc: {
searchUrl: '/qcc/search',
formDesc: {
Name: {
label: '公司名称',
type: 'input',
layout: 12
},
OperName: {
label: '法人',
type: 'input',
layout: 12
},
CreditCode: {
label: '社会统一信用代码',
type: 'input',
layout: 12
}
}
} }
} }
...@@ -11,3 +11,7 @@ export const Country = { ...@@ -11,3 +11,7 @@ export const Country = {
export const Customer = { export const Customer = {
searchUrl: '/customer/create', searchUrl: '/customer/create',
} }
export const Common = {
searchUrl: '/commonSession/searchAll',
}
\ No newline at end of file
...@@ -248,7 +248,7 @@ export default { ...@@ -248,7 +248,7 @@ export default {
const params = this.$translateToC4CData(data) const params = this.$translateToC4CData(data)
delete params.total delete params.total
this.$request(url, params).then(res => { this.$request(url, params).then(res => {
this.tableData = res.results || [] this.tableData = res.results.Result || []
this.pageData.total = Number(res.totalSize || 0) this.pageData.total = Number(res.totalSize || 0)
this.loading = false this.loading = false
}) })
......
import LovComponent from './index.vue'
const Lovs = {
install: function(Vue) {
Vue.component(LovComponent.name, LovComponent)
}
}
export default Lovs
<template>
<div
class="lovs"
style="width: 100%"
>
<el-input
v-model="text"
:readonly="true"
:disabled="disabled"
:placeholder="placeholder ? placeholder : '请选择'"
style="width: 100%"
@mouseenter.native="hovering = true"
@mouseleave.native="hovering = false"
@focus="focused = true"
@blur="focused = false"
>
<i
v-if="clearable && showClear"
slot="suffix"
class="el-input__icon el-icon-circle-close el-input__clear"
@click="clear"
/>
<i
v-if="!disabled"
slot="suffix"
class="el-input__icon el-icon-search"
@click="createLovTable"
/>
</el-input>
<el-dialog
v-el-drag-dialog
:visible.sync="dialogTableVisible"
:title="'请选择'+label"
width="50%"
class="lov-dialog"
:append-to-body="true"
:before-close="handleClose"
@opened="onPreviewDialogOpened"
@dragDialog="handleDrag"
>
<el-row class="rowbig">
<el-col
:span="16"
class="dynamic-class"
>
<ele-form
v-model="searchData"
v-bind="formConfig"
/>
</el-col>
<el-col :span="8">
<div style="display:flex;justify-content: flex-end;">
<el-button
type="primary"
@click="handleSearch"
>查询</el-button>
<el-button
plain
@click="handleReset"
>重置</el-button>
<el-button
v-if="multi"
plain
@click="handleMultiSelect"
>选择</el-button>
</div>
</el-col>
</el-row>
<div>
<el-table
v-loading="loading"
:data="tableData"
fit
highlight-current-row
:header-cell-style="dialogHeaderCellStyle"
style="width: 100%;"
@row-dblclick="handleSelect"
@selection-change="(rows) => (selectedRows = rows)"
>
<el-table-column
v-if="multi"
type="selection"
width="55"
align="center"
/>
<el-table-column
v-for="(item, key) in formConfig.formDesc"
:key="key"
:label="item.label"
:width="item.width"
align="center"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">{{ item.value ? scope.row[item.value] : scope.row[key] }}</template>
</el-table-column>
</el-table>
</div>
<pagination
v-show="pageData.total > 0"
style="padding-bottom:8px"
:total="pageData.total"
:page.sync="pageData.currentPage"
:limit.sync="pageData.pageSize"
@pagination="fetchTable"
/>
</el-dialog>
</div>
</template>
<script>
/* eslint-disable no-eval */
import Pagination from '@/components/Pagination'
import elDragDialog from '@/directive/el-drag-dialog'
import lovData from '@/api/lov-data'
const isNumber = require('is-number')
function isNil(value) {
return value == null
}
export default {
name: 'Lovs',
directives: { elDragDialog },
components: {
Pagination
},
filters: {
dialogWidthFilter(width) {
if (isNil(width) || !isNumber(width)) {
return '60%'
} else {
return `${width}%`
}
}
},
props: {
code: {
type: String,
default: ''
},
searchUrl: {
type: String,
default: ''
}, // 请求地址,请求地址为空时候使用`/${code}/search`查询
label: {
type: String,
default: ''
}, // 作为标题
initialParams: {
type: Object,
default: () => { }
}, // 初始搜索条件
displayKey: {
type: String,
default: ''
}, // 展示在页面的属性值,若无则使用表格第一列数据
/* eslint-disable */
returnFn: [Function], // 处理返回值函数,使其符合接口要求
/* eslint-enable */
value: {
type: String,
default: ''
},
multi: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
/* eslint-disable */
beforeSelected: [Function],
/* eslint-enable */
clearable: {
type: Boolean,
default: false
},
placeholder: {
type: String,
default: ''
}
},
data: function() {
return {
defaultFormConfig: {
isShowSubmitBtn: false,
isShowBackBtn: false,
labelPosition: 'left'
},
formConfig: {
formDesc: {}
},
dialogTableVisible: false,
searchData: {},
tableData: [],
pageData: {
total: 0,
currentPage: 0,
pageSize: 10
},
text: this.value,
selectedRows: [],
hovering: false,
focused: false,
loading: true
}
},
computed: {
showClear() {
return this.focused || this.hovering
}
},
watch: {
value(val) {
this.text = val
}
},
methods: {
clear() {
this.text = '' // 清空显示文本
const val = this.translateRow({})
this.$emit('handleSelected', val)
},
// v-el-drag-dialog onDrag callback function
handleDrag() {
// this.$refs.select.blur()
},
createLovTable() {
var formConfig = Object.assign(this.defaultFormConfig, lovData[this.code])
this.formConfig = formConfig
this.dialogTableVisible = true
this.handleSearch()
},
handleSearch() {
this.pageData.currentPage = 1
this.fetchTable()
},
handleReset() {
this.searchData = {}
this.handleSearch()
},
fetchTable() {
this.loading = true
const url = this.searchUrl ? this.searchUrl : `/${this.code}/search`
const data = Object.assign({}, this.initialParams, this.searchData, this.pageData)
const params = this.$translateToC4CData(data)
delete params.total
this.$request(url, params).then(res => {
this.tableData = res.results.Result || []
this.pageData.total = Number(res.totalSize || 0)
this.loading = false
})
},
handleSelect(row) {
if (typeof this.beforeSelected === 'function') {
this.beforeSelected(this.setValue, row)
} else {
this.setValue(row)
}
},
setValue(row) {
// 展示的key值,如果没有传值进来则使用表格第一列的值
const key = this.displayKey ? this.displayKey : Object.keys(this.formConfig.formDesc)[0]
this.text = row[key]
const val = this.translateRow(row)
this.$emit('handleSelected', val)
this.dialogTableVisible = false
},
translateRow(row) {
var result
if (this.returnFn && typeof this.returnFn === 'function') {
result = this.returnFn(row)
if (Object.prototype.toString.call(result) !== '[object Object]') {
throw Error('lov配置中returnFn的返回值不是object')
}
} else {
result = this.text
}
return result
},
handleMultiSelect() {
if (this._.isEmpty(this.selectedRows)) {
this.$notify({
title: '警告',
message: '未选择',
type: 'warning',
duration: 2000
})
} else {
const values = this.selectedRows.map((r) => r[this.lovData.valueField])
const texts = this.selectedRows.map((r) => r[this.lovData.textField])
this.$emit('handleSelected', this.selectedRows)
this.text = this._.toString(texts)
// this.$emit('update:text', this._.toString(texts))
this.$parent.$emit('el.form.change', [values])
this.dialogTableVisible = false
}
},
onPreviewDialogOpened() { },
handleClose(done) {
done()
},
dialogHeaderCellStyle() {
return 'background-color: #f7f8fa;'
}
}
}
</script>
<style lang="scss">
.lov-dialog {
.el-dialog__header {
padding: 16px 20px;
border-bottom: 1px solid #f4f4f4;
}
.el-dialog__body {
padding: 16px 20px;
}
}
</style>
...@@ -185,7 +185,8 @@ export default { ...@@ -185,7 +185,8 @@ export default {
takeEffect: '生效', takeEffect: '生效',
invalid: '失效', invalid: '失效',
baseInfo: '基础信息', baseInfo: '基础信息',
viewAttachments: '查看附件' viewAttachments: '查看附件',
approve:'审批'
}, },
example: { example: {
warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见' warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见'
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</ul> </ul>
</li> </li>
<!-- 消息三小列表 --> <!-- 消息三小列表 -->
<li <!-- <li
v-for="route in topRoutes.slice(-1)" v-for="route in topRoutes.slice(-1)"
:key="route.meta.title" :key="route.meta.title"
class="nav-item" class="nav-item"
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
/> />
<span>{{ route.meta.topTitle }}</span> <span>{{ route.meta.topTitle }}</span>
<el-badge :value="2" class="item" /> <el-badge :value="2" class="item" />
</li> </li> -->
</ul> </ul>
<!-- <div class="Mymessage"> <!-- <div class="Mymessage">
<router-link to="/message/index"> <router-link to="/message/index">
......
...@@ -15,6 +15,7 @@ import EleSearch from '@/components/EleSearch' ...@@ -15,6 +15,7 @@ import EleSearch from '@/components/EleSearch'
import TableBtns from '@/components/TableBtns' import TableBtns from '@/components/TableBtns'
import FormTitle from '@/components/FormTitle' import FormTitle from '@/components/FormTitle'
import Lov from '@/components/Lov' import Lov from '@/components/Lov'
import Lovs from '@/components/Lovs'
import BusinessTable from '@/components/BusinessTable' import BusinessTable from '@/components/BusinessTable'
import DetailTable from '@/components/DetailTable' import DetailTable from '@/components/DetailTable'
import DescriptionTable from '@/components/DescriptionTable' import DescriptionTable from '@/components/DescriptionTable'
...@@ -60,6 +61,7 @@ Vue.use(EleSearch) ...@@ -60,6 +61,7 @@ Vue.use(EleSearch)
Vue.use(TableBtns) Vue.use(TableBtns)
Vue.use(FormTitle) Vue.use(FormTitle)
Vue.use(Lov) Vue.use(Lov)
Vue.use(Lovs)
Vue.use(BusinessTable) Vue.use(BusinessTable)
Vue.use(DetailTable) Vue.use(DetailTable)
Vue.use(DescriptionTable) Vue.use(DescriptionTable)
......
/*
* @Descripttion:
* @Author: 薛泽展
* @Date: 2021-10-12 12:29:05
* @Since: JDK1.8
*/
import router from './router' import router from './router'
import store from './store' import store from './store'
import { Message } from 'element-ui' import { Message } from 'element-ui'
...@@ -8,7 +14,7 @@ import getPageTitle from '@/utils/get-page-title' ...@@ -8,7 +14,7 @@ import getPageTitle from '@/utils/get-page-title'
NProgress.configure({ showSpinner: false }) // NProgress Configuration NProgress.configure({ showSpinner: false }) // NProgress Configuration
const whiteList = ['/login', '/auth-redirect'] // no redirect whitelist const whiteList = ['/prov-register', '/city-register', '/login', '/auth-redirect'] // no redirect whitelist
router.beforeEach(async(to, from, next) => { router.beforeEach(async(to, from, next) => {
// start progress bar // start progress bar
...@@ -60,17 +66,27 @@ router.beforeEach(async(to, from, next) => { ...@@ -60,17 +66,27 @@ router.beforeEach(async(to, from, next) => {
NProgress.done() NProgress.done()
} }
} }
} }
} else { } else {
/* has no token*/ /* has no token*/
console.info('=========================111' + to.path)
if (whiteList.indexOf(to.path) !== -1) { if (whiteList.indexOf(to.path) !== -1) {
// in the free login whitelist, go directly // in the free login whitelist, go directly
console.info('=========================2222')
next() next()
} else { } else {
console.info('=========================3333')
// other pages that do not have permission to access are redirected to the login page. // other pages that do not have permission to access are redirected to the login page.
next(`/login?redirect=${to.path}`) if (to.path === '/city-register') {
NProgress.done() next({ path: '/city-register'})
} else if (to.path === '/prov-register') {
next({ path : '/prov-register'})
} else {
next(`/login?redirect=${to.path}`)
NProgress.done()
}
// next(`/login?redirect=${to.path}`)
// NProgress.done()
} }
} }
}) })
......
...@@ -11,7 +11,7 @@ function fetchDictionary(data) { ...@@ -11,7 +11,7 @@ function fetchDictionary(data) {
return enums[code] return enums[code]
} }
return request({ return request({
url: '/enum/queryAll', url: '/commonSession/searchAll',
method: 'post', method: 'post',
data data
}).then((res) => { }).then((res) => {
......
// import dictionary from '@/api/dictionary'
const adressConfig = {
labelPosition: 'left',
isShowBackBtn: false,
isShowSubmitBtn: true,
formDesc: {
Name: {
type: 'select',
label: '省份',
layout: 24
},
ExtSecondName_SDK: {
type: 'input',
label: '城市',
layout: 12,
},
ExtSocialUnifiedCreditCode_SDK: {
type: 'input',
label: '县市',
layout: 12
},
ExtAddressDetail_SDK: {
type: 'input',
label: '详细经营地址',
layout: 12,
},
}
}
export default { adressConfig }
<template>
<div>
<!-- <Title :title="title">
<span>*</span>为必填项
</Title> -->
<div class="form-container">
<form-title :title="formTitle" />
<ele-form
ref="form"
v-model="formData"
v-bind="basicConfig"
>
<template v-slot:form-btn>
<el-button
type="primary"
icon="el-icon-right"
:loading="loading"
@click="handleSubmit"
>保存提交</el-button>
</template>
</ele-form>
</div>
</div>
</template>
<script>
import Title from '@/components/Title'
import formConfig from './constant'
export default {
components: {
Title
},
props: {
// 状态判断是由那个页面跳转
status: {
type: String,
default: ''
},
formList: {
type: Object,
default: Function
}
},
data() {
return {
// title: '报价申请',
formTitle: '基础信息',
loading: false,
formData: {},
basicConfig: formConfig.basicConfig,
adressConfig: formConfig.adressConfig
}
},
// watch: {
// formList() {
// this.formData = this.formList
// },
// status: {
// handler(newVal) {
// console.log(newVal)
// },
// immediate: true,
// deep: true
// }
// },
// mounted() {
// // 判断是有那个页面跳转,一个是从报价新增按钮一个是从商机
// if (this.status === '新增') {
// this.formData = {
// Ext_QuoteType_KUT: '预备货报价',
// Ext_QuoteStatus_KUT: '101'
// }
// this.formConfig.formDesc.ProductRecipientPartyName.disabled = false
// } else {
// this.formData = {
// Ext_QuoteType_KUT: '普通报价',
// Ext_QuoteStatus_KUT: '101'
// }
// }
// },
methods: {
// handleSubmit() {
// // console.log('跳转')
// this.stepBmit()
// },
// stepBmit() {
// // 将表单中的存储的数据返回
// this.$emit('changeComponent', 'productInforma', this.formData)
// }
}
}
</script>
<style>
</style>
\ No newline at end of file
// import dictionary from '@/api/dictionary'
const basicConfig = {
labelPosition: 'left',
isShowBackBtn: false,
isShowSubmitBtn: true,
formDesc: {
Name: {
type: 'lov',
label: '公司企称',
layout: 24
},
ExtSecondName_SDK: {
type: 'input',
label: '公司企称曾用名',
layout: 12,
},
ExtSocialUnifiedCreditCode_SDK: {
type: 'input',
label: '社会统一信用代码',
layout: 12
},
ExtRegisteredCapital_SDK: {
type: 'input',
label: '注册资本(万元)',
layout: 12,
},
ExtCorporateName_SDK: {
type: 'input',
label: '法人',
layout: 12,
},
// Ext_QuoteOppotunity_KUT: {
// type: 'input',
// label: '税务登记编号',
// layout: 12
// },
ExtAddressDetail_SDK: {
type: 'input',
label: '详细经营地址',
layout: 12,
},
}
}
export default { basicConfig }
<template>
<div>
<!-- <Title :title="title">
<span>*</span>为必填项
</Title> -->
<div class="form-container">
<form-title :title="formTitle" />
<ele-form
ref="form"
v-model="formData"
v-bind="basicConfig"
>
<template v-slot:form-btn>
<el-button
type="primary"
icon="el-icon-right"
:loading="loading"
@click="handleSubmit"
>保存提交</el-button>
</template>
</ele-form>
</div>
</div>
</template>
<script>
import Title from '@/components/Title'
import formConfig from './constant'
export default {
components: {
Title
},
props: {
// 状态判断是由那个页面跳转
status: {
type: String,
default: ''
},
formList: {
type: Object,
default: Function
}
},
data() {
return {
// title: '报价申请',
formTitle: '基础信息',
loading: false,
formData: {},
basicConfig: formConfig.basicConfig,
adressConfig: formConfig.adressConfig
}
},
// watch: {
// formList() {
// this.formData = this.formList
// },
// status: {
// handler(newVal) {
// console.log(newVal)
// },
// immediate: true,
// deep: true
// }
// },
// mounted() {
// // 判断是有那个页面跳转,一个是从报价新增按钮一个是从商机
// if (this.status === '新增') {
// this.formData = {
// Ext_QuoteType_KUT: '预备货报价',
// Ext_QuoteStatus_KUT: '101'
// }
// this.formConfig.formDesc.ProductRecipientPartyName.disabled = false
// } else {
// this.formData = {
// Ext_QuoteType_KUT: '普通报价',
// Ext_QuoteStatus_KUT: '101'
// }
// }
// },
methods: {
// handleSubmit() {
// // console.log('跳转')
// this.stepBmit()
// },
// stepBmit() {
// // 将表单中的存储的数据返回
// this.$emit('changeComponent', 'productInforma', this.formData)
// }
}
}
</script>
<style>
</style>
\ No newline at end of file
import { project } from '@/api/customers'
const tableConfig = {
tableTitle: '上传附件',
url: project.searchUrl,
showPagination: false,
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
Name: {
label: '联系人',
},
Phone: {
label: '电话'
},
Detail: {
label: '地址详细信息'
},
handle: {
label: '操作',
hideInFilter: true,
fixed: 'right',
renderItem: (h, scope, listeners) => {
return h(
'el-button',
{
on: {
click: (e) => listeners.handleEdit(scope.row, scope.$index)
},
class: 'el-icon-edit',
props: {
type: 'text'
}
},
'编辑')
}
}
}
}
const formConfig = {
labelPosition: 'left',
submitBtnText: '保存',
formDesc: {
Name: {
type: 'input',
layout: 12,
label: '联系人'
},
Phone: {
label: '电话',
type: 'input',
layout: 12,
},
Detail: {
label: '地址详细信息',
type: 'input',
layout: 12,
},
}
}
export default {
tableConfig,
formConfig,
...project
}
<template>
<div v-if="addBtnStart">
<FileTable :type-code="typeCode" :objectID='objectId' />
</div>
</template>
<script>
import { uploadCode } from '@/api/upload'
import FileTable from '@/views/public/file-info'
export default {
components: {
FileTable
},
props: {
addBtnStart: {
type: Boolean,
default: false
},
objectId: {
type: String,
default: ''
}
},
data() {
return {
typeCode: uploadCode.customer
}
},
watch: {
addBtnStart: {
handler(newVal) {
console.log(newVal)
},
immediate: true,
deep: true
},
objectId: {
handler(newVal) {
console.log(newVal)
},
immediate: true,
deep: true
}
}
}
</script>
<style>
</style>
\ No newline at end of file
import { project } from '@/api/customers'
const tableConfig = {
tableTitle: '收货地址',
url: project.searchUrl,
showPagination: false,
defaultColumns: {
minWidth: 120,
showOverflowTooltip: true,
align: 'center'
},
columns: {
Name: {
label: '联系人',
},
Phone: {
label: '电话'
},
Detail: {
label: '地址详细信息'
},
handle: {
label: '操作',
hideInFilter: true,
fixed: 'right',
renderItem: (h, scope, listeners) => {
return h(
'el-button',
{
on: {
click: (e) => listeners.handleEdit(scope.row, scope.$index)
},
class: 'el-icon-edit',
props: {
type: 'text'
}
},
'编辑')
}
}
}
}
const formConfig = {
labelPosition: 'left',
submitBtnText: '保存',
formDesc: {
Name: {
type: 'input',
layout: 12,
label: '联系人'
},
Phone: {
label: '电话',
type: 'input',
layout: 12,
},
Detail: {
label: '地址详细信息',
type: 'input',
layout: 12,
},
}
}
export default {
tableConfig,
formConfig,
...project
}
<template>
<div v-if="addBtnStart">
<BusinessTable v-bind="constant"/>
</div>
</template>
<script>
import constant from './constant'
export default {
props: {
addBtnStart: {
type: Boolean,
default: false
},
objectId: {
type: String,
default: ''
}
},
data() {
return {
constant: {}
}
},
watch: {
addBtnStart: {
handler(newVal) {
console.log(newVal)
},
immediate: true,
deep: true
},
objectId: {
handler(newVal) {
constant.tableConfig.initialParams = {
BusinessObjectID: newVal
}
},
immediate: true,
deep: true
}
},
created() {
// 设置表单的初始搜索条件,该条件一般不会发生改变
constant.tableConfig.initialParams = {
BusinessObjectID: this.objectId
}
this.constant = constant
}
}
</script>
<style>
</style>
\ No newline at end of file
<template> <template>
<div> <div class="form-container">
<Title :title="title">
<span>*</span>为必填项
</Title>
<div>
<ele-form-section
v-model="formData"
:request-fn="handleSubmit"
:rules="rules"
:sections="sections"
@request-success="handleSuccess"
/>
</div>
<customerAddAddress :addBtnStart='addBtnStart' :objectId='objectId'/>
<customerAddAccessory :addBtnStart='addBtnStart' :objectId='objectId'/>
<!-- <div class="btn">
<el-button type="primary">提交保存</el-button>
</div> -->
</div> </div>
</template> </template>
<script> <script>
import basicConfig from './components/basic-config/index' import Title from '@/components/Title'
import { customerCreate, provinceSearch, citySearch, districtSearch } from '@/api/customers';
import customerAddAddress from './components/customersAdd-adress/index'
import customerAddAccessory from './components/customersAdd-accessory/index'
// import dictionary from '@/api/dictionary'
export default { export default {
components: {
Title,
customerCreate,
customerAddAddress,
customerAddAccessory,
provinceSearch,
citySearch,
districtSearch
},
data () {
return {
title: '代理商新增',
addBtnStart: true,
objectId: '',
formData: {},
province: [],
sections: [
{
title: '基本信息',
formDesc: {
Name: {
type: 'lov',
label: '公司企称',
layout: 24,
code: 'qcc',
returnFn: function(row) {
return {
Name: row.Name,
ExtSocialUnifiedCreditCode_SDK: row.CreditCode,
ExtCorporateName_SDK: row.OperName
}
},
},
ExtSecondName_SDK: {
type: 'input',
label: '公司企称曾用名',
layout: 12,
},
ExtSocialUnifiedCreditCode_SDK: {
type: 'input',
label: '社会统一信用代码',
layout: 12
},
ExtRegisteredCapital_SDK: {
type: 'input',
label: '注册资本(万元)',
layout: 12,
},
ExtCorporateName_SDK: {
type: 'input',
label: '法人',
layout: 12,
},
// Ext_QuoteOppotunity_KUT: {
// type: 'input',
// label: '税务登记编号',
// layout: 12
// },
}
},
{
title: '地址信息',
formDesc: {
ExtProvinceCode_SDK: {
type: 'select',
label: '省份',
layout: 12,
options: async data => {
const res = await provinceSearch({})
var result = res.results.map(item => {
return {
text: item.Name,
value: item.Code
}
})
return result
},
},
ExtCityCode_SDK: {
type: 'select',
label: '城市',
layout: 12,
isOptions: true,
optionsLinkageFields: ['ExtProvinceCode_SDK'],
options: async data => {
if (!data.ExtProvinceCode_SDK) {
return []
}
const res = await citySearch({
provinceCode: data.ExtProvinceCode_SDK
})
var result = res.results.map(item => {
return {
text: item.Name,
value: item.Code
}
})
return result
},
},
ExtDistrictCode_SDK: {
type: 'select',
label: '县市',
layout: 12,
isOptions: true,
optionsLinkageFields: ['ExtProvinceCode_SDK', 'ExtCityCode_SDK'],
options: async data => {
if (!data.ExtCityCode_SDK) {
return []
}
const res = await districtSearch({
cityCode: data.ExtCityCode_SDK
})
var result = res.results.map(item => {
return {
text: item.Name,
value: item.Code
}
})
return result
},
},
ExtAddressDetail_SDK: {
type: 'input',
label: '详细经营地址',
layout: 12,
},
}
},
{
title: '联系信息',
formDesc: {
ExtLeader_SDK: {
type: 'input',
label: '公司负责人姓名',
layout: 12
},
ExtLeaderPhone_SDK: {
type: 'input',
label: '公司负责人联系方式',
layout: 12
},
ExtLeaderEmail_SDK: {
type: 'input',
label: '公司负责人邮箱',
layout: 12
},
ExtUnis_SDK: {
type: 'input',
layout: 12,
label: 'Unis业务负责人姓名'
},
ExtUnisPhone_SDK: {
type: 'input',
layout: 12,
label: 'Unis业务负责人联系方式'
},
ExtUnisEmail_SDK: {
type: 'input',
label: 'Unis业务负责人邮箱',
layout: 12
},
ExtBusiness_SDK: {
type: 'input',
layout: 12,
label: '商务负责人姓名'
},
ExtBusinessPhone_SDK: {
type: 'input',
layout: 12,
label: '商务负责人联系方式'
},
ExtBusinessEmail_SDK: {
type: 'input',
label: '商务负责人邮箱',
layout: 12
},
}
}
],
// 同 vue-ele-form
rules: {
Name: {required: true, message: '名称必填'},
ExtSocialUnifiedCreditCode_SDK: { required: true, message: '名称必填' },
ExtSocialUnifiedCreditCode_SDK: { required: true, message: '名称必填' },
ExtRegisteredCapital_SDK: {required: true, message: '名称必填' },
ExtCorporateName_SDK: { required: true, message: '名称必填' },
}
}
},
methods: {
handleSubmit (data) {
console.log(data)
// this.addBtnStart = true
customerCreate(this.paramsToFormData(data)).then(res => {
// console.log(res)
this.addBtnStart = true
this.objectId = res.results
this.$message.success('创建成功')
})
// return Promise.resolve()
},
handleSuccess () {
// this.$message.success('创建成功')
},
// 对象格式转化为键值对
paramsToFormData(obj) {
const formData = new FormData();
Object.keys(obj).forEach((key) => {
if (obj[key] instanceof Array) {
obj[key].forEach((item) => {
formData.append(key, item);
});
return;
}
formData.append(key, obj[key]);
});
return formData;
},
}
} }
</script> </script>
<style> <style lang="scss" scoped>
::v-deep .el-row--flex {
</style> display: -webkit-box;
\ No newline at end of file .el-col-14 {
width: 90%;
}
}
::v-deep .ele-form-btns{
.el-form-item__content {
margin-left: 45% !important;
}
}
.btn {
margin-left: 45%;
}
</style>
...@@ -31,7 +31,8 @@ const tableConfig = { ...@@ -31,7 +31,8 @@ const tableConfig = {
}, },
Name: { Name: {
label: '公司名称', label: '公司名称',
type: 'input' type: 'input',
showInSearch: true,
}, },
ExtCorporateName_SDK: { ExtCorporateName_SDK: {
label: '法定人代表', label: '法定人代表',
......
import dictionary from '@/api/dictionary' import i18n from '@/lang'
import { customer } from '@/api/customers' import { province,searchProduct } from '@/api/customers'
// 潜在客户主列表配置
const tableConfig = { const tableConfig = {
url: customer.searchUrl, url: province.searchUrl,
initialParams: {
roleCode: 'BUP002'
},
defaultColumns: { defaultColumns: {
minWidth: 120, minWidth: 120,
showOverflowTooltip: true, showOverflowTooltip: true,
align: 'center' align: 'center'
}, },
columns: { searchColums:{
Name: { Name: {
label: '客户名称', label: '公司名称',
showInSearch: true,
type: 'input', type: 'input',
fixed: 'left',
renderItem: (h, scope, listeners) => { renderItem: (h, scope, listeners) => {
return h( return h('el-button', {
'el-button', on: {
{ click: (e) => listeners.handleDetails(scope.row)
on: {
click: (e) => listeners.handleCheck(scope.row)
},
props: {
type: 'text'
}
}, },
scope.row.Name) props: {
}, type: 'text'
showInSearch: true }
}, scope.row.ID)
}
}, },
Ext_CustomerType_KUT: { ExtProductGroup_SDK: {
label: '客户类型', label: '签约产品组',
type: 'select',
value: 'Ext_CustomerType_KUTText',
showInSearch: true, showInSearch: true,
options: dictionary.customerType
},
Ext_CustomerStatus_KUT: {
label: '客户状态',
type: 'select', type: 'select',
value: 'Ext_CustomerStatus_KUTText', fixed: 'left',
showInSearch: true, isOptions:'true',
options: dictionary.customerStatus 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: { Name: {
label: '联系人', label: '公司名称',
type: 'input' type: 'input'
}, },
Ext_CustomerMainContactPhone_KUT: { ExtCorporateName_SDK: {
label: '手机号码', label: '法定人代表',
type: 'input' type: 'input'
}, },
Ext_CustomerFollowUpDate_KUT: { ExtSocialUnifiedCreditCode_SDK: {
label: '最后跟进', label: '统一社会信用代码',
type: 'input' type: 'input'
}, },
Ext_CustomerForm_KUT: {
label: '来源', CreationOn: {
value: 'Ext_CustomerForm_KUTText', label: '注册时间',
type: 'input' type: 'input'
}, },
// Ext_QuoteOppotunity_KUT: {
// type: 'input',
// label: '代理商类型',
// showInSearch: true
// },
handle: { handle: {
label: '操作', label: '操作',
hideInFilter: true,
fixed: 'right', fixed: 'right',
minWidth: 100,
hideInFilter: true,
renderItem: (h, scope, listeners) => { renderItem: (h, scope, listeners) => {
return h('div', {}, [ return h('div', [
h( h('el-button', {
'el-button', on: {
{ click: (e) => listeners.handleEdit(scope.row, 'approve')
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'
}
}, },
'删除') 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'))
]) ])
} }
} }
} }
} }
// 注销客户弹框配置 export default tableConfig
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
}
<template> <template>
<div class="app-container"> <div class="app-container">
<ele-search <ele-search
:columns="tableConfig.columns" :columns="tableConfig.searchColums"
@handleSearch="handleSearch" @handleSearch="handleSearch"
@handleReset="handleReset" @handleReset="handleReset"
@handleFilter="handleFilter"
/> />
<div class="table-container"> <div class="table-container">
<TableBtns>
<template v-slot:left>
<el-dropdown
style="margin-right: 10px;"
@command="handleAdd"
>
<el-button
type="primary"
icon="el-icon-plus"
>
添加
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="1">创建个人客户</el-dropdown-item>
<el-dropdown-item :command="2">创建企业客户</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button
plain
icon="el-icon-refresh"
@click="handleShowDialog(config.followTask)"
>分配</el-button>
<el-button
plain
icon="el-icon-user"
@click="handleShowDialog(config.resourcePool)"
>转资源池</el-button>
<el-button
plain
icon="el-icon-document"
@click="handleShowDialog(config.supervise)"
>
督办
</el-button>
<export-btn
:expand-params="expandParams"
config-code="customer"
/>
</template>
</TableBtns>
<ele-table <ele-table
ref="eleTable" ref="eleTable"
v-bind="tableConfig" v-bind="tableConfig"
:expand-params="expandParams" :expand-params="expandParams"
:listeners="tableListeners" :listeners="tableListeners"
@handleSelectionChange="handleSelectionChange"
/>
<!-- 弹框部分 -->
<ele-form-dialog
:title="dialogTitle"
:form-data="formData"
:request-fn="handleSave"
:visible.sync="dialogFormVisible"
v-bind="formConfig"
:loading="loading"
/> />
</div> </div>
</div> </div>
...@@ -71,125 +22,33 @@ ...@@ -71,125 +22,33 @@
<script> <script>
import constant from './constant' import constant from './constant'
import tableMixin from '@/mixins/table' import tableMixin from '@/mixins/table'
import followTask from '../important-customers/components/record-info/components/follow-task/constant'
import supervise from '../important-customers/components/record-info/components/supervise/constant'
import { customer } from '@/api/customers'
export default { export default {
mixins: [tableMixin], mixins: [tableMixin],
inject: ['reload'],
data() { data() {
return { return {
expandParams: {}, // 筛选条件 expandParams: {}, // 筛选条件
tableListeners: {}, // 事件监听对象,供ele-table内部调用 tableListeners: {}, // 事件监听对象,供ele-table内部调用
tableConfig: constant.tableConfig, tableConfig: constant
enterpriseUrl: '/customers/enterprise',
individualUrl: '/customers/individual',
enterpriseDetailUrl: '/customers/enterprise-detail',
individualDetailUrl: '/customers/individual-detail',
selection: [],
config: {
followTask,
supervise,
resourcePool: constant.ResourcePoolFormConfig
},
dialogTitle: '',
dialogFormVisible: false,
formData: {},
formConfig: {
formDesc: {}
},
loading: false
} }
}, },
created() { created() {
this.tableListeners = { this.tableListeners = {
handleCheck: this.handleCheck, // handleDetails: this.handleDetails, // 添加
handleEdit: this.handleEdit, // handleTakeEffect: this.handleTakeEffect, // 生效
handleDelete: this.handleDelete handleEdit: this.handleEdit, // 编辑
// handleInvalid: this.handleInvalid // 失效
} }
}, },
methods: { methods: {
handleAdd(type) { // 编辑
if (type === 1) { handleEdit(val) {
this.$router.push({ path: this.individualUrl }) this.$router.push({ path: '/customersAdd',query:{id:val.ObjectID} })
} else {
this.$router.push({ path: this.enterpriseUrl })
}
},
handleCheck(row) {
if (row.Ext_CustomerType_KUT === '121') {
this.$router.push({
path: this.individualDetailUrl,
query: { objectID: row.ObjectID }
})
} else if (row.Ext_CustomerType_KUT === '131') {
this.$router.push({
path: this.enterpriseDetailUrl,
query: { objectID: row.ObjectID }
})
}
},
handleEdit(row) {
if (row.Ext_CustomerType_KUT === '121') {
this.$router.push({
path: this.individualUrl,
query: { objectID: row.ObjectID }
})
} else if (row.Ext_CustomerType_KUT === '131') {
this.$router.push({
path: this.enterpriseUrl,
query: { objectID: row.ObjectID }
})
}
}, },
handleSelectionChange(selection) {
console.log(selection)
this.selection = selection
},
handleShowDialog(obj) {
if (this.selection.length === 0) {
this.$message.warning('请先选择一个客户')
return
}
this.dialogTitle = obj.title ? obj.title : '添加' + obj.tableConfig.tableTitle
this.postUrl = obj.createUrl
this.formData = {
objectID: this.selection[0].ObjectID,
roleCode: this.selection[0].roleCode
}
this.formConfig = obj.formConfig || obj
this.dialogFormVisible = true
},
handleSave(data) {
this.loading = true
data = this.$translateToC4CData(data)
this.$request(this.postUrl, [data]).then(res => {
this.loading = false
this.dialogFormVisible = false
}).catch(() => {
this.loading = false
})
},
handleDelete(row) {
this.$confirm('此操作将删除该客户, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const data = {
objectID: row.ObjectID,
ext_CustomerStatus_KUT: '191'
}
this.$request(customer.updateUrl, data).then(res => {
this.$message.success('删除成功')
this.handleSearch()
})
})
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style>
</style> </style>
...@@ -32,7 +32,7 @@ export default { ...@@ -32,7 +32,7 @@ export default {
} }
}, },
created() { created() {
this.getTableData() // this.getTableData()
}, },
mounted() { mounted() {
}, },
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
</div> </div>
<div class="two-column"> <div class="two-column">
<div class="left" /> <div class="left" />
<ComplaintsAndSuggestions />
</div> </div>
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;"> <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
...@@ -83,7 +82,7 @@ ...@@ -83,7 +82,7 @@
<script> <script>
import SystemNotice from './components/SystemNotice' import SystemNotice from './components/SystemNotice'
import ComplaintsAndSuggestions from './components/ComplaintsAndSuggestions' // import ComplaintsAndSuggestions from './components/ComplaintsAndSuggestions'
import PanelGroup from './components/PanelGroup' import PanelGroup from './components/PanelGroup'
import LineChart from './components/LineChart' import LineChart from './components/LineChart'
import RaddarChart from './components/RaddarChart' import RaddarChart from './components/RaddarChart'
...@@ -116,7 +115,7 @@ export default { ...@@ -116,7 +115,7 @@ export default {
name: 'DashboardAdmin', name: 'DashboardAdmin',
components: { components: {
SystemNotice, SystemNotice,
ComplaintsAndSuggestions, // ComplaintsAndSuggestions,
PanelGroup, PanelGroup,
LineChart, LineChart,
RaddarChart, RaddarChart,
......
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>
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
class="padding-bottom"> class="padding-bottom">
<el-form-item label="注册资本(万元):" <el-form-item label="注册资本(万元):"
label-width="150px" label-width="150px"
required> prop="extRegisteredCapital_SDK">
<el-input v-model="formData.extRegisteredCapital_SDK" <el-input v-model="formData.extRegisteredCapital_SDK"
:disabled="inputEnter" :disabled="inputEnter"
style="width: 80%" style="width: 80%"
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
class="padding-bottom"> class="padding-bottom">
<el-form-item label="法人:" <el-form-item label="法人:"
label-width="150px" label-width="150px"
required> prop="extCorporateName_SDK">
<template> <template>
<el-input v-model="formData.extCorporateName_SDK" <el-input v-model="formData.extCorporateName_SDK"
:disabled="inputEnter" :disabled="inputEnter"
...@@ -99,10 +99,10 @@ ...@@ -99,10 +99,10 @@
:offset="1" :offset="1"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="省份:" <el-form-item label="省份:"
prop="cerInfo.district" prop="extProvinceCode_SDK"
label-width="80px" label-width="80px"
required> >
<el-select v-model="formData.extProvinceName_SDK" style="width: 91%" filterable placeholder="请选择省份" no-match-text="无匹配数据" @change="handleSelect"> <el-select v-model="formData.extProvinceCode_SDK" style="width: 91%" filterable placeholder="请选择省份" no-match-text="无匹配数据" @change="handleSelect">
<el-option <el-option
v-for="item in countryOptions" v-for="item in countryOptions"
:key="item.Code" :key="item.Code"
...@@ -115,10 +115,10 @@ ...@@ -115,10 +115,10 @@
<el-col :span="7" <el-col :span="7"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="市:" <el-form-item label="市:"
prop="cerInfo.district" prop="extCityCode_SDK"
label-width="80px" label-width="80px"
required> required>
<el-select v-model="formData.extCityName_SDK" style="width: 91%" filterable placeholder="请选择市" @change="handleSelectCity" > <el-select v-model="formData.extCityCode_SDK" style="width: 91%" filterable placeholder="请选择市" @change="handleSelectCity" >
<el-option <el-option
v-for="item in cityOptions" v-for="item in cityOptions"
:key="item.Code" :key="item.Code"
...@@ -131,10 +131,10 @@ ...@@ -131,10 +131,10 @@
<el-col :span="7" <el-col :span="7"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="区:" <el-form-item label="区:"
prop="cerInfo.district" prop="extDistrictCode_SDK"
label-width="80px" label-width="80px"
required> required>
<el-select v-model="formData.extDistrictName_SDK" style="width: 91%" filterable placeholder="请选择区" no-match-text="无匹配数据"> <el-select v-model="formData.extDistrictCode_SDK" style="width: 91%" filterable placeholder="请选择区" no-match-text="无匹配数据">
<el-option <el-option
v-for="item in disOptions" v-for="item in disOptions"
:key="item.Code" :key="item.Code"
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
class="padding-bottom"> class="padding-bottom">
<el-form-item label="详细经营地址:" <el-form-item label="详细经营地址:"
label-width="150px" label-width="150px"
required> prop="extAddressDetail_SDK">
<el-input v-model="formData.extAddressDetail_SDK" <el-input v-model="formData.extAddressDetail_SDK"
placeholder="" placeholder=""
autocomplete="off" autocomplete="off"
...@@ -166,9 +166,9 @@ ...@@ -166,9 +166,9 @@
:offset="1" :offset="1"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="公司负责人姓名:" <el-form-item label="公司负责人姓名:"
prop="legalPerson" prop="extLeader_SDK"
label-width="150px" label-width="150px"
required> >
<el-input v-model="formData.extLeader_SDK" <el-input v-model="formData.extLeader_SDK"
placeholder="" placeholder=""
style="width: 80%" style="width: 80%"
...@@ -179,10 +179,10 @@ ...@@ -179,10 +179,10 @@
<el-col :span="12" <el-col :span="12"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="公司负责人联系电话:" <el-form-item label="公司负责人联系电话:"
prop="legalEmail" prop="extLeaderPhone_SDK"
label-width="160px" label-width="160px"
class="filter-icon-none" class="filter-icon-none"
required> >
<el-input v-model="formData.extLeaderPhone_SDK" <el-input v-model="formData.extLeaderPhone_SDK"
placeholder="" placeholder=""
style="width: 80%" style="width: 80%"
...@@ -199,10 +199,10 @@ ...@@ -199,10 +199,10 @@
:offset="1" :offset="1"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="公司负责人邮箱:" <el-form-item label="公司负责人邮箱:"
prop="legalIdCard" prop="extLeaderEmail_SDK"
label-width="150px" label-width="150px"
class="filter-icon-none" class="filter-icon-none"
required> >
<el-input v-model="formData.extLeaderEmail_SDK" <el-input v-model="formData.extLeaderEmail_SDK"
placeholder="" placeholder=""
style="width: 52%" style="width: 52%"
...@@ -215,9 +215,9 @@ ...@@ -215,9 +215,9 @@
:offset="1" :offset="1"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="Unis业务负责人姓名:" <el-form-item label="Unis业务负责人姓名:"
prop="email" prop="extUnis_SDK"
label-width="160px" label-width="160px"
required> >
<el-input v-model="formData.extUnis_SDK" <el-input v-model="formData.extUnis_SDK"
placeholder="" placeholder=""
style="width: 80%" style="width: 80%"
...@@ -228,9 +228,9 @@ ...@@ -228,9 +228,9 @@
<el-col :span="11" <el-col :span="11"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="Unis业务负责人电话:" <el-form-item label="Unis业务负责人电话:"
prop="mobile" prop="extUnisPhone_SDK"
label-width="160px" label-width="160px"
required> >
<el-input v-model="formData.extUnisPhone_SDK" <el-input v-model="formData.extUnisPhone_SDK"
placeholder="" placeholder=""
style="width: 90%" style="width: 90%"
...@@ -242,10 +242,10 @@ ...@@ -242,10 +242,10 @@
:offset="1" :offset="1"
class="padding-bottom"> class="padding-bottom">
<el-form-item label="Unis业务负责人邮箱:" <el-form-item label="Unis业务负责人邮箱:"
prop="financerMobile" prop="extUnisEmail_SDK"
label-width="160px" label-width="160px"
class="filter-icon-none" class="filter-icon-none"
required> >
<el-input v-model="formData.extUnisEmail_SDK" <el-input v-model="formData.extUnisEmail_SDK"
placeholder="" placeholder=""
style="width: 80%" style="width: 80%"
...@@ -268,14 +268,12 @@ ...@@ -268,14 +268,12 @@
class="filter-icon-none" class="filter-icon-none"
required> required>
<el-upload class="upload-demo" <el-upload class="upload-demo"
:headers="myHeader"
:on-change="handleChange"
action="https://jsonplaceholder.typicode.com/posts/" action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple multiple
:limit="1" :limit="1"
:on-exceed="handleExceed" >
:file-list="fileList">
<el-button size="small" <el-button size="small"
type="primary">点击上传</el-button> type="primary">点击上传</el-button>
...@@ -322,8 +320,8 @@ ...@@ -322,8 +320,8 @@
label="社会统一信用代码"> label="社会统一信用代码">
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination v-show="page.TotalRecords>0" <pagination v-show="TotalRecords>0"
:total="page.TotalRecords" :total="TotalRecords"
:page.sync="page.currentPage" :page.sync="page.currentPage"
:limit.sync="page.pageSize" :limit.sync="page.pageSize"
@pagination="getList" /> @pagination="getList" />
...@@ -353,7 +351,7 @@ export default { ...@@ -353,7 +351,7 @@ export default {
countryArea: '', countryArea: '',
title: '城市代理商注册', title: '城市代理商注册',
loading: false, loading: false,
formInline: [], formInline: {},
recordList: [], recordList: [],
tableData: [], tableData: [],
fileList:[], fileList:[],
...@@ -361,17 +359,27 @@ export default { ...@@ -361,17 +359,27 @@ export default {
cityOptions:[], cityOptions:[],
disOptions:[], disOptions:[],
supplierBaseRules: { supplierBaseRules: {
Name: [{ required: true, message: '请选择公司全称', trigger: ['change'] }], Name: [{ required: true, message: '请选择公司名称', trigger: 'blur' }],
extSocialUnifiedCreditCode_SDK: [{ required: true, message: '请选择公司全称', trigger: ['change'] }], extSocialUnifiedCreditCode_SDK: [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
name: [{ required: true, message: '请选择公司全称', trigger: ['change'] }], extRegisteredCapital_SDK: [{ required: true, message: '请输入注册资本(万元)', trigger: 'blur' }],
name: [{ required: true, message: '请选择公司全称', trigger: ['change'] }], extCorporateName_SDK: [{ required: true, message: '请输入法人', trigger: 'blur' }],
name: [{ required: true, message: '请选择公司全称', trigger: ['change'] }], extProvinceCode_SDK: [{ required: true, message: '请选择省份', trigger: 'blur' }],
name: [{ required: true, message: '请选择公司全称', trigger: ['change'] }], 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' }],
extLeaderEmail_SDK: [{ required: true, message: '请输入公司负责人邮箱', trigger: 'blur' }],
extUnis_SDK: [{ required: true, message: '请输入Unis业务负责人姓名', trigger: 'blur' }],
extUnisPhone_SDK: [{ required: true, message: '请输入Unis业务负责人电话', trigger: 'blur' }],
extUnisEmail_SDK: [{ required: true, message: '请输入Unis业务负责人邮箱', trigger: 'blur' }],
}, },
dialogTableVisible: false, dialogTableVisible: false,
TotalRecords:0,
page: { page: {
currentPage: 0, currentPage: 0,
pageSize: 0 pageSize: 0,
} }
} }
...@@ -388,6 +396,7 @@ export default { ...@@ -388,6 +396,7 @@ export default {
this.$request(Qcc.searchUrl, this.page).then((resp) => { this.$request(Qcc.searchUrl, this.page).then((resp) => {
this.tableData = resp.results.Result this.tableData = resp.results.Result
this.page = resp.results.Paging this.page = resp.results.Paging
this.TotalRecords=resp.results.Paging.TotalRecords
}) })
}, },
selectCountry(){ selectCountry(){
...@@ -421,14 +430,34 @@ export default { ...@@ -421,14 +430,34 @@ export default {
}) })
}, },
handleApprove(){ handleApprove(){
this.$request(Customer.searchUrl,this.formData).then((resp) => { this.formData.ExtCustomerType_SDK=111
this.$request(Customer.searchUrl,this.paramsToFormData(this.formData)).then((resp) => {
this.$message.success('提交成功!') this.$message.success('提交成功!')
}) })
}, },
reSet() { }, paramsToFormData(obj) {
const formData = new FormData();
Object.keys(obj).forEach((key) => {
if (obj[key] instanceof Array) {
obj[key].forEach((item) => {
formData.append(key, item);
});
return;
}
formData.append(key, obj[key]);
});
return formData;
},
reSet() {this.formInline.Name='' },
handleClose() { handleClose() {
this.dialogTableVisible = false this.dialogTableVisible = false
}, },
myHeader(){
return {'Content-Type': 'multipart/form-data'}
},
handleChange(file,fileList){
this.formData.file=(file.raw)
},
onSubmit() { }, onSubmit() { },
handlePreview() { }, handlePreview() { },
handleRemove() { }, handleRemove() { },
......
<template> <template>
<div class="register-container"> <div class="register-container">
<div class="register-main"> <div class="register-main">
<el-row class="border-bottom"><h4>省级代理商注册</h4></el-row> <el-row class="border-bottom">
<el-form id="registerForm" :model="formData" status-icon label-position="right"> <h4>省级代理商注册</h4>
<el-row class="border-bottom"> </el-row>
<el-form id="registerForm"
:model="formData"
status-icon
ref="formData"
:rules="supplierBaseRules"
label-position="right">
<el-row class="border-bottom">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="基本信息" /> <el-form-item label="基本信息" />
</el-col> </el-col>
<el-col :span="13" class="padding-bottom"> <el-col :span="13"
<el-form-item label="公司全称:" prop="name" label-width="150px" required> class="padding-bottom">
<!-- <el-input v-model="formData.name" placeholder="点击查询获取公司信息,不可编辑" disabled style="width: 80%" class="filter-item" clearable /> --> <el-form-item label="公司全称:"
<lov prop="Name"
v-model="formData.companyId" label-width="150px"
:default-text="formData.companyName" >
clearable <el-input v-model="formData.Name"
@returnFn="data=>{}" placeholder='请选择公司'
/> style="width: 100%">
<i slot="suffix"
class="el-input__icon el-icon-search"
@click="createLovTable" />
</el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="5" :offset="1" class="padding-bottom"> <el-col :span="11"
<el-button type="primary">查询</el-button> :offset="1"
</el-col> --> class="padding-bottom">
<el-col :span="11" :offset="1" class="padding-bottom"> <el-form-item label="公司全称曾用名:"
<el-form-item label="公司全称曾用名:" prop="shortName" label-width="150px"> label-width="150px">
<el-input v-model="formData.shortName" placeholder="" style="width: 80%" class="filter-item" clearable /> <el-input v-model="formData.extSecondName_SDK"
placeholder=""
style="width: 80%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" class="padding-bottom"> <el-col :span="11"
<el-form-item label="统一社会信用代码:" label-width="150px" required> class="padding-bottom">
<el-form-item label="统一社会信用代码:"
label-width="150px"
prop="extSocialUnifiedCreditCode_SDK"
>
<template> <template>
<el-input v-model="formData.englishName" placeholder="企查查获取" style="width: 80%" class="filter-item" clearable /> <el-input v-model="formData.extSocialUnifiedCreditCode_SDK"
placeholder="企查查获取"
style="width: 80%"
readonly
class="filter-item"
clearable />
</template> </template>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom"> <el-col :span="11"
<el-form-item label="注册资本(万元):" label-width="150px" required> :offset="1"
<el-input v-model="formData.enterpriseCode" :disabled="inputEnter" style="width: 80%" placeholder="企查查获取" class="filter-item" clearable /> class="padding-bottom">
<el-form-item label="注册资本(万元):"
label-width="150px"
prop="extRegisteredCapital_SDK">
<el-input v-model="formData.extRegisteredCapital_SDK"
:disabled="inputEnter"
style="width: 80%"
readonly
placeholder="企查查获取"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" class="padding-bottom"> <el-col :span="11"
<el-form-item label="法人:" label-width="150px" required> class="padding-bottom">
<el-form-item label="法人:"
label-width="150px"
prop="extCorporateName_SDK">
<template> <template>
<el-input v-model="formData.enterpriseCode" :disabled="inputEnter" style="width: 80%" placeholder="企查查获取" class="filter-item" clearable /> <el-input v-model="formData.extCorporateName_SDK"
:disabled="inputEnter"
style="width: 80%"
readonly
placeholder="企查查获取"
class="filter-item"
clearable />
</template> </template>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -51,39 +96,99 @@ ...@@ -51,39 +96,99 @@
<el-col :span="24"> <el-col :span="24">
<el-form-item label="地址信息" /> <el-form-item label="地址信息" />
</el-col> </el-col>
<el-col :span="7" :offset="1" class="padding-bottom"> <el-col :span="7"
<el-form-item label="省份:" prop="cerInfo.district" label-width="80px" required> :offset="1"
<el-cascader ref="cascader" v-model="countryArea" clearable style="width: 80%"/> class="padding-bottom">
<el-form-item label="省份:"
prop="extProvinceName_SDK"
label-width="80px"
>
<el-select v-model="formData.extProvinceCode_SDK" style="width: 91%" filterable placeholder="请选择省份" no-match-text="无匹配数据" @change="handleSelect">
<el-option
v-for="item in countryOptions"
:key="item.Code"
:label="item.Name"
:value="item.Code"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7" class="padding-bottom"> <el-col :span="7"
<el-form-item label="地市:" prop="cerInfo.district" label-width="80px" required > class="padding-bottom">
<el-cascader ref="cascader" v-model="countryArea" clearablestyle="width: 80%" /> <el-form-item label="市:"
prop="extCityName_SDK"
label-width="80px"
>
<el-select v-model="formData.extCityCode_SDK" style="width: 91%" filterable placeholder="请选择市" @change="handleSelectCity" >
<el-option
v-for="item in cityOptions"
:key="item.Code"
:label="item.Name"
:value="item.Code"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7" class="padding-bottom"> <el-col :span="7"
<el-form-item label="县市:" prop="cerInfo.district" label-width="80px" required> class="padding-bottom">
<el-cascader ref="cascader" v-model="countryArea" clearable style="width: 80%" /> <el-form-item label="区:"
prop="extDistrictName_SDK"
label-width="80px"
>
<el-select v-model="formData.extDistrictCode_SDK" style="width: 91%" filterable placeholder="请选择区" no-match-text="无匹配数据">
<el-option
v-for="item in disOptions"
:key="item.Code"
:label="item.Name"
:value="item.Code"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="20" :offset="1" class="padding-bottom"> <el-col :span="20"
<el-form-item label="详细经营地址:" label-width="150px" required> :offset="1"
<el-input v-model="formData.cerInfo" placeholder="" autocomplete="off" style="width: 80%" clearable /> class="padding-bottom">
<el-form-item label="详细经营地址:"
label-width="150px"
prop="extAddressDetail_SDK">
<el-input v-model="formData.extAddressDetail_SDK"
placeholder=""
autocomplete="off"
style="width: 80%"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="border-bottom"> <el-row class="border-bottom">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="联系信息" /> <el-form-item label="联系信息" />
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom"> <el-col :span="11"
<el-form-item label="公司负责人姓名:" prop="legalPerson" label-width="150px" required> :offset="1"
<el-input v-model="formData.legalPerson" placeholder="" style="width: 80%" class="filter-item" clearable /> class="padding-bottom">
<el-form-item label="公司负责人姓名:"
prop="extLeader_SDK"
label-width="150px"
>
<el-input v-model="formData.extLeader_SDK"
placeholder=""
style="width: 80%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" class="padding-bottom"> <el-col :span="12"
<el-form-item label="公司负责人联系电话:" prop="legalEmail" label-width="160px" class="filter-icon-none" required> class="padding-bottom">
<el-input v-model="formData.legalEmail" placeholder="" style="width: 80%" class="filter-item" clearable /> <el-form-item label="公司负责人联系电话:"
prop="extLeaderPhone_SDK"
label-width="160px"
class="filter-icon-none"
>
<el-input v-model="formData.extLeaderPhone_SDK"
placeholder=""
style="width: 80%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col v-if="showForm.legalPersonNumber" :span="7" class="padding-bottom"> <!-- <el-col v-if="showForm.legalPersonNumber" :span="7" class="padding-bottom">
...@@ -91,130 +196,380 @@ ...@@ -91,130 +196,380 @@
<el-input v-model="supplierBase.legalIdPhone" placeholder="法人手机号" style="width: 83%" class="filter-item" clearable /> <el-input v-model="supplierBase.legalIdPhone" placeholder="法人手机号" style="width: 83%" class="filter-item" clearable />
</el-form-item> </el-form-item>
</el-col> --> </el-col> -->
<el-col :span="15" :offset="1" class="padding-bottom"> <el-col :span="15"
<el-form-item label="公司负责人邮箱:" prop="legalIdCard" label-width="150px" class="filter-icon-none" required> :offset="1"
<el-input v-model="formData.legalIdCard" placeholder="" style="width: 52%" class="filter-item" clearable /> class="padding-bottom">
<el-form-item label="公司负责人邮箱:"
prop="extLeaderEmail_SDK"
label-width="150px"
class="filter-icon-none"
>
<el-input v-model="formData.extLeaderEmail_SDK"
placeholder=""
style="width: 52%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom"> <el-col :span="11"
<el-form-item label="Unis业务负责人姓名:" prop="email" label-width="160px" required> :offset="1"
<el-input v-model="formData.email" placeholder="" style="width: 80%" class="filter-item" clearable /> class="padding-bottom">
<el-form-item label="Unis业务负责人姓名:"
prop="extUnis_SDK"
label-width="160px"
>
<el-input v-model="formData.extUnis_SDK"
placeholder=""
style="width: 80%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" class="padding-bottom"> <el-col :span="11"
<el-form-item label="Unis业务负责人电话:" prop="mobile" label-width="160px" required> class="padding-bottom">
<el-input v-model="formData.mobile" placeholder="" style="width: 90%" class="filter-item" clearable /> <el-form-item label="Unis业务负责人电话:"
prop="extUnisPhone_SDK"
label-width="160px"
>
<el-input v-model="formData.extUnisPhone_SDK"
placeholder=""
style="width: 90%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom" > <el-col :span="11"
<el-form-item label="Unis业务负责人邮箱:" prop="financerMobile" label-width="160px" class="filter-icon-none" required> :offset="1"
<el-input v-model="formData.financerMobile" placeholder="" style="width: 80%" class="filter-item" clearable /> class="padding-bottom">
<el-form-item label="Unis业务负责人邮箱:"
prop="extUnisEmail_SDK"
label-width="160px"
class="filter-icon-none"
>
<el-input v-model="formData.extUnisEmail_SDK"
placeholder=""
style="width: 80%"
class="filter-item"
clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom"> <el-col :span="11" :offset="1" class="padding-bottom">
<el-form-item label="商务负责人姓名:" prop="email" label-width="150px" required> <el-form-item label="商务负责人姓名:" prop="extBusiness_SDK" label-width="150px" >
<el-input v-model="formData.email" placeholder="" style="width: 80%" class="filter-item" clearable /> <el-input v-model="formData.extBusiness_SDK" placeholder="" style="width: 80%" class="filter-item" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" class="padding-bottom"> <el-col :span="11" class="padding-bottom">
<el-form-item label="商务负责人电话:" prop="mobile" label-width="150px" required> <el-form-item label="商务负责人电话:" prop="extBusinessPhone_SDK" label-width="150px" >
<el-input v-model="formData.mobile" placeholder="" style="width: 90%" class="filter-item" clearable /> <el-input v-model="formData.extBusinessPhone_SDK" placeholder="" style="width: 90%" class="filter-item" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom" > <el-col :span="11" :offset="1" class="padding-bottom" >
<el-form-item label="商务负责人邮箱:" prop="financerMobile" label-width="160px" class="filter-icon-none" required> <el-form-item label="商务负责人邮箱:" prop="extBusinessEmail_SDK" label-width="160px" class="filter-icon-none" >
<el-input v-model="formData.financerMobile" placeholder="" style="width: 80%" class="filter-item" clearable /> <el-input v-model="formData.extBusinessEmail_SDK" placeholder="" style="width: 80%" class="filter-item" clearable />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row class="border-bottom"> <el-row class="border-bottom">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="签约信息" /> <el-form-item label="签约信息" />
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom"> <el-col :span="11" :offset="1" class="padding-bottom">
<el-form-item label="签约渠道类型:" prop="cerInfo.district" label-width="120px" required> <el-form-item label="签约渠道类型:" prop="ExtChannelType_SDK" label-width="120px" >
<el-cascader ref="cascader" v-model="countryArea" clearable style="width: 80%"/> <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"
:label="item.content"
:value="item.keyword"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" class="padding-bottom"> <el-col :span="12" class="padding-bottom">
<el-form-item label="签约产品组:" prop="cerInfo.district" label-width="120px" required > <el-form-item label="签约产品组:" prop="ExtProductGroup_SDK" label-width="120px" >
<el-cascader ref="cascader" v-model="countryArea" clearablestyle="width: 90%" /> <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"
:label="item.content"
:value="item.keyword"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom"> <el-col :span="11" :offset="1" class="padding-bottom">
<el-form-item label="签约总代:" prop="cerInfo.district" label-width="100px" required> <el-form-item label="签约总代:" prop="extTotalAgent_SDK" label-width="100px" >
<el-cascader ref="cascader" v-model="countryArea" clearable style="width: 80%" /> <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"
:label="item.content"
:value="item.keyword"
/>
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row > <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="上传附件" /> <el-form-item label="上传附件" />
</el-col> </el-col>
<el-col :span="11" :offset="1" class="padding-bottom">
<el-form-item label="营业执照:" prop="financerMobile" label-width="100px" class="filter-icon-none" required>
<el-upload
class="upload-demo"
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
:before-remove="beforeRemove"
multiple
:limit="3"
:on-exceed="handleExceed"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload> <el-col :span="11"
:offset="1"
class="padding-bottom">
<el-form-item label="营业执照:"
prop="financerMobile"
label-width="100px"
class="filter-icon-none"
required>
<el-upload
ref="uploadExcel"
action="https://jsonplaceholder.typicode.com/posts/"
:limit='1'
:auto-upload="false"
:on-change="fileChange"
:file-list="fileList">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
</el-form>
<el-row>
<el-col align="center"> <el-col align="center">
<el-button type="primary" @click="handleNext">提交</el-button> <el-button type="primary" @click="handleApprove(formData)">提交</el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form>
<el-dialog title="请选择公司"
:visible.sync="dialogTableVisible"
width="50%"
:before-close="handleClose">
<el-form :inline="true"
:model="formInline"
class="demo-form-inline">
<el-form-item label="公司名称:">
<el-input v-model="formInline.Name"
placeholder=""></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary"
@click="getList">获取企查查信息</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary"
@click="reSet">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="tableData"
border
@row-click="select"
style="width: 100%">
<el-table-column prop="Status"
label="状态">
</el-table-column>
<el-table-column prop="Name"
label="公司">
</el-table-column>
<el-table-column prop="OperName"
label="法定代表人">
</el-table-column>
<el-table-column prop="CreditCode"
label="社会统一信用代码">
</el-table-column>
</el-table>
<pagination v-show="TotalRecords>0"
:total="TotalRecords"
:page.sync="page.currentPage"
:limit.sync="page.pageSize"
@pagination="getList" />
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { Qcc,Country,Customer,Common } from '@/api/qcc'
import Pagination from '@/components/Pagination'
export default { export default {
name: 'city-register', name: 'city-register',
components: {
Pagination
},
data() { data() {
return { return {
formData:{}, formData: {},
inputEnter:false, inputEnter: false,
countryArea:'', countryArea: '',
title: '城市代理商注册',
loading: false, loading: false,
formInline: {},
recordList: [],
tableData: [],
fileList:[], fileList:[],
countryOptions:[],
cityOptions:[],
disOptions:[],
aOptions:[],
bOptions:[],
cOptions:[],
supplierBaseRules: { supplierBaseRules: {
name: [{ required: true, message: '请选择公司全称', trigger: ['change', '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' }],
extProvinceName_SDK: [{ required: true, message: '请选择省份', trigger: 'blur' }],
extCityName_SDK: [{ required: true, message: '请选择市', trigger: 'blur' }],
extDistrictName_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' }],
extLeaderEmail_SDK: [{ required: true, message: '请输入公司负责人邮箱', trigger: 'blur' }],
extUnis_SDK: [{ required: true, message: '请输入Unis业务负责人姓名', trigger: 'blur' }],
extUnisPhone_SDK: [{ required: true, message: '请输入Unis业务负责人电话', trigger: 'blur' }],
extUnisEmail_SDK: [{ required: true, message: '请输入Unis业务负责人邮箱', trigger: 'blur' }],
extBusiness_SDK: [{ required: true, message: '请输入商务负责人姓名', trigger: 'blur' }],
extBusinessPhone_SDK: [{ required: true, message: '请输入商务负责人电话', trigger: 'blur' }],
extBusinessEmail_SDK: [{ required: true, message: '请输入商务负责人邮箱', trigger: 'blur' }],
ExtChannelType_SDK: [{ required: true, message: '请选择签约渠道类型', trigger: 'blur' }],
ExtProductGroup_SDK: [{ required: true, message: '请选择签约产品组', trigger: 'blur' }],
extTotalAgent_SDK: [{ required: true, message: '请选择签约总代', trigger: 'blur' }],
}, },
dialogTableVisible: false,
TotalRecords:0,
page: {
currentPage: 0,
pageSize: 0
}
} }
}, },
watch: { watch: {
},
computed:{
visitedViews() {
return this.$store.state.tagsView.visitedViews
},
}, },
created() { created() {
this.selectCountry()
this.getCommon()
}, },
methods: { methods: {
handlePreview(){}, getList() {
handleRemove(){}, this.page.searchKey=this.formInline.Name
beforeRemove(){}, this.$request(Qcc.searchUrl, this.page).then((resp) => {
handleExceed(){}, this.tableData = resp.results.Result
fileList(){}, this.page = resp.results.Paging
handleNext(){} this.TotalRecords=resp.results.Paging.TotalRecords
})
},
selectCountry(){
this.$request(Country.searchPro, this.page).then((resp) => {
this.countryOptions=resp.results
})
},
getCommon(){
const adata={code:'ExtChannelType_SDK',module:'Customer'}
this.$request(Common.searchUrl, adata).then((resp) => {
this.aOptions=resp
})
const bdata={code:'ExtProductGroup_SDK',module:'Customer'}
this.$request(Common.searchUrl, bdata).then((resp) => {
this.bOptions=resp
})
const cdata={code:'ExtTotalAgent_SDK',module:'Customer'}
this.$request(Common.searchUrl, cdata).then((resp) => {
this.cOptions=resp
})
},
handleSelect(value){
const app={provinceCode:value}
this.$request(Country.searchCity,app).then((resp) => {
this.cityOptions=resp.results
})
},
handleSelectCity(value){
const app={cityCode:value}
this.$request(Country.searchDis,app).then((resp) => {
this.disOptions=resp.results
})
},
createLovTable() {
this.dialogTableVisible = true
},
select(row, column, event) {
this.page.searchKey=row.CreditCode
this.$request(Qcc.detailUrl, this.page).then((resp) => {
this.formData.extCorporateName_SDK = row.OperName
this.formData.extSocialUnifiedCreditCode_SDK = row.CreditCode
this.formData.Name = row.Name
this.formData.extRegisteredCapital_SDK=resp.results.Result.RegistCapi
this.dialogTableVisible = false
})
},
handleApprove(formName){
// this.$refs[formName].validate((valid) => {
// if (valid) {
// alert('submit!');
// } else {
// console.log('error submit!!');
// return false;
// }
// });
this.formData. ExtCustomerType_SDK=101
this.$request(Customer.searchUrl,this.paramsToFormData(this.formData)).then((resp) => {
this.$message.success('提交成功!')
// 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) {
const formData = new FormData();
Object.keys(obj).forEach((key) => {
if (obj[key] instanceof Array) {
obj[key].forEach((item) => {
formData.append(key, item);
});
return;
}
formData.append(key, obj[key]);
});
return formData;
},
reSet() {
this.formInline.Name=''
},
handleClose() {
this.dialogTableVisible = false
},
myHeader(){
return {'Content-Type': 'multipart/form-data'}
},
fileChange(res,file){
this.formData.file=(res.raw)
},
onSubmit() {},
handlePreview() { },
handleRemove() { },
beforeRemove() { },
handleExceed() { },
handleNext() { }
} }
} }
</script> </script>
...@@ -234,6 +589,6 @@ export default { ...@@ -234,6 +589,6 @@ export default {
padding-bottom: 20px; padding-bottom: 20px;
} }
.border-bottom { .border-bottom {
border-bottom: solid 2px #409eff; border-bottom: solid 2px #a22796;
} }
</style> </style>
...@@ -111,7 +111,7 @@ export default { ...@@ -111,7 +111,7 @@ export default {
created() { created() {
this.tableConfig.columns.handle.vif = this.isShowEditBtn this.tableConfig.columns.handle.vif = this.isShowEditBtn
constant.tableConfig.initialParams = { constant.tableConfig.initialParams = {
AccountID: this.objectID || this.$route.query.objectID, BusinessObjectID: this.objectID || this.$route.query.objectID,
TypeCode: this.typeCode TypeCode: this.typeCode
} }
if (this.moduleType) { if (this.moduleType) {
......
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