master_merge v11.0.0
yang 4 years ago
parent 68b04d33fd
commit 1a65c0044e

@ -0,0 +1,12 @@
{
"presets": [
["env", {
"modules": false,
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins":["transform-vue-jsx", "transform-runtime"]
}

@ -0,0 +1,14 @@
# http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

@ -0,0 +1,3 @@
build/*.js
config/*.js
src/assets

@ -0,0 +1,206 @@
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
globals: {
"BMap": "readonly",
"BMAP_STATUS_SUCCESS": "readonly",
"fullcalendar": "readonly",
"WKConfig": "readonly"
},
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 10,
"allowFirstLine": false
}
}],
"vue/html-closing-bracket-newline": [
"off"
],
"vue/name-property-casing": ["error", "PascalCase"],
'vue/no-v-html': 0,
'vue/require-default-prop': 0,
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': [0, 'allow-null'],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 2,
'no-delete-var': 0,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [1, {
'max': 10
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 0,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never'],
}
}

@ -0,0 +1,10 @@
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}

@ -0,0 +1,5 @@
language: node_js
node_js: stable
script: npm run test
notifications:
email: false

@ -0,0 +1,78 @@
悟空CRM开源版使用协议
悟空CRMCustomerRelationshipManagement悟空客户关系管理软件
下简称悟空CRM由郑州卡卡罗特软件科技有限公司以下简称卡卡罗特开发。卡卡罗特
依法拥有悟空CRM的所有版权和所有权益。本着共享开放的角度卡卡罗特以开放源代码的
形式发布悟空CRM您可以在遵守该协议的前提下使用悟空CRM。
自您安装悟空CRM开始您和卡卡罗特之间的合同关系自动成立成为卡卡罗特用户
以下简称为用户。除非您停止使用悟空CRM或与卡卡罗特有签署额外合同您须认真遵
循该用户协议约定的每一项条款。
官方地址www.5kcrm.com/www.72crm.com
官方电话400-0812-558
官方邮箱service@5kcrm.com
官方社区bbs.72crm.net
官方社群悟空CRM交流10群486745026
一、协议中提到的名词约定
1.1下述条款中所指悟空CRM的标志包括如下方面
悟空CRM源代码及文档中关于悟空CRM的版权提示、文字、图片和链接。
悟空CRM运行时界面上呈现出来的有关悟空CRM的文字、图片和链接。
1.2不包括如下方面:
悟空CRM提供的演示数据中关于悟空CRM的文字、图片和链接。
二、免责声明
2.1用户出于自愿而使用本软件,必须了解使用本软件的风险,在尚未购买产品技术服务或
商业授权之前,我们不承诺对免费用户提供任何形式的技术支持、使用担保,也不承担任何因
使用本软件而产生问题的相关责任。
2.2电子文本形式的使用协议如同双方书面签署的协议一样,具有完全的和等同的法律效力。
您一旦开始确认本协议并安装悟空CRM即被视为完全理解并接受本协议的各项条款在享
有以下条款授予的权力的同时,受到相关的约束和限制。
2.3协议许可范围以外的行为,将直接违反本授权协议并构成侵权,我们有权随时终止授权,
责令停止损害,并保留追究相关责任的权利。
三、协议许可的权利
3.1如果您以学习或研究为目的使用悟空CRM卡卡罗特不对您做任何限制。
3.2您可以在您个人任意数量的电脑上运行悟空CRM卡卡罗特不对电脑的数量做任何限
制。
3.3您可以对悟空CRM源代码进行修改以适应您个人学习研究的要求您做的改动无需对
外发布。
3.4卡卡罗特依法拥有悟空CRM的所有版权和软件权益未经商业授权您无任何版权及
软件相关权益。
四、协议规定的约束和限制
4.1当您开始将悟空CRM用于企业内部管理使用意味着已经商用需购买相应的商业授
4.2未获得商业授权之前,不得将本软件用于商业用途(包括但不限于企业内部使用、二次
开发后进行销售、以营利为目的或实现盈利等形式)。
4.3未经官方许可禁止在悟空CRM的整体或任何部分基础上发展任何派生版本、修改版
本或第三方版本用于重新分发,包括但不限于基于悟空CRM开发SAAS平台等相关服务。
4.4如果您未能遵守本协议的条款,您的授权将被终止,所被许可的权利将被收回,并承担
相应法律责任。
4.5您使用悟空CRM时必须保留悟空CRM的所有标志不得以任何方式隐藏或遮掩任
一标志。
五、未尽事项
如果上述条款无法满足您使用悟空CRM的要求可联系卡卡罗特签署额外的合同以获得
更灵活的授权许可。
六、合同约束
如果您违反了该协议的任一条款,该用户协议将自动终止,您必须停止使用,卡卡罗特保
留通过法律手段追究责任的权利。

@ -0,0 +1,45 @@
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, (err, stats) => {
spinner.stop()
if (err) throw err
process.stdout.write(
stats.toString({
colors: true,
modules: false,
children: false,
chunks: false,
chunkModules: false
}) + '\n\n'
)
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(
chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
" Opening index.html over file:// won't work.\n"
)
)
})
})

@ -0,0 +1,64 @@
'use strict'
const chalk = require('chalk')
const semver = require('semver')
const packageConfig = require('../package.json')
const shell = require('shelljs')
function exec(cmd) {
return require('child_process')
.execSync(cmd)
.toString()
.trim()
}
const versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
}
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function() {
const warnings = []
for (let i = 0; i < versionRequirements.length; i++) {
const mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(
mod.name +
': ' +
chalk.red(mod.currentVersion) +
' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(
chalk.yellow(
'To use this template, you must update following to modules:'
)
)
console.log()
for (let i = 0; i < warnings.length; i++) {
const warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@ -0,0 +1,119 @@
'use strict'
const path = require('path')
const config = require('../config')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const packageConfig = require('../package.json')
exports.assetsPath = function (_path) {
const assetsSubDirectory =
process.env.NODE_ENV === 'production' ?
config.build.assetsSubDirectory :
config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: options.sourceMap
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders(loader, loaderOptions) {
const loaders = []
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
// loaders.push(MiniCssExtractPlugin.loader)
loaders.push({
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../../'
}
})
} else {
loaders.push('vue-style-loader')
}
loaders.push(cssLoader)
if (options.usePostCSS) {
loaders.push(postcssLoader)
}
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
return loaders
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', {
indentedSyntax: true
}),
scss: generateLoaders('sass').concat({
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/styles/xr-theme.scss')
}
}),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
const output = []
const loaders = exports.cssLoaders(options)
for (const extension in loaders) {
const loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
exports.createNotifierCallback = () => {
const notifier = require('node-notifier')
return (severity, errors) => {
if (severity !== 'error') return
const error = errors[0]
const filename = error.file && error.file.split('!').pop()
notifier.notify({
title: packageConfig.name,
message: severity + ': ' + error.name,
subtitle: filename || '',
icon: path.join(__dirname, 'logo.png')
})
}
}

@ -0,0 +1,5 @@
'use strict'
module.exports = {
//You can set the vue-loader configuration by yourself.
}

@ -0,0 +1,118 @@
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const {
VueLoaderPlugin
} = require('vue-loader')
const vueLoaderConfig = require('./vue-loader.conf')
// el-bigdata-table babel-loader 配置
const fs = require('fs')
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
const createLintingRule = () => ({
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter'),
emitWarning: !config.dev.showEslintErrorsInOverlay
}
})
// el-bigdata-table babel-loader 配置
let bigTableDirName = fs.readdirSync(resolve('node_modules')).filter(dirName => /el-bigdata-table/.test(dirName))
const bigTableDirs = bigTableDirName.map(dir => resolve(`node_modules/${dir}/src`))
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: ["babel-polyfill", "./src/main.js"]
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath:
process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src')
}
},
module: {
rules: [
...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [
resolve('src'),
resolve('test'),
resolve('node_modules/webpack-dev-server/client'),
resolve('node_modules/element-ui/src'),
resolve('node_modules/element-ui/packages'),
...bigTableDirs
]
},
{
test: /\.svg$/,
loader: 'svg-sprite-loader',
include: [resolve('src/icons')],
options: {
symbolId: 'icon-[name]'
}
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
exclude: [resolve('src/icons')],
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('media/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
]
},
plugins: [new VueLoaderPlugin()],
node: {
// prevent webpack from injecting useless setImmediate polyfill because Vue
// source contains it (although only uses it if it's native).
setImmediate: false,
// prevent webpack from injecting mocks to Node native modules
// that does not make sense for the client
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
}
}

@ -0,0 +1,98 @@
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const portfinder = require('portfinder')
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT)
const devWebpackConfig = merge(baseWebpackConfig, {
mode: 'development',
optimization: {
removeAvailableModules: false
},
module: {
rules: utils.styleLoaders({
sourceMap: config.dev.cssSourceMap,
usePostCSS: true
})
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js
devServer: {
clientLogLevel: 'warning',
historyApiFallback: true,
hot: true,
compress: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/dev.env')
}),
new webpack.HotModuleReplacementPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
favicon: resolve('favicon.ico'),
title: 'wukong'
})
]
})
module.exports = new Promise((resolve, reject) => {
portfinder.basePort = process.env.PORT || config.dev.port
portfinder.getPort((err, port) => {
if (err) {
reject(err)
} else {
// publish the new Port, necessary for e2e tests
process.env.PORT = port
// add port to devServer config
devWebpackConfig.devServer.port = port
// Add FriendlyErrorsPlugin
devWebpackConfig.plugins.push(
new FriendlyErrorsPlugin({
compilationSuccessInfo: {
messages: [
`Your application is running here: http://${
devWebpackConfig.devServer.host
}:${port}`
]
},
onErrors: config.dev.notifyOnErrors
? utils.createNotifierCallback()
: undefined
})
)
resolve(devWebpackConfig)
}
})
})

@ -0,0 +1,181 @@
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
function resolve(dir) {
return path.join(__dirname, '..', dir)
}
const env = require('../config/prod.env')
// For NamedChunksPlugin
const seen = new Set()
const nameLength = 4
const webpackConfig = merge(baseWebpackConfig, {
mode: 'production',
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true,
usePostCSS: true
})
},
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash:8].js'),
chunkFilename: utils.assetsPath('js/[name].[chunkhash:8].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
// extract css into its own file
new MiniCssExtractPlugin({
filename: utils.assetsPath('css/[name].[contenthash:8].css'),
chunkFilename: utils.assetsPath('css/[name].[contenthash:8].css')
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
favicon: resolve('favicon.ico'),
title: 'wukong',
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
}
// default sort mode uses toposort which cannot handle cyclic deps
// in certain cases, and in webpack 4, chunk order in HTML doesn't
// matter anyway
}),
new ScriptExtHtmlWebpackPlugin({
//`runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/
}),
// keep chunk.id stable when chunk has no name
new webpack.NamedChunksPlugin(chunk => {
if (chunk.name) {
return chunk.name
}
const modules = Array.from(chunk.modulesIterable)
if (modules.length > 1) {
const hash = require('hash-sum')
const joinedHash = hash(modules.map(m => m.id).join('_'))
let len = nameLength
while (seen.has(joinedHash.substr(0, len))) len++
seen.add(joinedHash.substr(0, len))
return `chunk-${joinedHash.substr(0, len)}`
} else {
return modules[0].id
}
}),
// keep module.id stable when vender modules does not change
new webpack.HashedModuleIdsPlugin(),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
],
optimization: {
splitChunks: {
chunks: 'all',
cacheGroups: {
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial' // 只打包初始时依赖的第三方
},
elementUI: {
name: 'chunk-elementUI', // 单独将 elementUI 拆包
priority: 20, // 权重要大于 libs 和 app 不然会被打包进 libs 或者 app
test: /[\\/]node_modules[\\/]element-ui[\\/]/
}
}
},
runtimeChunk: 'single',
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
mangle: {
safari10: true
},
compress: {
drop_console: true
}
},
sourceMap: config.build.productionSourceMap,
cache: true,
parallel: true
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSAssetsPlugin()
]
}
})
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' + config.build.productionGzipExtensions.join('|') + ')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.generateAnalyzerReport || config.build.bundleAnalyzerReport) {
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
.BundleAnalyzerPlugin
if (config.build.bundleAnalyzerReport) {
webpackConfig.plugins.push(
new BundleAnalyzerPlugin({
analyzerPort: 8080,
generateStatsFile: false
})
)
}
if (config.build.generateAnalyzerReport) {
webpackConfig.plugins.push(
new BundleAnalyzerPlugin({
analyzerMode: 'static',
reportFilename: 'bundle-report.html',
openAnalyzer: false
})
)
}
}
module.exports = webpackConfig

@ -0,0 +1,8 @@
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
BASE_API: '"/api/"',
})

@ -0,0 +1,101 @@
'use strict'
// Template version: 1.2.6
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://192.168.1.50',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
},
'/file': {
target: 'http://192.168.1.116:8012/',
changeOrigin: true,
pathRewrite: {
'^/file': ''
}
}
},
// Various Dev Server settings
host: '0.0.0.0', // can be overwritten by process.env.HOST
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,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
// Use Eslint Loader?
// If true, your code will be linted during bundling and
// linting errors and warnings will be shown in the console.
useEslint: true,
// If true, eslint errors and warnings will also be shown in the error overlay
// in the browser.
showEslintErrorsInOverlay: false,
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-source-map',
// CSS Sourcemaps off by default because relative paths are "buggy"
// with this option, according to the CSS-Loader README
// (https://github.com/webpack/css-loader#sourcemaps)
// In our experience, they generally work as expected,
// just be aware of this issue when enabling this option.
cssSourceMap: false
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
/**
* You can set by youself according to actual condition
* You will need to set this if you plan to deploy your site under a sub path,
* for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/,
* then assetsPublicPath should be set to "/bar/".
* In most cases please use '/' !!!
*/
assetsPublicPath: './',
/**
* Source Maps
*/
productionSourceMap: false,
// https://webpack.js.org/configuration/devtool/#production
devtool: 'source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report || false,
// `npm run build:prod --generate_report`
generateAnalyzerReport: process.env.npm_config_generate_report || false
}
}

@ -0,0 +1,5 @@
'use strict'
module.exports = {
NODE_ENV: '"production"',
BASE_API: '"/index.php/"',
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>悟空CRM</title>
<script src="./static/client.js"></script>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

@ -0,0 +1,115 @@
{
"name": "5kcrm",
"version": "11.0.0",
"description": "",
"author": "5kcrm <service@5kcrm.com>",
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node build/build.js",
"build:report": "npm_config_report=true npm run build",
"lint": "eslint --ext .js,.vue src --fix",
"test": "npm run lint"
},
"dependencies": {
"@chenfengyuan/vue-qrcode": "^1.0.2",
"@fullcalendar/core": "^4.3.1",
"@fullcalendar/daygrid": "^4.3.0",
"@fullcalendar/interaction": "^4.3.0",
"@fullcalendar/list": "^4.3.0",
"@fullcalendar/timegrid": "^4.3.0",
"@fullcalendar/timeline": "^4.3.0",
"@fullcalendar/vue": "^4.3.1",
"@tinymce/tinymce-vue": "^3.2.0",
"axios": "0.18.0",
"babel-polyfill": "^6.26.0",
"clipboard": "^2.0.4",
"echarts": "4.3.0",
"el-bigdata-table": "^1.0.32",
"element-ui": "^2.12.0",
"file-saver": "^2.0.1",
"id-validator": "^1.3.0",
"js-cookie": "2.2.0",
"js-md5": "^0.7.3",
"lockr": "^0.8.5",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"numeral": "^2.0.6",
"nzh": "^1.0.4",
"pinyin-match": "^1.0.9",
"qrcodejs2": "0.0.2",
"throttle-debounce": "^2.1.0",
"vue": "2.5.17",
"vue-bus": "^1.1.0",
"vue-calendar-component": "^2.8.2",
"vue-cropper": "^0.4.8",
"vue-i18n": "^8.7.0",
"vue-moment": "^4.0.0",
"vue-radial-progress": "^0.2.10",
"vue-router": "3.0.1",
"vue2-animate": "^2.1.2",
"vuedraggable": "^2.16.0",
"vuex": "3.0.1",
"xlsx": "^0.14.1",
"xss": "^1.0.6"
},
"devDependencies": {
"autoprefixer": "8.5.0",
"babel-core": "6.26.0",
"babel-eslint": "8.2.6",
"babel-helper-vue-jsx-merge-props": "2.0.3",
"babel-loader": "7.1.5",
"babel-plugin-syntax-jsx": "6.18.0",
"babel-plugin-transform-runtime": "6.23.0",
"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",
"eslint-friendly-formatter": "4.0.1",
"eslint-loader": "2.0.0",
"eslint-plugin-vue": "4.7.1",
"eventsource-polyfill": "0.9.6",
"file-loader": "1.1.11",
"friendly-errors-webpack-plugin": "1.7.0",
"html-webpack-plugin": "4.0.0-alpha",
"mini-css-extract-plugin": "0.4.1",
"node-notifier": "5.2.1",
"node-sass": "^4.7.2",
"optimize-css-assets-webpack-plugin": "5.0.0",
"ora": "3.0.0",
"path-to-regexp": "2.4.0",
"portfinder": "1.0.16",
"postcss-import": "12.0.0",
"postcss-loader": "2.1.6",
"postcss-url": "7.3.2",
"rimraf": "2.6.2",
"sass-loader": "7.0.3",
"sass-resources-loader": "^2.0.0",
"script-ext-html-webpack-plugin": "2.0.1",
"semver": "5.5.0",
"shelljs": "0.8.2",
"svg-sprite-loader": "^4.1.3",
"uglifyjs-webpack-plugin": "1.2.7",
"url-loader": "1.0.1",
"vue-loader": "15.3.0",
"vue-style-loader": "4.1.2",
"vue-template-compiler": "2.5.17",
"webpack": "4.16.5",
"webpack-bundle-analyzer": "^2.13.1",
"webpack-cli": "3.1.0",
"webpack-dev-server": "3.1.5",
"webpack-merge": "4.1.4"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}

@ -0,0 +1,129 @@
<template>
<div id="app">
<router-view class="router-view" />
<vue-picture-viewer
v-if="showPreviewImg"
:img-data="previewImgs"
:select-index="previewIndex"
@close-viewer="showPreviewImg=false"/>
<xr-import
v-if="showFixImport"
:process-status="crmImportStatus"
@click.native="fixImportClick"/>
<c-r-m-import
:show.sync="showCRMImport"
:crm-type="crmType"
:props="crmProps"
:cache-show.sync="cacheShow"
:cache-done="cacheDone"
@status="crmImportChange"
@close="crmImportClose"/>
</div>
</template>
<script>
/** 常用图片预览创建组件 */
import VuePictureViewer from '@/components/VuePictureViewer/index'
import XrImport from '@/components/XrImport'
import XrImportMixins from '@/components/XrImport/XrImportMixins'
import CRMImport from '@/components/CRMImport'
import { mapGetters } from 'vuex'
import cache from '@/utils/cache'
export default {
name: 'App',
components: {
VuePictureViewer,
XrImport,
CRMImport
},
mixins: [XrImportMixins],
data() {
return {
showPreviewImg: false,
previewIndex: 0,
previewImgs: []
}
},
computed: {
...mapGetters(['activeIndex', 'userInfo'])
},
watch: {
$route(to, from) {
this.showPreviewImg = false //
}
},
mounted() {
this.addBus()
this.addDocumentVisibilityChange()
this.setMinHeight()
},
methods: {
addDocumentVisibilityChange() {
//
// hidden,
var state, visibilityChange
if (typeof document.hidden !== 'undefined') {
// hidden = 'hidden'
visibilityChange = 'visibilitychange'
state = 'visibilityState'
} else if (typeof document.mozHidden !== 'undefined') {
// hidden = 'mozHidden'
visibilityChange = 'mozvisibilitychange'
state = 'mozVisibilityState'
} else if (typeof document.msHidden !== 'undefined') {
// hidden = 'msHidden'
visibilityChange = 'msvisibilitychange'
state = 'msVisibilityState'
} else if (typeof document.webkitHidden !== 'undefined') {
// hidden = 'webkitHidden'
visibilityChange = 'webkitvisibilitychange'
state = 'webkitVisibilityState'
}
// title
document.addEventListener(visibilityChange, () => {
if (document[state] == 'visible') {
cache.updateAxiosHeaders()
}
this.$bus.emit('document-visibility', document[state])
}, false)
},
addBus() {
var self = this
this.$bus.on('preview-image-bus', function(data) {
self.previewIndex = data.index
self.previewImgs = data.data
self.showPreviewImg = true
})
},
setMinHeight() {
this.$nextTick(() => {
const dpr = window.devicePixelRatio || 1
const clientWidth = document.body.clientWidth
const dom = document.getElementById('app')
if (dpr !== 1 && clientWidth > 1600) {
dom.style.minHeight = '800px'
} else if (dpr === 1 && clientWidth > 1600) {
dom.style.minWidth = '1650px'
} else {
// dom.style.minWidth = '1200px'
dom.style.minHeight = '605px'
}
})
}
}
}
</script>
<style>
#app {
width: 100%;
position: relative;
height: 100%;
min-width: 1200px;
min-height: 605px;
}
</style>

@ -0,0 +1,31 @@
import request from '@/utils/request'
/**
* 应用列表接口
* @param {*} data
*
*/
export function adminConfigsetIndexAPI(data) {
return request({
url: 'admin/config_set/index',
method: 'post',
data: data
})
}
/**
* 应用状态改变
* @param {*} data
* id 应用ID
* status 1开启 0关闭
*/
export function adminConfigsetUpdateAPI(data) {
return request({
url: 'admin/config_set/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,28 @@
import request from '@/utils/request'
/**
* 企业首页
* @param {*} data
*/
export function adminSystemSaveAPI(data) {
return request({
url: 'admin/system/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 企业首页
* @param {*} data
*/
export function adminSystemIndexAPI(data) {
return request({
url: 'admin/system/index',
method: 'post',
data: data
})
}

@ -0,0 +1,563 @@
import request from '@/utils/request'
export function businessGroupListAPI(data) {
return request({
url: 'crm/business_status/type',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function businessGroupAddAPI(data) {
return request({
url: 'crm/business_status/save',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 商机状态组状态修改
* @param {*} data
*/
export function businessGroupUpdateStatusAPI(data) {
return request({
url: 'crm/business_status/enables',
method: 'post',
data: data
})
}
/**
* 商机状态组详情
* @param {*} data
*/
export function businessGroupReadAPI(data) {
return request({
url: 'crm/business_status/read',
method: 'post',
data: data
})
}
/**
* 商机状态组编辑
* @param {*} data
*/
export function businessGroupUpdateAPI(data) {
return request({
url: 'crm/business_status/update',
method: 'post',
data: data
})
}
/**
* 商机状态组删除
* @param {*} data
*/
export function businessGroupDeleteAPI(data) {
return request({
url: 'crm/business_status/delete',
method: 'post',
data: data
})
}
/**
* 自定义字段字段数据的添加编辑操作
* @param {*} data
*/
export function customFieldHandleAPI(data) {
return request({
url: 'admin/field/update',
method: 'post',
data: data
})
}
/**
* 自定义字段字段数据的详情
* @param {*} data
*/
export function customFieldListAPI(data) {
return request({
url: `admin/field/read`,
method: 'post',
data
})
}
/**
* 办公审批的自定义字段
* @param {*} data
*/
export function oaExamineFieldListAPI(data) {
return request({
url: `admin/field/read`,
method: 'post',
data
})
}
/**
* 办公审批自定义字段保存
* @param {*} data
*/
export function oaFieldHandleAPI(data) {
return request({
url: 'admin/field/update',
method: 'post',
data: data
})
}
/**
* 自定义字段字段数据的列表更新时间
* @param {*} data
*/
export function customFieldIndexAPI(data) {
return request({
url: 'admin/field/index',
method: 'post',
data: data
})
}
/**
* 产品类别 数据获取
* @param {*} data
*/
export function productCategoryIndexAPI(data) {
return request({
url: 'crm/product_category/index',
method: 'post',
data: data
})
}
/**
* 产品分类添加
* @param {*} data
*/
export function productCategorySaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: 'crm/product_category/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 产品分类删除
* @param {*} data
*/
export function productCategoryDeleteAPI(data) {
return request({
url: `crm/product_category/delete`,
method: 'post',
data
})
}
/**
* 客户保护规则
* @param {*} data
*/
export function crmSettingConfigAPI(data) {
return request({
url: 'crmCustomer/updateRulesSetting',
method: 'post',
data: data
})
}
/**
* 客户保护规则
* @param {*} data
*/
export function crmSettingConfigDataAPI(data) {
return request({
url: 'crm/setting/configData',
method: 'post',
data: data
})
}
/**
* 部门业绩目标列表
* @param {*} data
*/
export function crmAchievementIndex(data) {
return request({
url: 'crm/achievement/index',
method: 'post',
data: data
})
}
// crmAchievementIndexForuser
/**
* 员工业绩目标列表
* @param {*} data
*/
export function crmAchievementIndexForuser(data) {
return request({
url: 'crm/achievement/indexForuser',
method: 'post',
data: data
})
}
/**
* 业绩目标编辑接口
* @param {*} data
*/
export function crmAchievementUpdate(data) {
return request({
url: 'crm/achievement/update',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 新增业绩目标
* @param {*} data
*/
export function crmAchievementAdd(data) {
return request({
url: 'crm/achievement/save',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 删除业绩目标
* @param {*} data
*/
export function crmAchievementDelete(data) {
return request({
url: 'crm/achievement/delete',
method: 'post',
data: data
})
}
/**
* 记录类型 数据
* @param {*} data
*/
export function crmSettingRecordListAPI(data) {
return request({
url: 'crm/setting/recordList',
method: 'post',
data: data
})
}
/**
* 记录类型 编辑
* @param {*} data
*/
export function crmSettingRecordEditAPI(data) {
return request({
url: 'crm/setting/recordEdit',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 合同到期提醒 设置
* @param {*} data
*/
export function crmSettingContractDayAPI(data) {
return request({
url: 'crm/setting/contractDay',
method: 'post',
data: data
})
}
/**
* 拥有锁定客户数限制
* @param {*} data
*/
export function crmSettingCustomerConfigListAPI(data) {
return request({
url: 'crm/setting/customerConfigList',
method: 'post',
data: data
})
}
/**
* 拥有锁定客户数限制 - 创建 编辑
* @param {*} data
*/
export function crmSettingCustomerConfigSetAPI(data) {
return request({
url: 'crm/setting/customerConfigSave',
method: 'post',
data: data
})
}
/**
* 拥有锁定客户数限制 - 删除
* @param {*} data
*/
export function crmSettingCustomerConfigDelAPI(data) {
return request({
url: 'crm/setting/customerConfigDel',
method: 'post',
data: data
})
}
/**
* 客户回访查询
* @param {*} data
*/
export function returnVisitConfigQueryAPI(data) {
return request({
url: 'crm/setting/getVisitDay',
method: 'post',
data: data
})
}
/**
* 客户回访设置
* @param {*} data
*/
export function returnVisitConfigSetAPI(data) {
return request({
url: 'crm/setting/setVisitDay',
method: 'post',
data: data
})
}
/**
* 编号查询
* @param {*} data
*/
export function sysConfigNumberQueryAPI(data) {
return request({
url: 'crm/setting/numberSequenceList',
method: 'post',
data: data
})
}
/**
* 编号设置
* @param {*} data
*/
export function sysConfigNumberSetAPI(data) {
return request({
url: 'crm/setting/setNumber',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/** ****************自定义模板***********************/
/**
* 查询 打印模板列表
* @param {*} data
*/
export function printTemplateListAPI(data) {
return request({
url: 'admin/printing/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询指定打印模板
* templateId
* @param {*} data
*/
export function printTemplateByIdAPI(data) {
return request({
url: 'crmPrint/queryPrintTemplateById',
method: 'post',
data: data
})
}
/**
* 添加模板 打印模板
* templateName 模板名称
* type 关联对象
* content模板
* @param {*} data
*/
export function printAddTemplateAPI(data) {
return request({
url: 'admin/printing/create',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 编辑模板 打印模板
* templateName 模板名称
* type 关联对象
* content模板
* @param {*} data
*/
export function printUpdateTemplateAPI(data) {
return request({
url: 'admin/printing/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除指定打印模板
* templateId
* @param {*} data
*/
export function printDeleteTemplateAPI(data) {
return request({
url: 'admin/printing/delete',
method: 'post',
data: data
})
}
/**
* 模块对应字段查询
* type
* @param {*} data
*/
export function printQueryFieldsAPI(data) {
return request({
url: 'admin/printing/field',
method: 'post',
data: data
})
}
/**
* 模板校准为内容
* type
* @param {*} data
*/
export function printPrintAPI(data) {
return request({
url: 'crmPrint/print',
method: 'post',
data: data
})
}
/**
* 模板复制
* type
* @param {*} data
*/
export function printCopyTemplateAPI(data) {
return request({
url: 'admin/printing/copy',
method: 'post',
data: data
})
}
/**
* 保存打印记录
* type
* @param {*} data
*/
export function printSaveRecordAPI(data) {
return request({
url: 'crmPrint/savePrintRecord',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询打印记录
* type
* @param {*} data
*/
export function printQueryPrintRecordAPI(data) {
return request({
url: 'crmPrint/queryPrintRecord',
method: 'post',
data: data
})
}
/**
* 打印记录详情
* type
* @param {*} data
*/
export function printRecordDetailAPI(data) {
return request({
url: 'crmPrint/queryPrintRecordById',
method: 'post',
data: data
})
}
/**
* 打印预览
* type
* @param {*} data
*/
export function printPreviewAPI(data) {
return request({
url: 'crmPrint/preview',
method: 'post',
data: data
})
}

@ -0,0 +1,173 @@
import request from '@/utils/request'
export function depDeleteAPI(data) {
return request({
url: 'admin/structures/delete',
method: 'post',
data
})
}
export function depEditAPI(data) {
return request({
url: 'admin/structures/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function depSaveAPI(data) {
return request({
url: 'admin/structures/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function userEditAPI(params) {
return request({
url: 'admin/users/update',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function userAddAPI(params) {
return request({
url: 'admin/users/save',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 角色列表
export function roleListAPI(data) {
return request({
url: 'admin/groups/index',
method: 'post',
data: data
})
}
/**
* 批量修改密码接口
* @param {*} data
* password
* id 用户数组
*/
export function adminUsersUpdatePwdAPI(data) {
return request({
url: 'admin/users/updatePwd',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 编辑登录名
* @param {*} data
* username
* password
* id
*/
export function adminUsersUsernameEditAPI(data) {
return request({
url: 'admin/users/usernameEdit',
method: 'post',
data: data
})
}
/**
* 编辑登录名
* @param {*} data
* username
* password
* id
* 可修改管理员
*/
export function adminUsersManagerUsernameEditAPI(data) {
return request({
url: 'adminUser/usernameEditByManager',
method: 'post',
data: data
})
}
/**
* 用户状态修改
* @param {*} data
*/
export function usersEditStatusAPI(data) {
return request({
url: 'admin/users/enables',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 用户导入模板
* @param {*} data
*/
// export const userImportTemplateURL = 'https://www.72crm.com/npm/static/user_import.xlsx'
export function userImportTemplateAPI(data) {
return request({
url: 'admin/users/excelDownload',
method: 'get',
data: data,
responseType: 'blob'
})
}
/**
* 用户导入
* @param {*} data
*/
export function userExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'admin/users/import',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
},
timeout: 60000
})
}
/**
* 下载用户导入错误数据
* @param {*} data
*
*/
export function userErrorExcelDownAPI(data) {
return request({
url: 'admin/file/download',
method: 'post',
data: data,
responseType: 'blob'
})
}

@ -0,0 +1,118 @@
/*
* @Description: 悟空软件
* @Author: 悟空
* @Date: 2020-06-03 09:10:23
* @LastEditTime: 2020-07-01 10:23:57
* @LastEditors: yang
*/
import request from '@/utils/request'
/**
* 通过批次ID删除文件
*/
export function adminFileDeleteByBatchIdAPI(data) {
return request({
url: 'adminFile/deleteByBatchId',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 通过ID删除文件
*/
export function adminFileDeleteByIdAPI(id) {
return request({
url: `adminFile/deleteById/${id}`,
method: 'post'
})
}
/**
* 下载文件接口
*/
export function adminFileDownAPI(id) {
return request({
url: `adminFile/down/${id}`,
method: 'post',
responseType: 'blob'
})
}
/**
* 通过adminFile/down/${id}下载文件接口
* 后期使用 暂用 downloadFileAPI
*/
export function adminFileDownByUrlAPI(url) {
return request({
url: url,
method: 'post',
responseType: 'blob'
})
}
/**
* 通过ID查询文件
*/
export function adminFileQueryByIdAPI(id) {
return request({
url: `adminFile/queryById/${id}`,
method: 'post'
})
}
/**
* 通过批次ID查询文件列表
*/
export function adminFileQueryFileListAPI(id) {
return request({
url: `adminFile/queryFileList/${id}`,
method: 'post'
})
}
/**
* 通过批次ID查询单个文件
*/
export function adminFileQueryOneByBatchIdAPI(id) {
return request({
url: `adminFile/queryOneByBatchId/${id}`,
method: 'post'
})
}
/**
* 修改附件名称
* @param {*} data
*/
export function adminFileRenameFileAPI(data) {
return request({
url: 'admin/file/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 上传文件
*/
export function adminFileUploadAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'adminFile/upload',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}

@ -0,0 +1,31 @@
import request from '@/utils/request'
/**
* 验证密码
* @param {*} data
*/
export function adminConfigVerifyPasswordAPI(data) {
return request({
url: 'admin/initialize/verification',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 模块初始化
* @param {*} data
*/
export function adminConfigModuleInitDataAPI(data) {
return request({
url: 'admin/initialize/update',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}

@ -0,0 +1,55 @@
import request from '@/utils/request'
/**
* 审批类型列表
* @param {*} data
*/
export function oaExamineCategoryListAPI(data) {
return request({
url: 'oa/examine/category',
method: 'post',
data: data
})
}
/**
* 审批类型的创建
* @param {*} data
*/
export function oaExamineCategorySaveAPI(data) {
return request({
url: `oa/examine/${data.id ? 'categoryUpdate' : 'categorySave'}`,
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 审批删除
* @param {*} data
*/
export function oaExamineCategoryDeleteAPI(data) {
return request({
url: 'oa/examine/categoryDelete',
method: 'post',
data: data
})
}
/**
* 审批状态启用停用
* @param {*} data
*/
export function oaExamineCategoryEnablesAPI(data) {
return request({
url: 'oa/examine/categoryEnables',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,110 @@
import request from '@/utils/request'
/**
* 设置日志欢迎语 oaCalendar/addOrUpdate
* @param {*} data
*/
export function sysSetLogWelcomeAPI(data) {
return request({
url: 'admin/dailyRule/setWelcome',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 设置日志欢迎语
* @param {*} data
*/
export function sysGetLogWelcomeListAPI(data) {
return request({
url: 'admin/dailyRule/welcome',
method: 'post',
data: data
})
}
// /**
// * 根据id删除日志欢迎语
// * @param {*} data
// */
// export function sysDeleteConfigByIdAPI(data) {
// return request({
// url: 'sysConfig/deleteConfigById',
// method: 'post',
// data: data
// })
// }
/**
* 添加/修改日程类型
* @param {*} data
*/
export function calendarAddOrUpdateAPI(data) {
return request({
url: `admin/dailyRule/${data.id ? 'setSchedule' : 'addSchedule'}`,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询日程类型
* @param {*} data
*/
export function calendarQueryTypeListAPI(data) {
return request({
url: 'admin/dailyRule/scheduleList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除日程类型
* @param {*} typeId
*/
export function calendarDeleteAPI(data) {
return request({
url: `admin/dailyRule/delSchedule`,
method: 'post',
data
})
}
/**
* 查询日志规则接口
* @param {*} data
*/
export function oaLogRuleQueryAPI(data) {
return request({
url: 'admin/dailyRule/workLogRule',
method: 'post',
data: data
})
}
/**
* 设置日志规则接口
* @param {*} data
*/
export function oaLogRuleSetAPI(data) {
return request({
url: 'admin/dailyRule/setWorkLogRule',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data
})
}

@ -0,0 +1,52 @@
import request from '@/utils/request'
/**
* 列表
* @param {*} data
*/
export function systemRoleQueryProjectRoleListAPI(data) {
return request({
url: 'admin/work/roles',
method: 'post',
data: data
})
}
/**
* 角色
* @param {*} data
*/
export function systemMenuGetWorkMenuListAPI(data) {
return request({
url: 'admin/work/rules',
method: 'post',
data: data
})
}
/**
* 设置
* @param {*} data
*/
export function systemRoleSetWorkRoleAPI(data) {
return request({
url: `admin/work/${data.id ? 'updateRole' : 'saveRole'}`,
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 删除项目角色
*/
export function systemRoleDeleteWorkRoleAPI(data) {
return request({
url: 'admin/work/deleteRole',
method: 'post',
data: data
})
}

@ -0,0 +1,175 @@
import request from '@/utils/request'
// export function roleListFun(data) {
// return request({
// url: 'adminRole/getAllRoleList',
// method: 'post',
// data: data
// })
// }
// export function rulesList(data) {
// return request({
// url: 'adminMenu/getAllMenuList',
// method: 'post',
// data: data
// })
// }
export function roleAddAPI(data) {
return request({
url: 'admin/groups/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function roleDeleteAPI(data) {
return request({
url: 'admin/groups/delete',
method: 'post',
data: data
})
}
export function roleUpdateAPI(data) {
return request({
url: 'admin/groups/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function updateRoleMenuAPI(data) {
return request({
url: 'admin/groups/update',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 角色复制
* @param {*} data
*/
export function roleCopyAPI(data) {
return request({
url: 'admin/groups/copy',
method: 'post',
data: data
})
}
/**
* 复制员工角色
* @param {*} data
*/
export function adminRoleRelatedDeptUserAPI(data) {
return request({
url: 'admin/users/copyRole',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 添加编辑员工
* @param {*} data
*/
export function adminRoleRelatedUserAPI(data) {
return request({
url: 'admin/users/groups',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 删除员工
* @param {*} data
*/
export function unbindingUserAPI(data) {
return request({
url: 'admin/users/groupsDel',
method: 'post',
data: data
})
}
/**
* 角色分类列表
* @param {*} data
*/
export function adminGroupsTypeListAPI(data) {
return request({
url: 'admin/groups/typeList',
method: 'post',
data: data
})
}
/**
* 参数 roleType 根据角色类型查询角色列表
* @param {*} roleType
*/
export function systemRoleByTypeAPI(data) {
return request({
url: `admin/groups/index`,
method: 'post',
data
})
}
/**
* 规则
* @param {*} roleType
*/
export function systemRuleByTypeAPI(data) {
return request({
url: `admin/rules/index`,
method: 'post',
data
})
}
/**
* 查询字段授权设置
* @param {*} data
*/
export function systemRoleGetFieldAPI(data) {
return request({
url: 'admin/fieldGrant/index',
method: 'post',
data: data
})
}
/**
* 模块设置字段授权
* @param {*} data
*/
export function systemRoleSetFieldAPI(data) {
return request({
url: 'admin/fieldGrant/update',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}

@ -0,0 +1,120 @@
import request from '@/utils/request'
/**
* 查询版本
* @param {*} data
*/
export function crmCheckVersionAPI() {
return request({
url: 'checkVersion',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询数据库
* @param {*} data
*/
export function crmQueryDatabaseAPI() {
return request({
url: 'queryDatabase',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 数据备份
* @param {*} data
*/
export function crmBackupDatabaseAPI(data) {
return request({
url: 'backupDatabase',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
}).then(
res => {
return res
},
err => {
return err
}
)
}
/**
* 更新进度
* @param {*} data
*/
export function crmUpdateAPI(data) {
return request({
url: 'projectUpdate',
method: 'post',
data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
}).then(
res => {
return res
},
err => {
return err
}
)
}
/**
* 更新进度
* @param {*} data
*/
export function updateProgressAPI() {
return request({
url: 'getProgress',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
}).then(
res => {
return res
},
err => {
return err
}
)
}
/**
* 登录悟空CRM
* @param {*} data
*/
export function loginWKAPI(data) {
return request({
url: 'updates/login',
method: 'post',
data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
}).then(
res => {
return res
},
err => {
return err
}
)
}

@ -0,0 +1,15 @@
/**
* Created by yxk at 2020/6/5
*/
import request from '@/utils/request'
/**
* 查询部门员工列表
* @param {*} data
*/
export function adminUserQueryByDeptAPI(deptId) {
return request({
url: `adminUser/queryDeptUserList/${deptId}`,
method: 'post'
})
}

@ -0,0 +1,128 @@
import request from '@/utils/request'
/**
* 合同数量分析/金额分析/回款金额分析
* count合同数量分析money金额分析back回款金额分析
*/
export function biAchievementAnalysisAPI(data) {
if (data.type === 'count') {
return request({
url: 'bi/contract/analysis',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
} else if (data.type === 'money') {
return request({
url: 'bi/contract/analysis',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
} else if (data.type === 'back') {
return request({
url: 'bi/contract/analysis',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
}
export function biAchievementAnalysisExportAPI(data) {
if (data.type === 'count') {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
} else if (data.type === 'money') {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
} else if (data.type === 'back') {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
}
/**
* 合同汇总表
* @param {*} data
*/
export function biAchievementSummaryAPI(data) {
return request({
url: 'bi/contract/summary',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biAchievementSummaryExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 发票统计分析
* @param {*} data
*/
export function biAchievementInvoiceAPI(data) {
return request({
url: 'bi/contract/invoice',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 发票统计分析导出
* @param {*} data
*/
export function biAchievementInvoiceExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,64 @@
import request from '@/utils/request'
/**
* 业绩目标完成情况
* @param {*} data
*/
export function biAchievementStatisticsAPI(data) {
return request({
url: 'bi/achievement/statistics',
method: 'post',
data: data
})
}
export function biAchievementStatisticsExportAPI(data) {
return request({
url: 'bi/achievement/excelExport',
method: 'post',
data: data,
responseType: 'blob'
})
}
/**
* 产品销售情况统计
* @param {*} data
*/
export function biProductStatisticsAPI(data) {
return request({
url: 'bi/product/statistics',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biProductStatisticsExportAPI(data) {
return request({
url: 'bi/product/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 销售漏斗
* @param {*} data
*/
export function biBusinessFunnelAPI(data) {
return request({
url: 'bi/business/funnel',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,50 @@
import request from '@/utils/request'
/**
* 新增商机数与金额趋势分析
* @param {*} data
* year
* status 1销售目标2回款目标
* user_id 员工ID
* structure_id 部门ID
*/
export function biBusinessTrendAPI(data) {
return request({
url: 'bi/business/businessTrend',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 新增商机数与金额趋势分析 详情列表
* @param {*} data
*/
export function biBusinessTrendListAPI(data) {
return request({
url: 'bi/business/trendList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 赢单机会转化率趋势分析
* @param {*} data
*/
export function biBusinessWinAPI(data) {
return request({
url: 'bi/business/win',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,326 @@
import request from '@/utils/request'
/**
* 员工客户总量分析
*/
export function biCustomerTotalAPI(data) {
return request({
url: 'bi/customer/total',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerTotalListAPI(data) {
return request({
url: 'bi/customer/statistics',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerTotalListExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工客户跟进次数分析
* @param {*} data
*/
export function biCustomerRecordTimesAPI(data) {
return request({
url: 'bi/customer/recordTimes',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工客户跟进次数分析 具体员工列表
* @param {*} data
*/
export function biCustomerRecordListAPI(data) {
return request({
url: 'bi/customer/recordList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerRecordListExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工跟进方式分析
* @param {*} data
*/
export function biCustomerRecordModeAPI(data) {
return request({
url: 'bi/customer/recordMode',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerRecordModeExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户转化率分析具体数据
* @param {*} data
*/
export function biCustomerConversionInfoAPI(data) {
return request({
url: 'bi/customer/conversionInfo',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户转化率分析
* @param {*} data
*/
export function biCustomerConversionAPI(data) {
return request({
url: 'bi/customer/conversion',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海客户分析
* @param {*} data
*/
export function biCustomerPoolAPI(data) {
return request({
url: 'bi/customer/pool',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海客户分析
* @param {*} data
*/
export function biCustomerPoolListAPI(data) {
return request({
url: 'bi/customer/poolList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerPoolListExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工客户成交周期
* @param {*} data
*/
export function biCustomerUserCycleAPI(data) {
return request({
url: 'bi/customer/userCycle',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerUserCycleExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function employeeCycleInfoAPI(data) {
return request({
url: 'bi/customer/userCycleList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 地区成交周期
* @param {*} data
*/
export function biCustomerAddressCycleAPI(data) {
return request({
url: 'bi/customer/addressCycle',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerAddressCycleExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 产品成交周期
* @param {*} data
*/
export function biCustomerProductCycleAPI(data) {
return request({
url: 'bi/customer/productCycle',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerProductCycleExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工客户满意度分析
* @param {*} data
*/
export function biCustomerSatisfactionTableAPI(data) {
return request({
url: 'bi/customer/customerSatisfaction',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerSatisfactionTableExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工客户满意度分析
* @param {*} data
*/
export function biCustomerProductSatisfactionTableAPI(data) {
return request({
url: 'bi/customer/productSatisfaction',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biCustomerProductSatisfactionExportAPI(data) {
return request({
url: 'bi/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,50 @@
import request from '@/utils/request'
/**
* 城市分布分析
*/
export function biAchievementAnalysisAPI(data) {
return request({
url: 'bi/customer/addressAnalyse',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biAchievementPortraitAPI(data) {
const type = data.type_analyse
if (type === 'industry') {
return request({
url: 'bi/customer/portrait',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
} else if (type === 'level') {
return request({
url: 'bi/customer/portrait',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
} else if (type === 'source') {
return request({
url: 'bi/customer/portrait',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
}

@ -0,0 +1,80 @@
import request from '@/utils/request'
/**
* 日志统计
* @param {*} data
*/
export function biLogStatisticsAPI(data) {
return request({
url: 'bi/log/statistics',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 日志统计导出
* @param {*} data
*/
export function biLogExcelExportAPI(data) {
return request({
url: 'bi/log/excelExport',
method: 'post',
data: data,
responseType: 'blob',
timeout: 600000,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批统计
* @param {*} data
*/
export function biExamineStatisticsAPI(data) {
return request({
url: 'bi/examine/statistics',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批统计详情列表
* @param {*} data
*/
export function biExamineIndexAPI(data) {
return request({
url: 'bi/examine/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批统计导出
* @param {*} data
*/
export function biExamineExcelExportAPI(data) {
return request({
url: 'bi/examine/excelExport',
method: 'post',
data: data,
responseType: 'blob',
timeout: 600000,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,15 @@
import request from '@/utils/request'
/**
* 产品分类销量分析
*/
export function biProductCategoryAPI(data) {
return request({
url: 'bi/product/productCategory',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,250 @@
import request from '@/utils/request'
/**
* 合同金额
* @param {*} data
* year
* status 1销售目标2回款目标
* user_id 员工ID
* structure_id 部门ID
*/
export function biRankingContractAPI(data) {
return request({
url: 'bi/ranking/contract',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingContractExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 回款金额排行
* @param {*} data
*/
export function biRankingReceivablesAPI(data) {
return request({
url: 'bi/ranking/receivables',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingReceivablesExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 签约合同排行
* @param {*} data
*/
export function biRankingSigningAPI(data) {
return request({
url: 'bi/ranking/signing',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingSigningExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 产品销量排行
* @param {*} data
*/
export function biRankingProductAPI(data) {
return request({
url: 'bi/ranking/product',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingProductExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 新增客户数排行
* @param {*} data
*/
export function biRankingAddCustomerAPI(data) {
return request({
url: 'bi/ranking/addCustomer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingAddCustomerExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 新增联系人数排行
* @param {*} data
*/
export function biRankingAddContactsAPI(data) {
return request({
url: 'bi/ranking/addContacts',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingAddContactsExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 跟进次数排行
* @param {*} data
*/
export function biRankingRecordNunAPI(data) {
return request({
url: 'bi/ranking/recordNun',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingRecordNunExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 跟进客户数排行
* @param {*} data
*/
export function biRankingRecordCustomerAPI(data) {
return request({
url: 'bi/ranking/recordCustomer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingRecordCustomerExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 出差次数排行
* @param {*} data
*/
export function biRankingExamineAPI(data) {
return request({
url: 'bi/ranking/examine',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function biRankingExamineExportAPI(data) {
return request({
url: 'bi/ranking/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,240 @@
import request from '@/utils/request'
/**
* 新增日程
*
*/
export function canlendarSaveAPI(data) {
return request({
url: 'oa/event/save',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 删除日程
*
*/
export function canlendarDeleteAPI(data) {
return request({
url: 'oa/event/delete',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 查询日程
*
*/
export function canlendarQueryListAPI(data) {
return request({
url: 'oa/event/index',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 编辑日程 oaEvent/queryById
*
*/
export function canlendarUpdateAPI(data) {
return request({
url: 'oa/event/update',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 查询日程详情
*
*/
export function canlendarQueryByIdAPI(data) {
return request({
url: 'oa/event/read',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 查询自定义列表
*/
export function canlendarQueryTypeListAPI(data) {
return request({
url: 'oa/event/schedule',
method: 'post',
data: data
})
}
/**
* 编辑自定义列表 oaCalendar/todayTask
*/
export function canlendarUpdateTypeAPI(data) {
return request({
url: 'oa/event/saveSchedule',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
// /**
// * 今日需联系任务
// */
// export function canlendarTodayTaskAPI(data) {
// return request({
// url: 'oaCalendar/todayTask',
// method: 'post',
// headers: {
// 'Content-Type': 'application/json;charset=UTF-8'
// },
// data: data
// })
// }
/**
* 今日到期的合同type: 1 当日到期合同 2 当日回款合同
*/
export function canlendarTodayContractAPI(data) {
return request({
url: 'oa/event/eventContract',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 需联系客户
*/
export function canlendarTodayCustomerAPI(data) {
return request({
url: 'oa/event/eventCustomer',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 需联系线索
*/
export function canlendarTodayLeadsAPI(data) {
return request({
url: 'oa/event/eventLeads',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 需联系商机
*/
export function canlendarTodayBusinessAPI(data) {
return request({
url: 'oa/event/eventBusiness',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 预计成交商机
*/
export function canlendarTodayDealBusinessAPI(data) {
return request({
url: 'oa/event/eventDealBusiness',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 小日历标记
*/
export function canlendarQueryListStatusAPI(data) {
return request({
url: 'oa/event/listStatus',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 今日crm状态提醒
*/
export function canlendarEventCrmAPI(data) {
return request({
url: 'oa/event/eventCrm',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 即将到期的任务
*/
export function canlendarEventTaskAPI(data) {
return request({
url: 'oa/event/eventTask',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 日程员工列表
*/
export function systemUserQueryAuthUserList(data) {
return request({
url: 'admin/users/subordinate',
method: 'post',
data: data
})
}

@ -0,0 +1,361 @@
import request from '@/utils/request'
/**
* 员工
* @param {*} data
*/
export function userListAPI(data) {
return request({
url: 'admin/users/getUserList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 员工列表
* @param {*} data
*/
export function usersListIndexAPI(data) {
return request({
url: 'admin/users/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 部门
* @param {*} data
*/
export function depListAPI(data) {
return request({
url: 'admin/structures/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// admin/structures/listDialog
/**
* 添加部门
* @param {*} data
*/
export function listDialogAPI(data) {
return request({
url: 'admin/structures/listDialog',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 获取权限范围内部门接口
* @param {*} data
*/
export function adminStructuresSubIndexAPI(data) {
return request({
url: 'adminDept/queryDeptByAuth',
method: 'post',
data: data
})
}
/**
* 获取权限范围内部门接口
* @param {*} data
*/
export function getUserByDeptIdAPI(data) {
return request({
url: 'adminUser/queryUserByDeptId',
method: 'post',
data: data
})
}
/**
* 部门下的员工
* @param {*} data
*/
export function userListByStructidAPI(data) {
return request({
url: 'adminUser/userListByStructidAPI',
method: 'post',
data: data
})
}
/**
* 附件
* @param {*} data
*/
export const crmFileSaveUrl = window.BASE_URL + 'admin/file/save'
export function crmFileSaveAPI(data, config = {}) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'admin/file/save',
method: 'post',
data: param,
...config,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 公共web文件上传
* @param data
*/
export function webFileSaveAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
param.append('isPublic', '1')
})
return request({
url: 'adminFile/upload',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 唯一图
* @param {*} data
*/
export function crmFileSaveByBatchIdAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'admin/file/save',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/** 暂时客户管理里面也有 */
/**
* 附件删除接口
* @param {*} data
*/
export function crmFileDeleteAPI(data) {
return request({
url: `admin/file/delete`,
method: 'post',
data: data
})
}
/**
* 根据批次ID删除文件
* @param {*} data
*/
export function crmFileRemoveByBatchIdAPI(data) {
return request({
url: 'admin/file/deleteAll',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 附件重命名
* @param {*} data
*/
export function crmFileUpdateAPI(data) {
return request({
url: 'admin/file/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 通过path 下载
* @param {*} data
*/
export function crmFileDownByPathAPI(data) {
return request({
url: 'crmPrint/down',
method: 'post',
data: data,
responseType: 'blob'
})
}
/**
* 权限数据返回
* @param {*} data
*/
export function adminIndexAuthListAPI(data) {
return request({
url: 'admin/index/authList',
method: 'post',
data: data
})
}
/**
* 系统消息列表
* label 1 任务 2 日志 3 oa审批 4公告 5 日程 6 客户管理
* isRead 0 未读 1 已读
* @param {*} data
*/
export function systemMessageListAPI(data) {
return request({
url: 'admin/message/messageList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 导出 历史
export function systemHistoryActivityListAPI(data) {
return request({
url: 'admin/index/importList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 未读消息数
* @param {*} data
*/
export function systemMessageUnreadCountAPI(data) {
return request({
url: 'admin/message/unreadCount',
method: 'post',
data: data
})
}
/**
* 读消息
* @param {*} data
*/
export function systemMessageReadAPI(data) {
return request({
url: 'admin/message/updateMessage',
method: 'post',
data: data
})
}
/**
* 读全部消息
* @param {*} data
*/
export function systemMessageReadAllAPI(data) {
return request({
url: 'admin/message/readAllMessage',
method: 'post',
data: data
})
}
/**
* 用户信息
* @param {*} data
*/
export function systemUserInfoAPI(data) {
return request({
url: 'admin/users/read',
method: 'post',
data: data
})
}
/**
* 系统消息按类别删除
* @param {*} data
*/
export function systemMessageClearAPI(data) {
return request({
url: 'admin/message/clear',
method: 'post',
data: data
})
}
/**
* 系统消息删除
* @param {*} data
*/
export function systemMessageDeleteByIdAPI(data) {
return request({
url: `admin/message/delete`,
method: 'post',
data
})
}
export function downloadFileAPI(data) {
return request({
url: 'admin/file/download',
method: 'post',
data,
responseType: 'blob'
})
}
export function downloadFileImageAPI(data) {
return request({
url: 'admin/file/downloadImage',
method: 'post',
data,
responseType: 'blob'
})
}
/**
* 已读更新通知
* @param {*} data
*/
export function readUpdateNoticeAPI(data) {
return request({
url: 'adminUser/readNotice',
method: 'post',
data: data
})
}

@ -0,0 +1,29 @@
import request from '@/utils/request'
/**
* 查询客户管理导航栏设置接口
* @param {*} data
*/
export function configHeaderModelSortAPI(data) {
return request({
url: 'admin/index/sort',
method: 'post',
data: data
})
}
/**
* 修改首页顶部导航栏设置接口
* @param {*} data
*/
export function configSetHeaderModelSortAPI(data) {
return request({
url: 'admin/index/updatesort',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,325 @@
import request from '@/utils/request'
/**
* 新建商机
* @param {*} data
*/
export function crmBusinessSaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: `crm/business/${url}`,
method: 'post',
data: data
})
}
/**
* 列表
* @param {*} data
*/
export function crmBusinessIndexAPI(data) {
return request({
url: 'crm/business/index',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*/
export function crmBusinessDeleteAPI(data) {
return request({
url: 'crm/business/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 商机状态组
* @param {*} data
*/
export function crmBusinessStatusListAPI(data) {
return request({
url: 'crm/business/statusList',
method: 'post',
data: data
})
}
/**
* 商机下的状态组
* @param {*} data
*/
export function crmBusinessStatusByIdAPI(data) {
return request({
url: `crm/business/statusList`,
method: 'post',
data: data
})
}
/**
* 详情
* @param {*} data
*/
export function crmBusinessReadAPI(data) {
return request({
url: `crm/business/read`,
method: 'post',
data
})
}
/**
* 商机转移
* @param {*} data
*/
export function crmBusinessTransferAPI(data) {
return request({
url: 'crm/business/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 商机转移
* @param {*} data
*/
export function crmBusinessAdvanceAPI(data) {
return request({
url: 'crm/business/advance',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 商机相关产品
* @param {*} data
*/
export function crmBusinessProductAPI(data) {
return request({
url: 'crm/business/product',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 合同
* @param {*} data
*/
export function crmBusinessQueryContractAPI(data) {
return request({
url: 'crm/contract/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 团队操作
/**
* 团队成员创建
* @param {*} data
*/
export function crmBusinessSettingTeamSaveAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function crmBusinessSettingTeamDeleteAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function crmBusinessTeamMembersAPI(data) {
return request({
url: `crm/setting/team`,
method: 'post',
data
})
}
export function crmBusinessUpdateMembersAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 退出团队
* @param {*} data
*/
export function crmBusinessExitTeamAPI(data) {
return request({
url: `crm/setting/quitTeam`,
method: 'post',
data
})
}
/**
* 商机关联联系人
* @param {*} data
*/
export function crmBusinessRelateContactsAPI(data) {
return request({
url: 'crm/contacts/relation',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 商机取消关联联系人
* @param {*} data
*/
export function crmBusinessUnrelateContactsAPI(data) {
return request({
url: 'crm/contacts/relation',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 商机下联系人
* @param {*} data
*/
export function crmBusinessQueryContactsAPI(data) {
return request({
url: 'crm/contacts/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 设置首要联系人
* @param {*} data
*
*/
export function crmBusinessSetContactsAPI(data) {
return request({
url: 'crm/business/setPrimary',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmBusinessFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmBusinessNumAPI(data) {
return request({
url: 'crm/business/count',
method: 'post',
data: data
})
}
/**
* 商机导出
* @param {*} data
*/
export function crmBusinessExcelExportAPI(data) {
return request({
url: 'crm/business/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob',
timeout: 60000
})
}
export function crmBusinessExcelAllExportAPI(data) {
return request({
url: 'crm/business/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 标星
* @param {*} data
*
*/
export function crmBusinessStarAPI(data) {
return request({
url: `/crm/business/star`,
method: 'post',
data
})
}

@ -0,0 +1,474 @@
import request from '@/utils/request'
/**
*crm 自定义字段的添加
* @param {*} data
*/
export function filedGetFieldAPI(data) {
// const label = data.label
// let url
// if (label === 10) {
// url = '/oaExamineField/queryField/' + data.id
// } else {
// url = crmTypeModel.labelToType[label] + '/field/' + (data.id ? data.id : '')
// }
return request({
url: 'admin/field/getField',
method: 'post',
data
})
}
/**
* 详情页基本信息
* data 会包含poolId 需保留
* @param {*} data
*/
export function filedGetInformationAPI(data) {
return request({
url: `admin/field/getField`,
method: 'post',
data
})
}
/**
* 详情页系统信息
*
* @param {*} data
*/
export function filedGetSystemAPI(data) {
return request({
url: `crm/${data.crmType}/system`,
method: 'post',
data
})
}
/**
* 表头
* @param {*} data
*/
export function filedGetTableFieldAPI(data) {
return request({
url: 'admin/field/getField',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 基本信息编辑
* @param {*} data
*/
export function filedUpdateTableFieldAPI(data) {
// const url = {
// 1: 'crmLeads',
// 2: 'crmCustomer',
// 3: 'crmContacts',
// 4: 'crmProduct',
// 5: 'crmBusiness',
// 6: 'crmContract',
// 7: 'crmReceivables',
// 17: 'crmReturnVisit'
// }[data.label]
return request({
url: `crm/common/quickEdit`,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海表头
* @param {*} data
*/
export function filedGetPoolTableFieldAPI(data) {
return request({
url: 'admin/field/getField',
method: 'post',
data: data
})
}
/**
* 自定义字段验重
* @param {*} data
*/
export function filedValidatesAPI(data) {
return request({
url: 'admin/field/validates',
method: 'post',
data: data
})
}
/**
* 自定义字段(高级筛选)
* @param {*} data
*/
export function filterIndexfieldsAPI(data) {
return request({
url: 'admin/index/fields',
method: 'post',
data: data
})
}
/**
* 公海自定义字段(高级筛选)
* @param {*} data
*/
export function filterIndexPoolfieldsAPI(data) {
return request({
url: 'admin/index/fields',
method: 'post',
data: data
})
}
/**
* 场景列表
* @param {*} data
*/
export function crmSceneIndexAPI(data) {
return request({
url: 'admin/scene/index',
method: 'post',
data: data
})
}
/**
* 场景设置列表
* @param {*} data
*/
export function crmSceneSetIndexAPI(data) {
return request({
url: 'admin/scene/index',
method: 'post',
data: data
})
}
/**
* 场景创建
* @param {*} data
*/
export function crmSceneSaveAPI(data) {
return request({
url: 'admin/scene/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 场景编辑
* @param {*} data
*/
export function crmSceneUpdateAPI(data) {
return request({
url: 'admin/scene/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 场景默认
* @param {*} data
*/
export function crmSceneDefaultsAPI(data) {
return request({
url: 'admin/scene/defaults',
method: 'post',
data: data
})
}
/**
* 场景删除
* @param {*} data
*/
export function crmSceneDeleteAPI(data) {
return request({
url: 'admin/scene/delete',
method: 'post',
data: data
})
}
/**
* 场景排序
* @param {*} data
*/
export function crmSceneSortAPI(data) {
return request({
url: 'admin/scene/sort',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 列表字段排序数据
* @param {*} data
*/
export function crmFieldConfigAPIIndexAPI(data) {
return request({
url: 'admin/field/configIndex',
method: 'post',
data: data
})
}
/**
* 公海列表字段排序数据
* @param {*} data
*/
export function crmPoolFieldConfigIndexAPI(data) {
return request({
url: 'admin/field/configIndex',
method: 'post',
data: data
})
}
/**
* 列表排序编辑
* @param {*} data
*/
export function crmFieldConfigAPI(data) {
return request({
url: 'admin/field/config',
method: 'post',
data: data
})
}
/**
* 公海列表排序编辑
* @param {*} data
*/
export function crmPoolFieldConfigAPI(data) {
return request({
url: 'admin/field/config',
method: 'post',
data: data
})
}
/**
* 列表宽度设置
* @param {*} data
*/
export function crmFieldColumnWidthAPI(data) {
return request({
url: 'admin/field/columnWidth',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海 列表宽度设置
* @param {*} data
*/
export function crmPoolFieldColumnWidthAPI(data) {
return request({
url: 'crmField/setPoolFieldStyle',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 操作记录
* @param {*} data
*/
export function crmIndexFieldRecordAPI(data) {
return request({
url: 'admin/index/fieldRecord',
method: 'post',
data: data
})
}
/**
* 客户管理下 合同回款的待审批
* @param {*} data
*/
export function crmExamineMyExamineAPI(data) {
return request({
url: 'oa/examine/myExamine',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询活动分页列表
* @param {*} data
*/
export function crmActivityListAPI(data) {
return request({
url: 'crm/activity/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除跟进记录
* @param {*} data
*/
export function crmActivityDeleteAPI(data) {
return request({
url: `crm/activity/delete`,
method: 'post',
data
})
}
/**
* 删除外勤签到
* @param {*} data
*/
export function crmActivityOutworkSignDeleteAPI(data) {
return request({
url: 'crmActivity/deleteOutworkSign',
method: 'post',
data: data
})
}
/**
* 添加跟进记录
* @param {*} data
*/
export function crmActivityAddAPI(data) {
return request({
url: 'crm/activity/save',
method: 'post',
data: data
})
}
/**
* 编辑跟进记录
* @param {*} data
*/
export function crmActivityUpdateAPI(data) {
return request({
url: 'crm/activity/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查看当前导入数量
* @param {*} data
*/
export function crmQueryImportNumAPI(data) {
return request({
url: 'admin/index/importNum',
method: 'post',
data: data
})
}
/**
* 查询导入结果
* @param {*} data
*/
export function crmQueryImportInfoAPI(data) {
return request({
url: 'admin/index/importInfo',
method: 'post',
data: data
})
}
/**
* 查看错误数据接口
* @param {*} data
*/
export function crmDownImportErrorAPI(data) {
return request({
url: 'admin/file/download',
method: 'post',
data: data,
responseType: 'blob'
})
}
/**
* 查询跟进记录常用语
* @param {*} data
*/
export function sysConfigQueryPhraseAPI(data) {
return request({
url: 'crm/activity/getPhrase',
method: 'post',
data: data
})
}
/**
* 设置跟进记录常用语
* @param {*} data
*/
export function sysConfigSetPhraseAPI(data) {
return request({
url: 'crm/activity/setPhrase',
method: 'post',
data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// admin/examineFlow/stepList 审批流程
export function examineFlowStepListAPI(data) {
return request({
url: 'admin/examine_flow/stepList',
method: 'post',
data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,219 @@
import request from '@/utils/request'
/**
* 新建联系人
* @param {*} data
*/
export function crmContactsSaveAPI(data) {
var url = data.id ? 'update' : 'save'
return request({
url: 'crm/contacts/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 列表
* @param {*} data
*/
export function crmContactsIndexAPI(data) {
return request({
url: 'crm/contacts/index',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*/
export function crmContactsDeleteAPI(data) {
return request({
url: 'crm/contacts/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 详情
* @param {*} data
*/
export function crmContactsReadAPI(data) {
return request({
url: `crm/contacts/read`,
method: 'post',
data
})
}
/**
* 联系人转移
* @param {*} data
*/
export function crmContactsTransferAPI(data) {
return request({
url: 'crm/contacts/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 联系人下商机
* @param {*} data
*/
export function crmContactsQueryBusinessAPI(data) {
return request({
url: 'crm/business/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 联系人导出
* @param {*} data
* Contacts_id 联系人ID
*/
export function crmContactsExcelExportAPI(data) {
return request({
url: 'crm/contacts/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob'
})
}
export function crmContactsExcelAllExportAPI(data) {
return request({
url: 'crm/contacts/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 联系人导入
* @param {*} data
*
*/
export function crmContactsExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'crm/contacts/excelImport',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 联系人导入模板下载
* @param {*} data
*
*/
export const crmContactsExcelDownloadURL = window.BASE_URL + 'crmContacts/downloadExcel'
export function crmContactsDownloadExcelAPI(data) {
return request({
url: 'crm/contacts/excelDownload',
method: 'get',
data: data,
responseType: 'blob'
})
}
/**
* 联系人关联商机
* @param {*} data
*/
export function crmContactsRelateBusinessAPI(data) {
return request({
url: 'crm/contacts/relation',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 联系人取消关联商机
* @param {*} data
*/
export function crmContactsUnrelateBusinessAPI(data) {
return request({
url: 'crm/contacts/relation',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmContactsFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmContactsNumAPI(data) {
return request({
url: 'crm/contacts/count',
method: 'post',
data: data
})
}
/**
* 标星
* @param {*} data
*
*/
export function crmContactsStarAPI(data) {
return request({
url: `crm/contacts/star`,
method: 'post',
data
})
}

@ -0,0 +1,266 @@
import request from '@/utils/request'
/**
* 新建合同
* @param {*} data
*/
export function crmContractSaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: 'crm/contract/' + url,
method: 'post',
data: data
})
}
/**
* 列表
* @param {*} data
*/
export function crmContractIndexAPI(data) {
return request({
url: 'crm/contract/index',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*/
export function crmContractDeleteAPI(data) {
return request({
url: 'crm/contract/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 详情
* @param {*} data
*/
export function crmContractReadAPI(data) {
return request({
url: `crm/contract/read`,
method: 'post',
data
})
}
/**
* 合同相关产品
* @param {*} data
* contract_id
*/
export function crmContractProductAPI(data) {
return request({
url: 'crm/contract/product',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 转移
* @param {*} data
*/
export function crmContractTransferAPI(data) {
return request({
url: 'crm/contract/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 合同下回款
* @param {*} data
*/
export function crmContractQueryReceivablesAPI(data) {
return request({
url: 'crm/receivables/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 合同下回款计划
* @param {*} data
*/
export function crmContractQueryReceivablesPlanAPI(data) {
return request({
url: 'crm/receivables_plan/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 团队操作
/**
* 团队成员创建
* @param {*} data
*/
export function crmContractSettingTeamSaveAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function crmContractSettingTeamDeleteAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function crmContractTeamMembersAPI(data) {
return request({
url: `crm/setting/team`,
method: 'post',
data
})
}
export function crmContractUpdateMembersAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 退出团队
* @param {*} data
*/
export function crmContractExitTeamAPI(data) {
return request({
url: `crm/setting/quitTeam`,
method: 'post',
data
})
}
/**
* 新建回款查询回款计划
* @param {*} data
*/
export function crmQueryReceivablesPlansByContractIdAPI(data) {
return request({
url: 'crm/receivables_plan/index',
method: 'post',
data: data
})
}
/**
* 作废
* @param {*} data
*/
export function crmContractCancelAPI(data) {
return request({
url: 'crm/contract/cancel',
method: 'post',
data: data
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmContractFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmContractNumAPI(data) {
return request({
url: 'crm/contract/count',
method: 'post',
data: data
})
}
/**
* 合同导出
* @param {*} data
*/
export function crmContractExcelExportAPI(data) {
return request({
url: 'crm/contract/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob',
timeout: 60000
})
}
export function crmContractExcelAllExportAPI(data) {
return request({
url: 'crm/contract/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 回访
* @param {*} data
*/
export function crmContractQueryVisitAPI(data) {
return request({
url: 'crm/visit/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,723 @@
import request from '@/utils/request'
/**
* 新建编辑
* @param {*} data
*/
export function crmCustomerSaveAPI(data) {
const url = data.id && data.name ? 'update' : 'save'
return request({
url: 'crm/customer/' + url,
method: 'post',
data: data
})
}
/**
* 列表
* @param {*} data
*/
export function crmCustomerIndexAPI(data) {
return request({
url: 'crm/customer/index',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*/
export function crmCustomerDeleteAPI(data) {
return request({
url: 'crm/customer/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海列表
* @param {*} data
*/
export function crmCustomerPoolListAPI(data) {
return request({
url: 'crm/customer/pool',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*/
export function crmCustomerPoolDeleteAPI(data) {
return request({
url: 'crm/customer/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 设置公海
* @param {*} data
*/
export function crmCustomerPoolSetAPI(data) {
return request({
url: 'crmCustomerPool/setCustomerPool',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海设置列表
* @param {*} data
*/
export function crmCustomerPoolSetListAPI(data) {
return request({
url: 'crmCustomerPool/queryPoolSettingList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海设置删除
*/
export function crmCustomerPoolSetDeleteAPI(data) {
return request({
url: 'crmCustomerPool/deleteCustomerPool',
method: 'post',
data: data
})
}
/**
* 公海设置详情
* @param {*} data
*/
export function crmCustomerPoolSetDetailAPI(data) {
return request({
url: 'crmCustomerPool/queryPoolById',
method: 'post',
data: data
})
}
/**
* 公海启停
* @param {*} data
*/
export function crmCustomerPoolSetChangeStatusAPI(data) {
return request({
url: 'crmCustomerPool/changeStatus',
method: 'post',
data: data
})
}
/**
* 公海客户转移
* prePoolId 转出公海id
* postPoolId 转入公海id
* @param {*} data
*/
export function crmCustomerPoolSetTransferAPI(data) {
return request({
url: 'crmCustomerPool/transfer',
method: 'post',
data: data
})
}
/**
* 转移数据源
* @param {*} data
*/
export function crmCustomerPoolSetNameListAPI(data) {
return request({
url: 'crmCustomerPool/queryPoolNameList',
method: 'post',
data: data
})
}
/**
* 客户管理用到的公海列表
* @param {*} data
*/
export function crmCustomerPoolNameListAPI(data) {
return request({
url: 'crmCustomerPool/queryPoolNameListByAuth',
method: 'post',
data: data
})
}
/**
* 获取客户级别选项接口
* @param {*} data
*/
export function crmCustomerPoolQueryLevelAPI(data) {
return request({
url: 'crmCustomerPool/queryCustomerLevel',
method: 'post',
data: data
})
}
/**
* 详情
*/
export function crmCustomerReadAPI(data) {
return request({
url: `crm/customer/read`,
method: 'post',
data: data
})
}
// 操作
/**
* 客户锁定解锁
* @param {*} data
*/
export function crmCustomerLockAPI(data) {
return request({
url: 'crm/customer/lock',
method: 'post',
data: data
})
}
/**
* 客户放入公海
* @param {*} data
* customer_id 客户数组
*/
export function crmCustomerPutInPoolAPI(data) {
return request({
url: 'crm/customer/putInPool',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户转移
* @param {*} data
*/
export function crmCustomerTransferAPI(data) {
return request({
url: 'crm/customer/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户导出
* @param {*} data
* customer_id 客户ID
*/
export function crmCustomerExcelExportAPI(data) {
return request({
url: 'crm/customer/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob'
})
}
/**
* 全部导出
* @param {*} data
*/
export function crmCustomerExcelAllExportAPI(data) {
return request({
url: 'crm/customer/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户导入
* @param {*} data
* customer_id 客户ID
*/
export function crmCustomerExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'crm/customer/excelImport',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 公海客户导入
* @param {*} data
* customer_id 客户ID
*/
export function crmCustomerPoolExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'crmCustomerPool/uploadExcel',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 客户导入模板下载
* @param {*} data
*
*/
export const crmCustomerExcelDownloadURL = window.BASE_URL + 'crmCustomer/downloadExcel'
export function crmCustomerDownloadExcelAPI(data) {
return request({
url: 'crm/customer/excelDownload',
method: 'get',
data: data,
responseType: 'blob'
})
}
/**
* 公海导出
* @param {*} data
*/
export function crmCustomerPoolExcelExportAPI(data) {
return request({
url: 'crm/customer/poolExcelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob',
timeout: 60000
})
}
/**
* 公海全部导出
* @param {*} data
*/
export function crmCustomerPoolExcelAllExport(data) {
return request({
url: 'crm/customer/poolExcelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公海字段查询
* @param {*} data
*/
export function crmCustomerPoolQueryPoolFieldAPI(data) {
return request({
url: 'crmCustomerPool/queryPoolField',
method: 'post',
data: data
})
}
/**
* 获取公海池 操作权限
* @param {*} data
*/
export function crmCustomerPoolQueryAuthAPI(data) {
return request({
url: 'crm/customer/poolAuthority',
method: 'post',
data: data
})
}
/**
* 客户分配
* @param {*} data
*/
export function crmCustomerDistributeAPI(data) {
return request({
url: 'crm/customer/distribute',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户领取
* @param {*} data
*/
export function crmCustomerReceiveAPI(data) {
return request({
url: 'crm/customer/receive',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下联系人
* @param {*} data
*/
export function crmCustomerQueryContactsAPI(data) {
return request({
url: 'crm/contacts/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下回访
* @param {*} data
*/
export function crmCustomerQueryVisitAPI(data) {
return request({
url: 'crm/visit/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下商机
* @param {*} data
*/
export function crmCustomerQueryBusinessAPI(data) {
return request({
url: 'crm/business/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下合同
* @param {*} data
*/
export function crmCustomerQueryContractAPI(data) {
return request({
url: 'crm/contract/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下回款计划
* @param {*} data
*/
export function crmCustomerQueryReceivablesPlanAPI(data) {
return request({
url: 'crm/receivables_plan/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户下回款
* @param {*} data
*/
export function crmCustomerQueryReceivablesAPI(data) {
return request({
url: 'crm/receivables/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 团队操作
/**
* 团队成员创建
* @param {*} data
* types crm_leads
* typesId 分类ID
*/
export function crmCustomerSettingTeamSaveAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function crmCustomerSettingTeamDeleteAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function crmCustomerTeamMembersAPI(data) {
return request({
url: `crm/setting/team`,
method: 'post',
data
})
}
export function crmCustomerUpdateMembersAPI(data) {
return request({
url: 'crm/setting/teamSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 退出团队
* @param {*} data
*/
export function crmCustomerExitTeamAPI(data) {
return request({
url: `crm/setting/quitTeam`,
method: 'post',
data
})
}
/**
* 客户标记跟进
* @param {*} data
* id 客户IDs
*/
export function crmCustomerSetFollowAPI(data) {
return request({
url: 'crm/message/allDeal',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 客户成交状态修改
* @param {*} data
* id 客户IDs
*/
export function crmCustomerDealStatusAPI(data) {
return request({
url: 'crm/customer/deal_status',
method: 'post',
data: data
})
}
/**
* 设置首要联系人
* @param {*} data
*
*/
export function crmCustomerSetContactsAPI(data) {
return request({
url: 'crm/contacts/setPrimary',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 数据查重
* @param {*} data
*
*/
export function crmCustomerDataCheckAPI(data) {
return request({
url: 'crm/index/queryRepeat',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmCustomerFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmCustomerNumAPI(data) {
return request({
url: 'crm/customer/count',
method: 'post',
data: data
})
}
/**
* 客户标星
* @param {*} data
*
*/
export function crmCustomerStarAPI(data) {
return request({
url: `crm/customer/star`,
method: 'post',
data
})
}
/**
* 发票信息
* @param {*} data
*/
export function crmCustomerInvoiceAPI(data) {
return request({
url: 'crm/invoice/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 发票抬头信息
* @param {*} data
*/
export function crmCustomerInvoiceInfoAPI(data) {
return request({
url: 'crm/invoiceInfo/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 9.0公海设置
* @param {*} data
*/
export function crmSettingConfig(data) {
return request({
url: 'crm/setting/config',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 9.0公海设置获取
* @param {*} data
*/
export function customerSettingData(data) {
return request({
url: 'crm/setting/configData',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,190 @@
import request from '@/utils/request'
/**
* 新建
* @param {*} data
*/
export function crmInvoiceSaveAPI(data) {
return request({
url: 'crm/invoice/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 编辑
* @param {*} data
*/
export function crmInvoiceUpdateAPI(data) {
return request({
url: 'crm/invoice/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 标注已开发票
* @param {*} data
*/
export function crmInvoiceStatusUpdateAPI(data) {
return request({
url: 'crm/invoice/setInvoice',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 标注已开发票
* @param {*} data
*/
export function crmInvoiceStatusResetAPI(data) {
return request({
url: 'crm/invoice/resetInvoiceStatus',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 分页查询发票
* @param {*} data
*/
export function crmInvoiceIndexAPI(data) {
return request({
url: 'crm/invoice/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// 发票详情
export function crmInvoiceReadAPI(data) {
return request({
url: `crm/invoice/read`,
method: 'post',
data
})
}
// 发票table数量
export function crmInvoiceNumAPI(data) {
return request({
url: `crm/invoice/count`,
method: 'post',
data
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmInvoiceFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* 转移
* @param {*} data
*/
export function crmInvoiceTransferAPI(data) {
return request({
url: 'crm/invoice/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除
* @param {*} data
*/
export function crmInvoiceDeleteIdsAPI(data) {
return request({
url: 'crm/invoice/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 发票规则信息
* @param {*} data
*/
export function crmInvoiceNumberConfigAPI(data) {
return request({
url: 'crm/index/autoNumberStatus',
method: 'post',
data: data
})
}
/**
* 新建发票信息
* @param {*} data
*/
export function crmInvoiceSaveInvoiceInfoAPI(data) {
return request({
url: 'crm/invoiceInfo/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 编辑发票信息
* @param {*} data
*/
export function crmInvoiceUpdateInvoiceInfoAPI(data) {
return request({
url: 'crm/invoiceInfo/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除发票信息
* @param {*} data
*/
export function crmInvoiceDeleteInvoiceInfoAPI(data) {
return request({
url: 'crm/invoiceInfo/delete',
method: 'post',
data: data
})
}

@ -0,0 +1,203 @@
import request from '@/utils/request'
/**
* 新建 编辑
* @param {*} data
*/
export function crmLeadsSaveAPI(data) {
const url = data.id && data.name ? 'update' : 'save'
return request({
url: 'crm/leads/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 列表
* @param {*} data
*/
export function crmLeadsIndexAPI(data) {
return request({
url: 'crm/leads/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除
* @param {*} data
*/
export function crmLeadsDeleteAPI(data) {
return request({
url: 'crm/leads/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 详情
* @param {*} id
*/
export function crmLeadsReadAPI(data) {
return request({
url: `crm/leads/read`,
method: 'post',
data
})
}
/**
* 线索转移
* @param {*} data
*/
export function crmLeadsTransferAPI(data) {
return request({
url: 'crm/leads/transfer',
method: 'post',
data: data
})
}
/**
* 线索转换为客户
* @param {*} data
*/
export function crmLeadsTransformAPI(data) {
return request({
url: 'crm/leads/transform',
method: 'post',
data: data
})
}
/**
* 线索导出
* @param {*} data
*
*/
export function crmLeadsExcelExportAPI(data) {
return request({
url: 'crm/leads/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob'
})
}
/**
* 线索全部导出
* @param {*} data
*/
export function crmLeadsExcelAllExportAPI(data) {
return request({
url: 'crm/leads/excelExport',
method: 'post',
data: data,
responseType: 'blob'
})
}
/**
* 线索导入
* @param {*} data
*
*/
export function crmLeadsExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'crm/leads/excelImport',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 线索导入模板下载
* @param {*} data
*
*/
export const crmLeadsExcelDownloadURL = window.BASE_URL + 'crm/leads/excelDownload'
export function crmLeadsDownloadExcelAPI(data) {
return request({
url: 'crm/leads/excelDownload',
method: 'get',
data: data,
responseType: 'blob'
})
}
/**
* 线索标记跟进
* @param {*} data
* id 客户IDs
*/
export function crmLeadsSetFollowAPI(data) {
return request({
url: 'crm/message/allDeal',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmLeadsFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmLeadsNumAPI(data) {
return request({
url: 'crm/leads/count',
method: 'post',
data: data
})
}
/**
* 标星
* @param {*} data
*
*/
export function crmLeadsStarAPI(data) {
return request({
url: `/crm/leads/star`,
method: 'post',
data: data
})
}

@ -0,0 +1,225 @@
import request from '@/utils/request'
/**
* 待审核合同
* @param {*} data
*/
export function crmMessageCheckContractAPI(data) {
return request({
url: 'crm/message/checkContract',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待审核回款
* @param {*} data
*/
export function crmMessageCheckReceivablesAPI(data) {
return request({
url: 'crm/message/checkReceivables',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 今日需联系客户
* @param {*} data
*/
export function crmMessageTodayCustomerAPI(data) {
return request({
url: 'crm/message/todayCustomer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 今日需联系线索
* @param {*} data
*/
export function crmMessageTodayLeadsAPI(data) {
return request({
url: 'crm/message/todayLeads',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 今日需联系商机
* @param {*} data
*/
export function crmMessageTodayBusinessAPI(data) {
return request({
url: 'crm/message/todayBusiness',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待跟进线索
* @param {*} data
*/
export function crmMessageFollowLeadsAPI(data) {
return request({
url: 'crm/message/followLeads',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待跟进客户
* @param {*} data
*/
export function crmMessageFollowCustomerAPI(data) {
return request({
url: 'crm/message/followCustomer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 即将到期合同
* @param {*} data
*/
export function crmMessagEndContractAPI(data) {
return request({
url: 'crm/message/endContract',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待回款合同
* @param {*} data
*/
export function crmMessagRemindreceivablesplanAPI(data) {
return request({
url: 'crm/message/remindreceivablesplan',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待办消息数
* @param {*} data
*/
export function crmMessagNumAPI(data) {
return request({
url: 'crm/message/num',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待进入客户池
* @param {*} data
*/
export function crmMessagRemindCustomerAPI(data) {
return request({
url: 'crm/message/remindCustomer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待回访合同
* @param {*} data
*/
export function crmMessagVisitRemindAPI(data) {
return request({
url: 'crm/message/visitContract',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 待审核发票
* @param {*} data
*/
export function crmMessageCheckInvoiceAPI(data) {
return request({
url: 'crm/message/checkInvoice',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 全部标为已处理接口
* @param {*} data
*/
export function crmMessagAllDealAPI(data) {
return request({
url: 'crm/message/allDeal',
method: 'post',
data: data
})
}
/**
* 标为已处理接口
* @param {*} data
*/
export function crmMessagzealByIdAPI(data) {
return request({
url: 'crm/message/allDeal',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,13 @@
import request from '@/utils/request'
/**
* 地图查询接口
* @param {*} data
*/
export function crmCrmCustomerNearbyCustomerAPI(data) {
return request({
url: 'crm/customer/nearby',
method: 'post',
data: data
})
}

@ -0,0 +1,192 @@
import request from '@/utils/request'
/**
* 新建产品
* @param {*} data
*/
export function crmProductSaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: 'crm/product/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 列表
* @param {*} data
*/
export function crmProductIndexAPI(data) {
return request({
url: 'crm/product/index',
method: 'post',
data: data
})
}
/**
* 产品上架列表
* @param {*} data
*/
export function crmProductSaleIndexAPI(data) {
return request({
url: 'crm/product/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 详情
* @param {*} data
*/
export function crmProductReadAPI(data) {
return request({
url: `crm/product/read`,
method: 'post',
data
})
}
/**
* 产品上架下架
* @param {*} data
*/
export function crmProductStatusAPI(data) {
return request({
url: 'crm/product/status',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 产品导出
* @param {*} data
* product_id 产品ID
*/
export function crmProductExcelExportAPI(data) {
return request({
url: 'crm/product/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob'
})
}
export function crmProductExcelAllExportAPI(data) {
return request({
url: 'crm/product/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 产品导入
* @param {*} data
*
*/
export function crmProductExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'crm/product/excelImport',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 产品导入模板下载
* @param {*} data
*
*/
export const crmProductExcelDownloadURL = window.BASE_URL + 'crmProduct/downloadExcel'
export function crmProductDownloadExcelAPI(data) {
return request({
url: 'crm/product/excelDownload',
method: 'get',
data: data,
responseType: 'blob'
})
}
/**
* 附件列表
* @param {*} data
*
*/
export function crmProductFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmProductNumAPI(data) {
return request({
url: 'crm/product/count',
method: 'post',
data: data
})
}
/**
* 产品转移
* @param {*} data
*/
export function crmProductTransferAPI(data) {
return request({
url: 'crm/product/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 产品删除
* @param {*} data
*/
export function crmProductDeleteAPI(data) {
return request({
url: 'crm/product/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,158 @@
import request from '@/utils/request'
/**
* 新建回款
* @param {*} data
*/
export function crmReceivablesSaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: 'crm/receivables/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 回款列表
* @param {*} data
*/
export function crmReceivablesIndexAPI(data) {
return request({
url: 'crm/receivables/index',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*
*/
export function crmReceivablesDeleteAPI(data) {
return request({
url: 'crm/receivables/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 回款详情
* @param {*} data
*/
export function crmReceivablesReadAPI(data) {
return request({
url: `crm/receivables/read`,
method: 'post',
data
})
}
/**
* 回款计划删除
* @param {*} data
*/
export function crmReceivablesPlanDeleteAPI(data) {
return request({
url: 'crm/receivables_plan/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 回款列表
* @param {*} data
*
*/
export function crmReceivablesFileListAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* tab数量
* @param {*} data
*
*/
export function crmReceivablesNumAPI(data) {
return request({
url: 'crm/receivables/count',
method: 'post',
data: data
})
}
/**
* 导出
* @param {*} data
*/
export function crmReceivablesExcelExportAPI(data) {
return request({
url: 'crm/receivables/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob',
timeout: 60000
})
}
export function crmReceivablesExcelAllExportAPI(data) {
return request({
url: 'crmReceivables/allExportExcel',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 转移
* @param {*} data
*/
export function crmReceivablesTransferAPI(data) {
return request({
url: 'crm/receivables/transfer',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 回款计划创建
* @param {*} data
*/
export function crmReceivablesPlanSaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: 'crm/receivables_plan/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,68 @@
import request from '@/utils/request'
/**
* 新建
* @param {*} data
*/
export function crmReturnVisitSaveAPI(data) {
const url = data.id ? 'update' : 'save'
return request({
url: 'crm/visit/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 列表
* @param {*} data
*/
export function crmReturnVisitIndexAPI(data) {
return request({
url: 'crm/visit/index',
method: 'post',
data: data
})
}
/**
* 删除
* @param {*} data
*/
export function crmReturnVisitDeleteAPI(data) {
return request({
url: 'crm/visit/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 附件
* @param {*} data
*/
export function crmReturnVisitFileAPI(data) {
return request({
url: 'admin/file/index',
method: 'post',
data: data
})
}
/**
* 详情
* @param {*} visitId
*/
export function crmReturnVisitReadAPI(data) {
return request({
url: `crm/visit/read`,
method: 'post',
data
})
}

@ -0,0 +1,250 @@
import request from '@/utils/request'
/**
* 销售简报
* @param {*} data
*/
export function crmQueryBulletinAPI(data) {
return request({
url: 'crm/index/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 销售简报-日志
* @param {*} data
*/
export function crmQueryOneBulletinAPI(data) {
return request({
url: 'oa/log/oneBulletin',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 数据汇总
* @param {*} data
*/
export function queryDataInfo(data) {
return request({
url: 'crm/index/queryDataInfo',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 销售简报列表
*/
export function crmIndexIndexListAPI(data) {
return request({
url: 'crm/index/indexList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 简报跟进记录数量
* @param {*} data
*/
export function crmQueryRecordConuntAPI(data) {
return request({
url: 'crm/index/indexList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 业绩指标
* @param {*} data
*/
export function crmIndexAchievementDataAPI(data) {
return request({
url: 'crm/index/achievementData',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 销售漏斗
* @param {*} data
*/
export function crmIndexFunnelAPI(data) {
return request({
url: 'crm/index/funnel',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 销售漏斗详情
* @param {*} data
*/
export function crmInstrumentSellFunnelBusinessListAPI(data) {
return request({
url: 'crmInstrument/sellFunnelBusinessList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 销售趋势
* @param {*} data
*/
export function crmIndexSaletrendAPI(data) {
return request({
url: 'crm/index/saletrend',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 获取简报 跟进记录信息
* @param {*} data
*/
export function crmIndexGetRecordListAPI(data) {
// data.label = data.crmType
return request({
url: 'crm/index/activityList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 获取简报记录信息
* @param {*} data
*/
// export function crmIndexGetRecordActivityListAPI(data) {
// // data.label = data.crmType
// return request({
// url: 'crm/index/activityList',
// method: 'post',
// data: data,
// headers: {
// 'Content-Type': 'application/json;charset=UTF-8'
// }
// })
// }
/**
* 遗忘提醒
* @param {*} data
*/
export function crmIndexForgottenCustomerAPI(data) {
return request({
url: 'crm/index/forgottenCustomerCount',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 遗忘提醒详情
* @param {*} data
*/
export function crmIndexForgottenCustomerListAPI(data) {
return request({
url: 'crm/index/forgottenCustomerPageList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 排行榜
* @param {*} data
*/
export function crmIndexRankingAPI(data) {
return request({
url: 'crm/index/ranking',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 仪表盘排序
* @param {*} data
*/
export function crmIndexSortAPI(data) {
return request({
url: 'crm/index/dashboard',
method: 'post',
data: data
})
}
/**
* 仪表盘排序设置
* @param {*} data
*/
export function crmIndexSetSortAPI(data) {
return request({
url: 'crm/index/updateDashboard',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 逾期未联系客户接口
* @param {*} data
*/
export function crmIndexUnContactCustomerAPI(data) {
return request({
url: 'crm/index/forgottenCustomerPageList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,151 @@
/**
* Create by yxk at 2020/6/22
*/
import request from '@/utils/request'
/**
* 查询所有未删除审批流程
* @param {*} data
*/
export function crmExamineQueryAllAPI(data) {
return request({
url: 'admin/examine_flow/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// /**
// * 根据id查询审批流程 examineId 审批流程id
// */
// export function QueryExamineById(data) {
// return request({
// url: `crmExamine/queryExamineById/${data.examineId}`,
// method: 'post'
// })
// }
/**
* 查询当前启用审核流程步骤
*/
export function crmExamineStepAPI(data) {
return request({
url: 'admin/examine_flow/stepList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 添加审批流程
*/
export function crmExamineSaveAPI(data) {
return request({
url: `admin/examine_flow/${data.flow_id ? 'update' : 'save'}`,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 停用或删除审批流程
*/
export function crmExamineUpdateStatusAPI(data) {
return request({
url: 'admin/examine_flow/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 停用或删除审批流程
*/
export function crmExamineEnablesStatusAPI(data) {
return request({
url: 'admin/examine_flow/enables',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 进行审批 AuditExamine 合同
*/
export function crmExamineRecordAuditAPI(data) {
const url = data.type === 'revoke' ? 'crm/contract/revokeCheck' : 'crm/contract/check'
return request({
url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 进行审批 发票
*/
export function crmExamineInvoiceAuditAPI(data) {
const url = data.type === 'revoke' ? 'crm/invoice/revokeCheck' : 'crm/invoice/check'
return request({
url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 进行审批 回款
*/
export function crmExamineReceivablesAuditAPI(data) {
const url = data.type === 'revoke' ? 'crm/receivables/revokeCheck' : 'crm/receivables/check'
return request({
url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询审批记录
*/
export function crmExamineRecordLogListAPI(data) {
return request({
url: 'admin/examine_flow/recordList',
method: 'post',
data: data
})
}
/**
* 查询审批流程列表
*/
export function crmExamineRecordRecordListAPI(data) {
return request({
url: 'admin/examine_flow/stepList',
method: 'post',
data: data
})
}

@ -0,0 +1,124 @@
import request from '@/utils/request'
export function loginAPI(params) {
return request({
url: 'admin/base/login',
method: 'post',
data: params
})
}
export function logoutAPI() {
return request({
url: 'admin/base/logout',
method: 'post'
})
}
/**
* 获取短信验证码
* @param params
*/
export function sendSmsAPI(params) {
return request({
url: 'cloud/sendSms',
method: 'post',
data: params
})
}
/**
* 注册
* @param params
*/
export function registerAPI(params) {
return request({
url: 'cloud/register',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 多公司选择登陆
* @param params
*/
export function chooseLoginAPI(params) {
return request({
url: 'reLogin',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 找回密码
* @param params
*/
export function forgetPwdAPI(params) {
return request({
url: 'cloud/findpwd',
method: 'post',
data: params
})
}
/**
* 重置密码
* @param params
*/
export function resetPwdAPI(params) {
return request({
url: 'cloud/resetpwd',
method: 'post',
data: params
})
}
/**
* 验证短信验证码
* @param params
*/
export function verfySmsAPI(params) {
return request({
url: 'cloud/verifySms',
method: 'post',
data: params
})
}
/**
* 验证
* @param params
*/
export function verfyCodeAPI(params) {
return request({
url: 'verfyCode',
method: 'post',
data: params
})
}
export function querySystemStatusAPI() {
return request({
url: 'adminUser/querySystemStatus',
method: 'post'
})
}
export function initUserAPI(data) {
return request({
url: 'adminUser/initUser',
method: 'post',
data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,43 @@
import request from '@/utils/request'
/**
* 通讯录列表
* @param {*} data
*/
export function addressListAPI(data) {
return request({
url: 'oa/addresslist/queryList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// /**
// * 通讯录部门列表
// * @param {*} data
// */
// export function queryListNameByDept(data) {
// return request({
// url: 'adminUser/queryListNameByDept',
// method: 'post',
// data: data,
// headers: {
// 'Content-Type': 'application/json;charset=UTF-8'
// }
// })
// }
/**
* 通讯录关注状态切换
* @param {*} data
*/
export function toggleAttentionAPI(data) {
return request({
url: 'oa/addresslist/userStar',
method: 'post',
data: data
})
}

@ -0,0 +1,47 @@
import request from '@/utils/request'
/**
* 评论添加
* @param {*} data
*/
export function setCommentAPI(data) {
return request({
url: 'work/taskcomment/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 日志评论添加
* @param {*} data
*/
export function setjournalCommentAPI(data) {
return request({
url: 'oa/log/commentSave',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
export function deleteCommentAPI(data) {
return request({
url: 'work/taskcomment/delete',
method: 'post',
data: data
})
}
export function queryCommentListAPI(data) {
return request({
url: 'oa/log/commentList',
method: 'post',
data
})
}

@ -0,0 +1,195 @@
import request from '@/utils/request'
/**
* 审批类型列表
* @param {*} data
*/
export function oaAllExamineCategoryListAPI(data) {
return request({
url: 'oa/examine/categoryList',
method: 'post',
data: data
})
}
/**
* 审批类型前台排序
* @param {*} data
*/
export function oaAllExamineCategorySortAPI(data) {
return request({
url: 'oaExamineCategory/saveOrUpdateOaExamineSort',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批新建
* @param {*} data
*/
export function oaExamineSaveAndUpdateAPI(data) {
return request({
url: `oa/examine/${data.id ? 'update' : 'save'}`,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 我发起的审批
* @param {*} data
*/
export function oaExamineMyCreateIndexAPI(data) {
return request({
url: 'oa/examine/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 我审批的
* @param {*} data
*/
export function oaExamineMyExamineIndexAPI(data) {
return request({
url: 'oa/examine/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批删除
* @param {*} data
*/
export function oaExamineDeleteAPI(data) {
return request({
url: 'oa/examine/delete',
method: 'post',
data: data
})
}
/**
* 审批详情
* @param {*} examineId
*/
export function oaExamineReadAPI(data) {
return request({
url: `oa/examine/read`,
method: 'post',
data
})
}
// 新建的审批流
/**
* CRM合同回款创建时候的审批流
* @param {*} data
*/
export function oaCreateExamineFlowAPI(data) {
return request({
url: 'admin/examine_flow/stepList',
method: 'post',
data: data
})
}
/**
* 审批详情 基本信息
* @param {*} data
*/
export function oaExamineGetFieldAPI(data) {
return request({
url: 'admin/field/getField',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 办公下 审批的审批信息
* @param {*} data
*/
export function oaExamineFlowStepListAPI(data) {
return request({
url: 'admin/examine_flow/stepList',
method: 'post',
data: data
})
}
/**
* 审批记录
* @param {*} data
*/
export function oaExamineFlowRecordListAPI(data) {
return request({
url: 'admin/examine_flow/recordList',
method: 'post',
data: data
})
}
/**
* 审批的审核
* @param {*} data
*/
export function oaExamineFlowAuditExamineAPI(data) {
const url = data.type === 'revoke' ? 'oa/examine/revokeCheck' : 'oa/examine/check'
return request({
url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批的撤回审核
* @param {*} data
*/
export function oaExamineFlowRevokeCheckAPI(data) {
return request({
url: 'oa/examine/revokeCheck',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 审批导出
* @param {*} data
*/
export function oaExamineExportAPI(data) {
return request({
url: 'oa/examine/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob'
})
}

@ -0,0 +1,202 @@
import request from '@/utils/request'
/**
* 日志列表
* @param {*} data
*/
export function journalListAPI(data) {
return request({
url: 'oa/log/index',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 新建日志
* @param {*} data
*/
export function journalAddAPI(data) {
return request({
url: 'oa/log/save',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data
})
}
/**
* 日志编辑
* @param {*} data
*/
export function journalEditAPI(data) {
return request({
url: `oa/log/${data.log_id ? 'update' : 'save'}`,
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data
})
}
/**
* 日志删除
* @param {*} data
*/
export function journalDeleteAPI(data) {
return request({
url: 'oa/log/delete',
method: 'post',
data
})
}
/**
* 日志标记已读
* @param {*} data
*/
export function journalSetReadAPI(data) {
return request({
url: 'oaLog/readLog',
method: 'post',
data
})
}
/**
* 日志详情
* @param {*} data
*/
export function journalQueryByIdAPI(data) {
return request({
url: 'oa/log/queryLog',
method: 'post',
data
})
}
/**
* 日志概要
* @param {*} data
*/
export function journalQueryBulletinAPI(data) {
return request({
url: 'oa/log/logBulletin',
method: 'post',
data
})
}
/**
* 日志简报预览
* @param {*} data
*/
export function journalQueryBulletinByTypeAPI(data) {
return request({
url: 'oa/log/newBulletin',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 日志简报跟进记录预览
* @param {*} data
*/
export function journalQueryRecordCountAPI(data) {
return request({
url: 'oa/log/activityList',
method: 'post',
data
})
}
/**
* 随机返回一条
* @param {*} data
*/
export function journalGetLogWelcomeAPI(data) {
return request({
url: 'oa/log/LogWelcomeSpeech',
method: 'post',
data
})
}
/**
* 日志导出
* @param {*} data
*/
export function oaLogExportAPI(data) {
return request({
url: 'oa/log/excelExport',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
responseType: 'blob'
})
}
/**
* 查询日志完成概要
* @param {*} data
*/
export function oaLogCompleteStatsAPI(data) {
return request({
url: 'oa/log/completeStats',
method: 'post',
data
})
}
/**
* 查询日志完成情况
* @param {*} data
*/
export function oaLogCompleteListAPI(data) {
return request({
url: 'oa/log/completeLog',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 查询日志未完成情况
* @param {*} data
*/
export function oaLogUnCompleteListAPI(data) {
return request({
url: 'oa/log/inCompleteLog',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// journalQueryActivityCountAPI
export function journalQueryActivityCountAPI(data) {
return request({
url: 'oa/log/activityCount',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,66 @@
import request from '@/utils/request'
/**
* 公告添加
* @param {*} data
*/
export function noticeListAPI(data) {
return request({
url: 'oaAnnouncement/queryList',
method: 'post',
data: data
})
}
/**
* 公告添加或编辑
* @param {*} data
*/
export function noticeAddOrUpateAPI(data) {
var url = data.announcement_id ? 'update' : 'save'
return request({
url: 'oa/announcement/' + url,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公告删除
* @param {*} data
*/
export function noticeDeleteAPI(data) {
return request({
url: `oa/announcement/delete`,
method: 'post',
data
})
}
/**
* 公告详情
* @param {*} data
*/
export function noticeQueryByIdAPI(data) {
return request({
url: `oa/announcement/read`,
method: 'post',
data
})
}
/**
* 公告设为已读
* @param {*} data
*/
export function noticeIsReadAPI(data) {
return request({
url: 'oaAnnouncement/readAnnouncement',
method: 'post',
data: data
})
}

@ -0,0 +1,16 @@
import request from '@/utils/request'
/**
* 归档项目列表
* @param {*} data
*/
export function workWorkArchiveListAPI(data) {
return request({
url: 'work/work/archiveList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,385 @@
import request from '@/utils/request'
/**
* 归档任务列表
* @param {*} data
*/
export function workTaskArchListAPI(data) {
return request({
url: `work/task/archList`,
method: 'post',
data
})
}
/**
* 项目详情
* @param {*} data
*/
export function workWorkReadAPI(data) {
return request({
url: 'work/work/read',
method: 'post',
data: data
})
}
/**
* 项目删除
* @param {*} data
*/
export function workWorkDeleteAPI(data) {
return request({
url: `work/work/delete`,
method: 'post',
data
})
}
/**
* 新建项目
* @param {*} data
*/
export function workWorkSaveAPI(data) {
return request({
url: 'work/work/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 恢复项目
* @param {*} data
*/
export function workWorkArRecoverAPI(data) {
return request({
url: 'work/work/arRecover',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 编辑项目
* @param {*} data
*/
export function workWorkUpdateAPI(data) {
return request({
url: 'work/work/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 归档项目
* @param {*} data
*/
export function workWorkArchiveAPI(data) {
return request({
url: 'work/work/archive',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 退出项目
* @param {*} data
*/
export function workWorkLeaveAPI(data) {
return request({
url: `work/work/leave`,
method: 'post',
data
})
}
/**
* 任务板列表
* @param {*} data
*/
export function workTaskIndexAPI(data) {
return request({
url: 'work/task/index',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 任务板列表
* @param {*} data
*/
export function workTaskOwnerIndexAPI(data) {
return request({
url: 'work/task/ownerTaskList',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
// /**
// * 设置任务类别 改为 saveWorkTaskClass
// * @param {*} data
// */
// export function workTaskClassSetAPI(data) {
// return request({
// url: 'task/setTaskClass',
// method: 'post',
// data: data
// })
// }
/**
* 分类删除
* @param {*} data
*/
export function workTaskclassDeleteAPI(data) {
return request({
url: 'work/taskclass/delete',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 获取附件列表
* @param {*} data
*/
export function workWorkFileListAPI(data) {
return request({
url: 'work/work/fileList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 项目 -- 成员列表
* @param {*} data
*/
export function workWorkOwnerListAPI(data) {
return request({
url: 'work/work/ownerList',
method: 'post',
data
})
}
/**
* 项目 -- 成员删除
* @param {*} data
*/
export function workWorkOwnerDelAPI(data) {
return request({
url: 'work/work/ownerDel',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 项目 -- 归档已完成任务
* @param {*} data
*/
export function workTaskArchiveTaskAPI(data) {
return request({
url: `work/task/archiveTask`,
method: 'post',
data
})
}
/**
* 项目 -- 归档负责人已完成任务
* @param {*} data
*/
export function workTaskArchiveOwnerTaskAPI(data) {
return request({
url: 'work/task/archiveTask',
method: 'post',
data: data
})
}
/**
* 拖拽改变分类
* @param {*} data
*/
export function workTaskUpdateOrderAPI(data) {
return request({
url: 'work/task/updateOrder',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 拖拽改变分类列表
* @param {*} data
*/
export function workTaskUpdateClassOrderAPI(data) {
return request({
url: 'work/task/updateClassOrder',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 项目成员添加角色
* @param {*} data
*/
export function workWorkAddUserGroupAPI(data) {
return request({
url: 'work/work/ownerAdd',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 项目成员角色列表
* @param {*} data
*/
export function workWorkGroupListAPI(data) {
return request({
url: 'work/work/groupList',
method: 'post',
data: data
})
}
/**
* 项目收藏
* @param {*} data
*/
export function workWorkCollectAPI(data) {
return request({
url: `work/work/follow`,
method: 'post',
data
})
}
/**
* 修改标签排序
* @param {*} data
*/
export function workupdateWorkOrderAPI(data) {
return request({
url: 'work/work/updateWorkOrder',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}
/**
* 项目任务导出
* @param {*} data
*/
export function workTaskExportAPI(data) {
return request({
url: 'work/task/excelExport',
method: 'post',
data: data,
responseType: 'blob'
})
}
/**
* 获取导入模板
* @param {*} data
*/
export function workDownloadExcelAPI(data) {
return request({
url: 'work/task/excelDownload',
method: 'get',
data: data,
responseType: 'blob'
})
}
/**
* 项目任务导入
* @param {*} data
*/
export function workExcelImportAPI(data) {
var param = new FormData()
Object.keys(data).forEach(key => {
param.append(key, data[key])
})
return request({
url: 'work/task/excelImport',
method: 'post',
data: param,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 项目任务下载错误模板
* @param {*} data
*/
export function workDownloadErrorExcelAPI(data) {
return request({
url: 'work/work/downloadErrorExcel',
method: 'post',
data: data,
responseType: 'blob'
})
}
/**
* 项目成员添加+设置角色
* @param {*} data
*/
export function workWorkAddUserSetRoleGroupAPI(data) {
return request({
url: 'work/work/addUserGroup',
method: 'post',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
data: data
})
}

@ -0,0 +1,304 @@
import request from '@/utils/request'
/**
*
* 新建任务列表
* @param {*} data
*/
export function workTaskClassSaveAPI(data) {
return request({
url: 'work/taskclass/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 删除任务
* @param {*} data
*/
export function workTaskDeleteAPI(data) {
return request({
url: `work/task/delete`,
method: 'post',
data
})
}
/**
*
* 编辑任务列表
* @param {*} data
*/
export function workTaskClassUpateAPI(data) {
return request({
url: 'work/taskclass/rename',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 新建任务
* setTaskAPI
* @param {*} data
*/
export function workTaskSaveAPI(data) {
return request({
url: 'work/tasklable/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 完成任务状态
* @param {*} data
*/
export function workTaskStatusSetAPI(data) {
return request({
url: 'work/task/taskOver',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 完成子任务状态
* @param {*} data
*/
export function workTaskChildStatusSetAPI(data) {
return request({
url: 'work/task/taskOver',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 编辑任务标题
* @param {*} data
*/
export function workTaskTitleSetAPI(data) {
return request({
url: 'work/task/updateName',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 编辑任务描述
* @param {*} data
*/
export function workTaskDescriptionSetAPI(data) {
return request({
url: 'work/task/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 分配任务负责人
* @param {*} data
*/
export function workTaskMainUserSetAPI(data) {
return request({
url: 'work/task/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 设置任务时间
* @param {*} data
*/
export function workTaskTimeSetAPI(data) {
return request({
url: 'work/task/updateStoptime',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 设置任务标签
* @param {*} data
*/
export function workTaskLabelSetAPI(data) {
return request({
url: 'work/task/updateLable',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 添加任务参与人
* @param {*} data
*/
export function workTaskOwnerUserSetAPI(data) {
return request({
url: 'work/task/updateOwner',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 添加任务参与人
* @param {*} data
*/
export function workTaskOwnerUserDeleteAPI(data) {
return request({
url: 'work/task/delOwnerById',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 设置任务优先级
* @param {*} data
*/
export function workTaskPrioritySetAPI(data) {
return request({
url: 'work/task/updatePriority',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 新建子任务
* @param {*} data
*/
export function workSubTaskAddAPI(data) {
return request({
url: 'work/task/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 编辑子任务
* @param {*} data
*/
export function workSubTaskUpdateAPI(data) {
return request({
url: 'work/task/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
*
* 删除子任务
* @param {*} data
*/
export function workSubTaskDeleteAPI(data) {
return request({
url: `work/task/delete`,
method: 'post',
data
})
}
// /**
// * 任务添加附件
// * @param {*} data
// */
// export function workTaskFileUploadAPI(data) {
// var param = new FormData()
// Object.keys(data).forEach(key => {
// param.append(key, data[key])
// })
// return request({
// url: 'workTask/uploadWorkTaskFile',
// method: 'post',
// data: param,
// headers: {
// 'Content-Type': 'multipart/form-data'
// }
// })
// }
// /**
// *
// * 任务删除附件
// * @param {*} data
// */
// export function workTaskFileDeleteAPI(data) {
// return request({
// url: 'oaTask/deleteWorkTaskFile',
// method: 'post',
// data: data,
// headers: {
// 'Content-Type': 'application/json;charset=UTF-8'
// }
// })
// }

@ -0,0 +1,40 @@
import request from '@/utils/request'
/**
* 回收站列表
* @param {*} data
*/
export function workTrashIndexAPI(data) {
return request({
url: 'work/trash/index',
method: 'post',
data: data
})
}
/**
* 回收站彻底删除
* @param {*} data
*/
export function workTrashDeleteAPI(data) {
return request({
url: `work/trash/delete`,
method: 'post',
data
})
}
/**
* 回收站恢复
* @param {*} data
*/
export function workTrashRecoverAPI(data) {
return request({
url: `work/trash/recover`,
method: 'post',
data
})
}

@ -0,0 +1,13 @@
import request from '@/utils/request'
/**
* 项目任务统计
* @param {*} data
*/
export function workWorkStatisticAPI(data) {
return request({
url: `work/work/statistic`,
method: 'post',
data
})
}

@ -0,0 +1,94 @@
import request from '@/utils/request'
/**
* 标签左侧列表
* @param {*} data
*/
export function workTasklableIndexAPI(data) {
return request({
url: 'work/tasklable/index',
method: 'post',
data: data
})
}
/**
* 单个标签详情
* @param {*} data
*/
export function workTasklableReadAPI(data) {
return request({
url: `work/tasklable/read`,
method: 'post',
data
})
}
/**
* 标签删除
* @param {*} data
*/
export function workTasklableDeleteAPI(data) {
return request({
url: 'work/tasklable/delete',
method: 'post',
data: data
})
}
/**
* 创建标签
* @param {*} data
*/
export function workTasklableSaveAPI(data) {
return request({
url: 'work/tasklable/save',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 标签编辑
* @param {*} data
*/
export function workTasklableSetAPI(data) {
return request({
url: 'work/tasklable/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 获取项目及任务表
* @param {*} data
*/
export function workTasklableGetWokListAPI(data) {
return request({
url: `work/tasklable/getWokList`,
method: 'post',
data
})
}
/**
* 修改标签排序
* @param {*} data
*/
export function workTasklableUpdateOrderAPI(data) {
return request({
url: 'taskLabel/updateOrder',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,145 @@
import request from '@/utils/request'
/**
* 我的任务列表
* @param {*} data
*/
export function workTaskMyTaskAPI(data) {
return request({
url: 'work/task/myTask',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 参与项目的成员
* @param {*} data
*/
export function workQueryMemberListAPI() {
return request({
url: 'work/task/taskUsers',
method: 'post'
})
}
/**
* 拖拽改变分类
* @param {*} data
*/
export function workTaskUpdateTopAPI(data) {
return request({
url: 'work/task/updateTop',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 项目列表
* @param {*} data
*/
export function workIndexWorkListAPI(data) {
return request({
url: 'work/work/index',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 公共搜索任务
* @param {*} data
*/
export function workQueryWorkTaskListAPI(data) {
return request({
url: 'work/task/search',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// /**
// * 任务详情
// * @param {*} data
// */
// export function workTaskReadAPI(data) {
// return request({
// url: 'task/queryTaskById',
// method: 'post',
// data: data
// })
// }
// /**
// * 编辑任务名
// * @param {*} data
// */
// export function workTaskUpdateNameAPI(data) {
// return request({
// url: 'work/task/updateName',
// method: 'post',
// data: data
// })
// }
/**
* 任务归档
* @param {*} data
*/
export function workTaskArchiveAPI(data) {
return request({
url: `work/task/archive`,
method: 'post',
data
})
}
/**
* 归档任务激活
* @param {*} data
*/
export function workTaskRecoverAPI(data) {
return request({
url: `work/task/recover`,
method: 'post',
data
})
}
// /**
// * 编辑相关信息
// * @param {*} data
// */
// export function taskSvaeTaskRelationAPI(data) {
// return request({
// url: 'task/saveTaskRelation',
// method: 'post',
// data: data
// })
// }
/**
* 工作台任务导出
* @param {*} data
*/
export function taskWorkbenchExportAPI(data) {
return request({
url: 'oa/task/excelExport',
method: 'post',
data: data,
responseType: 'blob'
})
}

@ -0,0 +1,146 @@
import request from '@/utils/request'
/**
* 我下属的任务列表
* @param {*} data
*/
export function taskListAPI(data) {
return request({
url: 'oa/task/myTask',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 新增任务
* @param {*} data
*/
export function setTaskAPI(data) {
return request({
url: `${data.work_id ? 'work' : 'oa'}/task/save`,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
// /**
// * 删除任务
// * @param {*} data
// */
// export function deleteTaskAPI(data) {
// return request({
// url: 'task/deleteTask',
// method: 'post',
// data: data
// })
// }
/**
* 任务详情
* @param {*} data
*/
export function detailsTaskAPI(data) {
return request({
url: `work/task/read`,
method: 'post',
data
})
}
/**
* 回收站任务详情
* @param {*} data
*/
export function detailsTrashTaskAPI(data) {
return request({
url: 'work/task/read',
method: 'post',
data: data
})
}
/**
* 任务活动
* @param {*} data
*/
export function queryLogTaskAPI(data) {
return request({
url: `work/task/readLoglist`,
method: 'post',
data
})
}
/**
* 编辑相关信息
* @param {*} data
*/
export function editTaskRelationAPI(data) {
return request({
url: `${data.work_id ? 'work' : 'oa'}/task/update`,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 删除相关信息
* @param {*} data
*/
export function deleteTaskRelationAPI(data) {
return request({
url: 'oa/task/delrelation',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 取消选择的标签 taskId label
* @param {*} data
*/
export function taskDeleteLabelAPI(data) {
return request({
url: 'oaTask/deleteWorkTaskLabel',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 办公任务导出
* @param {*} data
*/
export function taskOaExportAPI(data) {
return request({
url: 'work/task/excelExport',
method: 'post',
data: data,
responseType: 'blob',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}

@ -0,0 +1,55 @@
import request from '@/utils/request'
/**
* 修改头像
* @param {*} data
*/
export function adminUsersUpdateImgAPI(data) {
return request({
url: 'admin/users/updateImg',
method: 'post',
data: data,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
/**
* 个人详情
* @param {*} data
*/
export function adminUsersReadAPI(data) {
return request({
url: 'admin/users/read',
method: 'post',
data: data
})
}
/**
* 修改个人信息
* @param {*} data
*/
export function adminUsersUpdateAPI(data) {
return request({
url: 'admin/users/update',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json;charset=UTF-8'
}
})
}
/**
* 修改密码
* @param {*} data
*/
export function adminUsersResetPasswordAPI(data) {
return request({
url: 'admin/users/resetPassword',
method: 'post',
data: data
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

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

Loading…
Cancel
Save