@ -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,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)
|
||||
}
|
||||
}
|
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/"',
|
||||
}
|
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,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,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,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,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,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,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,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,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
|
||||
})
|
||||
}
|
After Width: | Height: | Size: 476 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 71 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 286 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.9 KiB |