master_merge
戴余标 2 years ago
parent 1d5647cd81
commit 293a193b86

@ -8,15 +8,17 @@
公司先后获得河南省高新技术企业、国家3A信用企业、IOS9001软件产品认证等20多项荣誉奖项。拥有50余项软件著作权。 获得20余家国内媒体报道。公司自成立以来以高科技为起点以技术为核心、 以完善的售后服务为后盾,秉承稳固与发展、求实与创新的精神,已为国内外上万家企业提供了服务。 在为实现企业价值最大化的过程中, 实现了自身的价值的提升,取得了最大程度的双赢合作,并获得了社会各界的广泛赞誉和认同。
官网地址[http://www.5kcrm.com](http://www.5kcrm.com/)
官网:[http://www.5kcrm.com](https://www.5kcrm.com/)
演示地址:(http://demo11.5kcrm.net/)
帐号18688888888 密码123456a
官网:[http://www.72crm.com](https://www.72crm.com/)
Github下载地址[https://github.com/72wukong](https://github.com/72wukong)
论坛:[http://bbs.72crm.net](https://bbs.72crm.net/)
QQ群交流群⑩群[1026560336](http:////shang.qq.com/wpa/qunwpa?idkey=13d5e5809eb9feb350336e55c8b7a00b9cb472078b09b4441222a52dd76b278e)
演示地址:[demo11.5kcrm.net](http://demo11.5kcrm.net/)(帐号18888888888 密码123456a)
码云gitee地址[码云仓库地址](https://gitee.com/wukongcrm)
QQ群交流群⑩群[486745026](https:////shang.qq.com/wpa/qunwpa?idkey=f4687b809bf63f08f707aa1c56dee8dbcb9526237c429c4532222021d65bf83c)
扫码添加小悟官方客服微信,邀您加入千人微信交流群:
@ -27,14 +29,13 @@ QQ群交流群⑩群[1026560336](http:////shang.qq.com/wpa/qunwpa?idkey=13d5e
<img src="https://images.gitee.com/uploads/images/2019/1202/135713_d3566c6a_345098.jpeg" width="200">
```
悟空CRM采用全新的前后端分离模式本仓库代码中已集成前端vue打包后文件可免去打包操作。如需调整前端代码请单独下载前端代码
```
(<a href="https://gitee.com/wukongcrm/crm_pro" target="_blank">查看PHP后端仓库</a>)
(<a href="https://github.com/72wukong/72crm-11.0-PHP" target="_blank">查看PHP后端仓库</a>)
#### 项目目录

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

@ -36,10 +36,9 @@ module.exports = {
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath:
process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
publicPath: process.env.NODE_ENV === 'production' ?
config.build.assetsPublicPath :
config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
@ -49,7 +48,7 @@ module.exports = {
},
module: {
rules: [
...(config.dev.useEslint ? [createLintingRule()] : []),
// ...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
loader: 'vue-loader',

@ -4,5 +4,5 @@ const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
BASE_API: '"http://localhost/"',
BASE_API: '"/api/"',
})

@ -11,14 +11,14 @@ module.exports = {
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://localhost',
target: 'http://192.168.50.40:8088',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
},
'/file': {
target: 'http://192.168.1.116:8012/',
target: 'http://192.168.50.40:8088/',
changeOrigin: true,
pathRewrite: {
'^/file': ''
@ -28,7 +28,7 @@ module.exports = {
// Various Dev Server settings
host: '0.0.0.0', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
port: 8090, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: false,

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

884
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -23,6 +23,7 @@
"@tinymce/tinymce-vue": "^3.2.0",
"axios": "0.18.0",
"babel-polyfill": "^6.26.0",
"chalk": "^5.2.0",
"clipboard": "^2.0.4",
"echarts": "^4.3.0",
"el-bigdata-table": "^1.0.32",
@ -66,7 +67,6 @@
"babel-plugin-transform-vue-jsx": "3.7.0",
"babel-preset-env": "1.7.0",
"babel-preset-stage-2": "6.24.1",
"chalk": "2.4.1",
"copy-webpack-plugin": "4.5.2",
"css-loader": "1.0.0",
"eslint": "4.19.1",

@ -434,6 +434,20 @@ export function crmCustomerReceiveAPI(data) {
})
}
/**
* 客户领取公海客户审批
* @param {*} data
*/
export function crmCheckCustomerReceiveAPI(data) {
return request({
url: 'crm/customerPool/checkCustomerReveive',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下联系人
* @param {*} data

@ -212,6 +212,35 @@ export function crmMessageCheckBusinessAPI(data) {
})
}
/**
* 新商机
* @param {*} data
*/
export function crmMessageNewBusinessAPI(data) {
return request({
url: 'crm/message/newBusiness',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户捞取审批待办事项提醒
* @param {*} data
*/
export function crmMessageCheckCustomerCheckAPI(data) {
return request({
url: 'crm/message/checkCustomerCheck',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 全部标为已处理接口
* @param {*} data

@ -127,6 +127,37 @@ export function crmExamineReceivablesAuditAPI(data) {
}
})
}
/**
* 进行商机
*/
export function crmExamineBusinessAuditAPI(data) {
// const url = data.type === 'revoke' ? 'crm/receivables/revokeCheck' : 'crm/receivables/check'
const url = 'crm/business/check'
return request({
url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 进行客户
*/
export function crmExamineCheckCustomerAuditAPI(data) {
// const url = data.type === 'revoke' ? 'crm/receivables/revokeCheck' : 'crm/receivables/check'
const url = 'crm/customerPool/checkCustomerReveive'
return request({
url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询审批记录

@ -156,6 +156,7 @@ export default {
this.infoType === 'crm_invoice' ||
this.infoType === 'crm_receivables' ||
this.infoType === 'crm_business' ||
this.infoType === 'crm_customer_check' ||
this.infoType === 'oa_examine'
) {
return userListAPI
@ -175,6 +176,7 @@ export default {
this.infoType === 'crm_invoice' ||
this.infoType === 'crm_receivables' ||
this.infoType === 'crm_business' ||
this.infoType === 'crm_customer_check' ||
this.infoType === 'oa_examine'
) {
params.pageType = 0

@ -95,6 +95,7 @@ export default {
crm_receivables: crmExamineRecordLogListAPI,
crm_invoice: crmExamineRecordLogListAPI,
crm_business: crmExamineRecordLogListAPI,
crm_customer_check: crmExamineRecordLogListAPI,
oa_examine: oaExamineFlowRecordListAPI
}[this.examineType]

@ -118,7 +118,8 @@ export default {
crm_contract: crmExamineStepAPI,
crm_invoice: crmExamineStepAPI,
crm_receivables: crmExamineStepAPI,
crm_business: crmExamineStepAPI
crm_business: crmExamineStepAPI,
crm_customer_check: crmExamineStepAPI
}[this.types]
//
const params = {}
@ -133,8 +134,9 @@ export default {
crm_contract: 1,
crm_receivables: 2,
crm_invoice: 3,
crm_business: 4
}[this.types] // 1 2 3 4
crm_business: 4,
crm_customer_check: 5
}[this.types] // 1 2 3 4 5
params.types = this.types
}
reqeust(params)

@ -54,7 +54,7 @@
</el-dialog>
</template>
<script type="text/javascript">
import { crmExamineRecordAuditAPI, crmExamineInvoiceAuditAPI, crmExamineReceivablesAuditAPI } from '@/api/examine'
import { crmExamineRecordAuditAPI, crmExamineInvoiceAuditAPI, crmExamineReceivablesAuditAPI, crmExamineBusinessAuditAPI, crmExamineCheckCustomerAuditAPI } from '@/api/examine'
import { oaExamineFlowAuditExamineAPI } from '@/api/oa/examine'
import { XhUserCell } from '@/components/CreateCom'
@ -165,7 +165,8 @@ export default {
this.examineType == 'crm_contract' ||
this.examineType == 'crm_invoice' ||
this.examineType == 'crm_receivables' ||
this.examineType == 'crm_business'
this.examineType == 'crm_business' ||
this.examineType == 'crm_customer_check'
) {
this.$store.dispatch('GetMessageNum')
}
@ -185,6 +186,8 @@ export default {
crm_contract: crmExamineRecordAuditAPI,
crm_invoice: crmExamineInvoiceAuditAPI,
crm_receivables: crmExamineReceivablesAuditAPI,
crm_business: crmExamineBusinessAuditAPI,
crm_customer_check: crmExamineCheckCustomerAuditAPI,
oa_examine: oaExamineFlowAuditExamineAPI
// oa_examine: oaExamineFlowRevokeCheckAPI
}[this.examineType]
@ -222,7 +225,8 @@ export default {
this.examineType == 'crm_contract' ||
this.examineType == 'crm_invoice' ||
this.examineType == 'crm_receivables' ||
this.examineType == 'crm_business'
this.examineType == 'crm_business' ||
this.examineType == 'crm_customer_check'
) {
this.$store.dispatch('GetMessageNum')
}

@ -205,6 +205,7 @@ export default {
crm_receivables: crmExamineRecordRecordListAPI,
crm_invoice: crmExamineRecordRecordListAPI,
crm_business: crmExamineRecordRecordListAPI,
crm_customer_check: crmExamineRecordRecordListAPI,
oa_examine: oaExamineFlowStepListAPI
}[this.examineType]

@ -135,5 +135,16 @@ export default [
icon: 'business'
}
}]
},
{
...layout(false),
ignore: true,
children: [{
path: 'crm/customer',
meta: {
title: '待我审批(客户)',
icon: 'customer'
}
}]
}
]

@ -310,7 +310,9 @@ export default {
{ name: '合同', value: 'crm_contract', type: 'crm_contract' },
{ name: '回款', value: 'crm_receivables', type: 'crm_receivables' },
{ name: '发票', value: 'crm_invoice', type: 'crm_invoice' },
{ name: '商机', value: 'crm_business', type: 'crm_business' }
{ name: '商机', value: 'crm_business', type: 'crm_business' },
{ name: '客户', value: 'crm_customer_check', type: 'crm_customer_check' }
// { name: '', value: 4 },
// { name: '', value: 5 },
// { name: '退', value: 6 },

@ -159,7 +159,8 @@ export default {
{ name: '合同', value: 'crm_contract' },
{ name: '回款', value: 'crm_receivables' },
{ name: '发票', value: 'crm_invoice' },
{ name: '商机', value: 'crm_business' }
{ name: '商机', value: 'crm_business' },
{ name: '客户', value: 'crm_customer_check' }
// { name: '', value: 4 },
// { name: '', value: 5 },
// { name: '退', value: 6 },

@ -113,7 +113,7 @@
:record-id="detailData.flow_id"
:owner-user-id="detailData.owner_user_id"
class="examine-info"
examine-type="crm_business"
examine-type="crm_contract"
@on-handle="examineHandle"/>
<flexbox class="d-container-bd" align="stretch">
@ -568,8 +568,20 @@ export default {
if (item.type == 2 || item.type == 3) {
var message = '请填写' + item.name + '原因:'
var title = item.name + '原因'
this.$prompt(message, title, {
inputType: 'text',
// this.$prompt(message, title, {
// inputType: 'text',
// confirmButtonText: '',
// cancelButtonText: ''
// })
const h = this.$createElement
this.$msgbox({
title: title,
message: h('p', message, [
h('i', { style: 'color: teal' }, 'VNode'),
h('<xh-user-cell :radio="false" :value="baseFrom.adminUsers" @value-change="userChange" />')
]),
showCancelButton: true,
confirmButtonText: '确定',
cancelButtonText: '取消'
})

@ -40,6 +40,17 @@
</el-tooltip>
</template>
</c-r-m-detail-head>
<examine-info
v-if="detailData.flow_id"
:id="id"
:record-id="detailData.flow_id"
:owner-user-id="detailData.owner_user_id"
class="examine-info"
examine-type="crm_customer_check"
@on-handle="examineHandle"/>
<flexbox
class="d-container-bd"
align="stretch">

@ -327,7 +327,8 @@ export default {
this.infoType == 'checkContract' ||
this.infoType == 'checkReceivables' ||
this.infoType == 'checkInvoice' ||
this.infoType == 'checkBusiness'
this.infoType == 'checkBusiness' ||
this.infoType == 'checkCustomerCheck'
) {
return [{ name: '待审核', value: 1 }, { name: '已审核', value: 2 }]
} else if (this.infoType == 'remindReceivablesPlan') {
@ -338,8 +339,9 @@ export default {
]
} else if (this.infoType == 'endContract') {
return [{ name: '即将到期', value: 1 }, { name: '已到期', value: 2 }]
} else if (this.infoType == 'newBusiness') {
return [{ name: '全部', value: 1 }]
}
return []
},

@ -59,7 +59,7 @@ export default {
loading: false,
leftType: '',
/**
* model 1今日需联系客户 2分配给我的线索 3分配给我的客户 4待进入公海的客户 5待审核合同 6待审核回款 7待回款提醒 8即将到期的合同 9待回访合同 10待审核发票 13待审核商机
* model 1今日需联系客户 2分配给我的线索 3分配给我的客户 4待进入公海的客户 5待审核合同 6待审核回款 7待回款提醒 8即将到期的合同 9待回访合同 10待审核发票 13待审核商机 14新商机
*/
leftSides: [
{
@ -204,6 +204,28 @@ export default {
num: 0,
tips: '',
hidden: true
},
{
name: '新商机',
crmType: 'business',
color: '#704AFD',
iconClass: 'wk wk-business',
infoType: 'newBusiness',
model: 14,
num: 0,
tips: '',
hidden: true
},
{
name: '审批客户捞取',
crmType: 'customer',
color: '#704AFD',
iconClass: 'wk wk-customer',
infoType: 'checkCustomerCheck',
model: 15,
num: 0,
tips: '',
hidden: true
}
]
}

@ -15,7 +15,9 @@ import {
crmMessagRemindCustomerAPI,
crmMessagVisitRemindAPI,
crmMessageCheckInvoiceAPI,
crmMessageCheckBusinessAPI
crmMessageCheckBusinessAPI,
crmMessageNewBusinessAPI,
crmMessageCheckCustomerCheckAPI
} from '@/api/crm/message'
import CheckStatusMixin from '@/mixins/CheckStatusMixin'
import { invoiceHeaderFields } from '../../invoice/js/fields'
@ -236,7 +238,9 @@ export default {
'putInPoolRemind': crmMessagRemindCustomerAPI,
'returnVisitRemind': crmMessagVisitRemindAPI,
'checkInvoice': crmMessageCheckInvoiceAPI,
'checkBusiness': crmMessageCheckBusinessAPI
'checkBusiness': crmMessageCheckBusinessAPI,
'newBusiness': crmMessageNewBusinessAPI,
'checkCustomerCheck': crmMessageCheckCustomerCheckAPI
}[this.infoType]
},

@ -158,6 +158,8 @@ export default {
params.type = 3
} else if (this.crmType == 'business') {
params.type = 4
} else if (this.crmType == 'customer') {
params.type = 5
}
crmExamineMyExamineAPI(params)

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save