项目初始
14
.editorconfig
Normal file
@@ -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
|
||||
12
.env.development
Normal file
@@ -0,0 +1,12 @@
|
||||
# just a flag
|
||||
ENV = 'development'
|
||||
|
||||
# base api
|
||||
VUE_APP_BASE_API = '/api'
|
||||
|
||||
## 配置测试和本地开发时的 接口地址
|
||||
# VUE_APP_URL = "http://jianguan.yyundong.com/shgfapi"
|
||||
|
||||
|
||||
VUE_APP_URL = "http://127.0.0.1:7102"
|
||||
##VUE_APP_URL = "http://8.130.39.13:8112"
|
||||
8
.env.production
Normal file
@@ -0,0 +1,8 @@
|
||||
# just a flag
|
||||
ENV = 'production'
|
||||
|
||||
# base api
|
||||
VUE_APP_BASE_API = '/api'
|
||||
|
||||
## 配置 正式接口地址
|
||||
VUE_APP_URL = "http://120.46.131.15:8111"
|
||||
8
.env.staging
Normal file
@@ -0,0 +1,8 @@
|
||||
NODE_ENV = production
|
||||
|
||||
# just a flag
|
||||
ENV = 'staging'
|
||||
|
||||
# base api
|
||||
VUE_APP_BASE_API = '/stage-api'
|
||||
|
||||
4
.eslintignore
Normal file
@@ -0,0 +1,4 @@
|
||||
build/*.js
|
||||
src/assets
|
||||
public
|
||||
dist
|
||||
199
.eslintrc.js
Normal file
@@ -0,0 +1,199 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint',
|
||||
sourceType: 'module'
|
||||
},
|
||||
env: {
|
||||
browser: true,
|
||||
node: true,
|
||||
es6: true,
|
||||
},
|
||||
extends: ['plugin:vue/recommended', 'eslint:recommended'],
|
||||
|
||||
// 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": 1,
|
||||
"allowFirstLine": false
|
||||
}
|
||||
}],
|
||||
"vue/singleline-html-element-content-newline": "off",
|
||||
"vue/multiline-html-element-content-newline":"off",
|
||||
"vue/name-property-casing": ["error", "PascalCase"],
|
||||
"vue/no-v-html": "off",
|
||||
'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': ["error", "always", {"null": "ignore"}],
|
||||
'generator-star-spacing': [2, {
|
||||
'before': true,
|
||||
'after': true
|
||||
}],
|
||||
'handle-callback-err': [2, '^(err|error)$'],
|
||||
// 'indent': [2, 2, {
|
||||
// 'SwitchCase': 1
|
||||
// }],
|
||||
'indent': 'off',
|
||||
'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': 0,
|
||||
'no-delete-var': 2,
|
||||
'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': [2, {
|
||||
'max': 1
|
||||
}],
|
||||
'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': 2,
|
||||
'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']
|
||||
}
|
||||
}
|
||||
137
.gitignore
vendored
@@ -1,120 +1,31 @@
|
||||
# ---> Node
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
**/.DS_Store
|
||||
**/*.log
|
||||
node_modules/
|
||||
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
.pnpm-debug.log*
|
||||
pnpm-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
tests/**/coverage/
|
||||
tests/e2e/reports
|
||||
selenium-debug.log
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.local
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules/
|
||||
jspm_packages/
|
||||
|
||||
# Snowpack dependency directory (https://snowpack.dev/)
|
||||
web_modules/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Microbundle cache
|
||||
.rpt2_cache/
|
||||
.rts2_cache_cjs/
|
||||
.rts2_cache_es/
|
||||
.rts2_cache_umd/
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
.env.production
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
.parcel-cache
|
||||
|
||||
# Next.js build output
|
||||
.next
|
||||
out
|
||||
|
||||
# Nuxt.js build / generate output
|
||||
.nuxt
|
||||
dist
|
||||
|
||||
# Gatsby files
|
||||
.cache/
|
||||
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||
# public
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
||||
|
||||
# TernJS port file
|
||||
.tern-port
|
||||
|
||||
# Stores VSCode versions used for testing VSCode extensions
|
||||
.vscode-test
|
||||
|
||||
# yarn v2
|
||||
.yarn/cache
|
||||
.yarn/unplugged
|
||||
.yarn/build-state.yml
|
||||
.yarn/install-state.gz
|
||||
.pnp.*
|
||||
package-lock.json
|
||||
yarn.lock
|
||||
|
||||
yyth-ui/
|
||||
|
||||
5
.travis.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
language: node_js
|
||||
node_js: 10
|
||||
script: npm run test
|
||||
notifications:
|
||||
email: false
|
||||
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-present PanJiaChen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
15
babel.config.js
Normal file
@@ -0,0 +1,15 @@
|
||||
module.exports = {
|
||||
presets: [
|
||||
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
|
||||
// '@vue/cli-plugin-babel/preset',
|
||||
['@vue/app', { useBuiltIns: 'entry' }]
|
||||
],
|
||||
'env': {
|
||||
'development': {
|
||||
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
|
||||
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
|
||||
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
|
||||
'plugins': ['dynamic-import-node']
|
||||
}
|
||||
}
|
||||
}
|
||||
24
jest.config.js
Normal file
@@ -0,0 +1,24 @@
|
||||
module.exports = {
|
||||
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
|
||||
transform: {
|
||||
'^.+\\.vue$': 'vue-jest',
|
||||
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
|
||||
'jest-transform-stub',
|
||||
'^.+\\.jsx?$': 'babel-jest'
|
||||
},
|
||||
moduleNameMapper: {
|
||||
'^@/(.*)$': '<rootDir>/src/$1'
|
||||
},
|
||||
snapshotSerializers: ['jest-serializer-vue'],
|
||||
testMatch: [
|
||||
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
|
||||
],
|
||||
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
|
||||
coverageDirectory: '<rootDir>/tests/unit/coverage',
|
||||
// 'collectCoverage': true,
|
||||
'coverageReporters': [
|
||||
'lcov',
|
||||
'text-summary'
|
||||
],
|
||||
testURL: 'http://localhost/'
|
||||
}
|
||||
9
jsconfig.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"baseUrl": "./",
|
||||
"paths": {
|
||||
"@/*": ["src/*"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules", "dist"]
|
||||
}
|
||||
57
mock/index.js
Normal file
@@ -0,0 +1,57 @@
|
||||
const Mock = require('mockjs')
|
||||
const { param2Obj } = require('./utils')
|
||||
|
||||
const user = require('./user')
|
||||
const table = require('./table')
|
||||
|
||||
const mocks = [
|
||||
...user,
|
||||
...table
|
||||
]
|
||||
|
||||
// for front mock
|
||||
// please use it cautiously, it will redefine XMLHttpRequest,
|
||||
// which will cause many of your third-party libraries to be invalidated(like progress event).
|
||||
function mockXHR() {
|
||||
// mock patch
|
||||
// https://github.com/nuysoft/Mock/issues/300
|
||||
Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
|
||||
Mock.XHR.prototype.send = function() {
|
||||
if (this.custom.xhr) {
|
||||
this.custom.xhr.withCredentials = this.withCredentials || false
|
||||
|
||||
if (this.responseType) {
|
||||
this.custom.xhr.responseType = this.responseType
|
||||
}
|
||||
}
|
||||
this.proxy_send(...arguments)
|
||||
}
|
||||
|
||||
function XHR2ExpressReqWrap(respond) {
|
||||
return function(options) {
|
||||
let result = null
|
||||
if (respond instanceof Function) {
|
||||
const { body, type, url } = options
|
||||
// https://expressjs.com/en/4x/api.html#req
|
||||
result = respond({
|
||||
method: type,
|
||||
body: JSON.parse(body),
|
||||
query: param2Obj(url)
|
||||
})
|
||||
} else {
|
||||
result = respond
|
||||
}
|
||||
return Mock.mock(result)
|
||||
}
|
||||
}
|
||||
|
||||
for (const i of mocks) {
|
||||
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
mocks,
|
||||
mockXHR
|
||||
}
|
||||
|
||||
81
mock/mock-server.js
Normal file
@@ -0,0 +1,81 @@
|
||||
const chokidar = require('chokidar')
|
||||
const bodyParser = require('body-parser')
|
||||
const chalk = require('chalk')
|
||||
const path = require('path')
|
||||
const Mock = require('mockjs')
|
||||
|
||||
const mockDir = path.join(process.cwd(), 'mock')
|
||||
|
||||
function registerRoutes(app) {
|
||||
let mockLastIndex
|
||||
const { mocks } = require('./index.js')
|
||||
const mocksForServer = mocks.map(route => {
|
||||
return responseFake(route.url, route.type, route.response)
|
||||
})
|
||||
for (const mock of mocksForServer) {
|
||||
app[mock.type](mock.url, mock.response)
|
||||
mockLastIndex = app._router.stack.length
|
||||
}
|
||||
const mockRoutesLength = Object.keys(mocksForServer).length
|
||||
return {
|
||||
mockRoutesLength: mockRoutesLength,
|
||||
mockStartIndex: mockLastIndex - mockRoutesLength
|
||||
}
|
||||
}
|
||||
|
||||
function unregisterRoutes() {
|
||||
Object.keys(require.cache).forEach(i => {
|
||||
if (i.includes(mockDir)) {
|
||||
delete require.cache[require.resolve(i)]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// for mock server
|
||||
const responseFake = (url, type, respond) => {
|
||||
return {
|
||||
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
|
||||
type: type || 'get',
|
||||
response(req, res) {
|
||||
console.log('request invoke:' + req.path)
|
||||
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = app => {
|
||||
// parse app.body
|
||||
// https://expressjs.com/en/4x/api.html#req.body
|
||||
app.use(bodyParser.json())
|
||||
app.use(bodyParser.urlencoded({
|
||||
extended: true
|
||||
}))
|
||||
|
||||
const mockRoutes = registerRoutes(app)
|
||||
var mockRoutesLength = mockRoutes.mockRoutesLength
|
||||
var mockStartIndex = mockRoutes.mockStartIndex
|
||||
|
||||
// watch files, hot reload mock server
|
||||
chokidar.watch(mockDir, {
|
||||
ignored: /mock-server/,
|
||||
ignoreInitial: true
|
||||
}).on('all', (event, path) => {
|
||||
if (event === 'change' || event === 'add') {
|
||||
try {
|
||||
// remove mock routes stack
|
||||
app._router.stack.splice(mockStartIndex, mockRoutesLength)
|
||||
|
||||
// clear routes cache
|
||||
unregisterRoutes()
|
||||
|
||||
const mockRoutes = registerRoutes(app)
|
||||
mockRoutesLength = mockRoutes.mockRoutesLength
|
||||
mockStartIndex = mockRoutes.mockStartIndex
|
||||
|
||||
console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`))
|
||||
} catch (error) {
|
||||
console.log(chalk.redBright(error))
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
29
mock/table.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const Mock = require('mockjs')
|
||||
|
||||
const data = Mock.mock({
|
||||
'items|30': [{
|
||||
id: '@id',
|
||||
title: '@sentence(10, 20)',
|
||||
'status|1': ['published', 'draft', 'deleted'],
|
||||
author: 'name',
|
||||
display_time: '@datetime',
|
||||
pageviews: '@integer(300, 5000)'
|
||||
}]
|
||||
})
|
||||
|
||||
module.exports = [
|
||||
{
|
||||
url: '/vue-admin-template/table/list',
|
||||
type: 'get',
|
||||
response: config => {
|
||||
const items = data.items
|
||||
return {
|
||||
code: 20000,
|
||||
data: {
|
||||
total: items.length,
|
||||
items: items
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
84
mock/user.js
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
const tokens = {
|
||||
admin: {
|
||||
token: 'admin-token'
|
||||
},
|
||||
editor: {
|
||||
token: 'editor-token'
|
||||
}
|
||||
}
|
||||
|
||||
const users = {
|
||||
'admin-token': {
|
||||
roles: ['admin'],
|
||||
introduction: 'I am a super administrator',
|
||||
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
|
||||
name: 'Super Admin'
|
||||
},
|
||||
'editor-token': {
|
||||
roles: ['editor'],
|
||||
introduction: 'I am an editor',
|
||||
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
|
||||
name: 'Normal Editor'
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = [
|
||||
// user login
|
||||
{
|
||||
url: '/vue-admin-template/user/login',
|
||||
type: 'post',
|
||||
response: config => {
|
||||
const { username } = config.body
|
||||
const token = tokens[username]
|
||||
|
||||
// mock error
|
||||
if (!token) {
|
||||
return {
|
||||
code: 60204,
|
||||
message: 'Account and password are incorrect.'
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
code: 20000,
|
||||
data: token
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// get user info
|
||||
{
|
||||
url: '/vue-admin-template/user/info\.*',
|
||||
type: 'get',
|
||||
response: config => {
|
||||
const { token } = config.query
|
||||
const info = users[token]
|
||||
|
||||
// mock error
|
||||
if (!info) {
|
||||
return {
|
||||
code: 50008,
|
||||
message: 'Login failed, unable to get user details.'
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
code: 20000,
|
||||
data: info
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// user logout
|
||||
{
|
||||
url: '/vue-admin-template/user/logout',
|
||||
type: 'post',
|
||||
response: _ => {
|
||||
return {
|
||||
code: 20000,
|
||||
data: 'success'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
25
mock/utils.js
Normal file
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* @param {string} url
|
||||
* @returns {Object}
|
||||
*/
|
||||
function param2Obj(url) {
|
||||
const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
|
||||
if (!search) {
|
||||
return {}
|
||||
}
|
||||
const obj = {}
|
||||
const searchArr = search.split('&')
|
||||
searchArr.forEach(v => {
|
||||
const index = v.indexOf('=')
|
||||
if (index !== -1) {
|
||||
const name = v.substring(0, index)
|
||||
const val = v.substring(index + 1, v.length)
|
||||
obj[name] = val
|
||||
}
|
||||
})
|
||||
return obj
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
param2Obj
|
||||
}
|
||||
74
package.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"name": "yxt-yyth-ui-admin",
|
||||
"version": "1.1.0",
|
||||
"description": "",
|
||||
"author": "",
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"build:prod": "vue-cli-service build",
|
||||
"build:stage": "vue-cli-service build --mode staging",
|
||||
"preview": "node build/index.js --preview",
|
||||
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
|
||||
"lint": "eslint --ext .js,.vue src",
|
||||
"test:unit": "jest --clearCache && vue-cli-service test:unit",
|
||||
"test:ci": "npm run lint && npm run test:unit"
|
||||
},
|
||||
"dependencies": {
|
||||
"echarts": "^5.4.3",
|
||||
"axios": "^0.24.0",
|
||||
"bpmn-js": "^9.2.2",
|
||||
"core-js": "^3.8.3",
|
||||
"ejs": "^2.7.4",
|
||||
"element-ui": "^2.15.14",
|
||||
"js-cookie": "2.2.0",
|
||||
"moment": "^2.29.1",
|
||||
"normalize.css": "7.0.0",
|
||||
"nprogress": "0.2.0",
|
||||
"path-to-regexp": "2.4.0",
|
||||
"portfinder": "^1.0.21",
|
||||
"qs": "^6.9.4",
|
||||
"sass-resources-loader": "^2.1.1",
|
||||
"viewerjs": "^1.9.0",
|
||||
"vue": "^2.6.14",
|
||||
"vue-amap": "^0.5.10",
|
||||
"vue-router": "^3.5.1",
|
||||
"vuex": "3.6.0",
|
||||
"vuex-persistedstate": "^4.0.0",
|
||||
"xcrud": "^0.4.19"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "4.4.4",
|
||||
"@vue/cli-plugin-eslint": "4.4.4",
|
||||
"@vue/cli-plugin-unit-jest": "4.4.4",
|
||||
"@vue/cli-service": "4.4.4",
|
||||
"@vue/test-utils": "1.0.0-beta.29",
|
||||
"autoprefixer": "9.5.1",
|
||||
"babel-eslint": "10.1.0",
|
||||
"babel-jest": "23.6.0",
|
||||
"babel-plugin-dynamic-import-node": "2.3.3",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"chalk": "2.4.2",
|
||||
"connect": "3.6.6",
|
||||
"eslint": "6.7.2",
|
||||
"eslint-plugin-vue": "6.2.2",
|
||||
"html-webpack-plugin": "3.2.0",
|
||||
"mockjs": "1.0.1-beta3",
|
||||
"runjs": "4.3.2",
|
||||
"sass": "1.26.8",
|
||||
"sass-loader": "8.0.2",
|
||||
"script-ext-html-webpack-plugin": "2.1.3",
|
||||
"serve-static": "1.13.2",
|
||||
"svg-sprite-loader": "4.1.3",
|
||||
"svgo": "1.2.2",
|
||||
"vue-template-compiler": "2.6.10"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=8.9",
|
||||
"npm": ">= 3.0.0"
|
||||
},
|
||||
"license": "MIT"
|
||||
}
|
||||
8
postcss.config.js
Normal file
@@ -0,0 +1,8 @@
|
||||
// https://github.com/michael-ciniawsky/postcss-load-config
|
||||
|
||||
module.exports = {
|
||||
'plugins': {
|
||||
// to edit target browsers: use "browserslist" field in package.json
|
||||
'autoprefixer': {}
|
||||
}
|
||||
}
|
||||
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/image/liuchengtu.jpg
Normal file
|
After Width: | Height: | Size: 30 KiB |
17
public/index.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||
<title><%= webpackConfig.name %></title>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
</body>
|
||||
</html>
|
||||
17
src/App.vue
Normal file
@@ -0,0 +1,17 @@
|
||||
<template>
|
||||
<div id="app">
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'App',
|
||||
created() {
|
||||
console.log('resss', 11111111111111111111111111)
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
}
|
||||
</script>
|
||||
13
src/api/Common/Upload.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import request from '@/utils/request'
|
||||
// 上传图片
|
||||
export function imageUpload(data){
|
||||
return request({
|
||||
url: '/jlcyry/file/upload',
|
||||
method: 'post',
|
||||
data,
|
||||
headers:{'Content-Type':'multipart/form-data'}
|
||||
})
|
||||
}
|
||||
export const uploadFile = '/api/base/v1/basemanufactorsubscription/pictureUpload'
|
||||
|
||||
export const uploadimg_tuiku = '/api/base/v1/basemanufacturerretwareveh/pictureUpload'
|
||||
25
src/api/Common/areaPicker.js
Normal file
@@ -0,0 +1,25 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
//区域获取省
|
||||
export function getProvince(data) {
|
||||
return request({
|
||||
url: '/system/region/getProvince',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
//根据省sid获取该省的所有市
|
||||
export function getCity(data) {
|
||||
return request({
|
||||
url: '/system/region/getCity',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
//根据市sid获取该市的所有县区
|
||||
export function getCounty(data) {
|
||||
return request({
|
||||
url: '/system/region/getCounty',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
100
src/api/Common/dictcommons.js
Normal file
@@ -0,0 +1,100 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 根据登陆人sid查询分公司sid(常用接口)
|
||||
export function getPathSidByUserSid(data) {
|
||||
return request({
|
||||
url: '/portal/v1/sysstafforg/getPathSidByUserSid',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据当前登录人orgSidPath(全路径sid)查询分公司
|
||||
export function getOrgSidByPath(data) {
|
||||
return request({
|
||||
url: '/portal/v1/sysstafforg/getOrgSidByPath',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 当前用户创建申请时判断该用户是否有该菜单的操作权限
|
||||
export function selectHaveMessage(data) {
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/selectHaveMessage ',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
}
|
||||
|
||||
// 根据分公司sid查询分公司名称
|
||||
export function fetchBySid(sid) {
|
||||
return request({
|
||||
url: 'portal/v1/sysorganization/fetchBySid/' + sid,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据分公司Sid获取分公司下部门对应的采购系统
|
||||
export function fetchDetailsByUseOrgSid(data) {
|
||||
return request({
|
||||
url: '/base/v1/basepurchasesystem/fetchDetailsByUseOrgSid/' + data,
|
||||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取下拉框
|
||||
export function typeValues(data) {
|
||||
return request({
|
||||
url: '/portal/v1/dictcommon/typeValues',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据用户sid获取本分公司下的银行账号
|
||||
export function selAccountByOrgSid(data) {
|
||||
return request({
|
||||
url: '/fin/v1/finmanufacturerbank/selAccountByOrgSid',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 品牌下拉
|
||||
export function brandDown(data) {
|
||||
return request({
|
||||
url: '/base/v1/basevehiclebrand/namesDown',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据当前用户orgSidPath的管理层级获取相应的信息(集团获取所有分公司信息、事业部获取旗下的分公司信息、分公司获取该分公司的信息)
|
||||
export function selectOrgByLevel(data) {
|
||||
return request({
|
||||
url: '/base/v1/basevehicleout/selectOrgByLevel',
|
||||
method: 'post',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询角色列表
|
||||
export function roleList(data) {
|
||||
return request({
|
||||
url: '/portal/v1/sysrole/listAll',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
}
|
||||
|
||||
// 根据当前登录用户分公司sid获取本分公司下存放地点
|
||||
export function fetchByUseOrgSid(data) {
|
||||
return request({
|
||||
url: 'scm/v1/scmwarehouse/fetchByUseOrgSid',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
13
src/api/Common/permission.js
Normal file
@@ -0,0 +1,13 @@
|
||||
import request from '@/utils/request'
|
||||
// 请求按钮权限
|
||||
export default {
|
||||
|
||||
// 查询分页列表,输入当前路径和userSid,返回
|
||||
buttonPermission: function(params) {
|
||||
return request({
|
||||
url: '/demopackage/v1/demo/buttonPermission',
|
||||
method: 'post',
|
||||
data: params
|
||||
})
|
||||
}
|
||||
}
|
||||
35
src/api/User/login.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
|
||||
class User {
|
||||
login(data) { // 登录
|
||||
return request({
|
||||
url: '/system/user/login',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
logout(data) { // 退出
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/signOut',
|
||||
method: 'post',
|
||||
data: qs.stringify(data)
|
||||
})
|
||||
}
|
||||
updatePassword(data) { // 退出修改密码
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/updatePassword',
|
||||
method: 'post',
|
||||
data: qs.stringify(data)
|
||||
})
|
||||
}
|
||||
reGetPwd(data) {
|
||||
return request({
|
||||
url: `/system/user/reGetPwd/${data.userName}/${data.userPhone}`,
|
||||
method: 'post',
|
||||
data: qs.stringify(data)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export default new User()
|
||||
50
src/api/brank/brank.js
Normal file
@@ -0,0 +1,50 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export default {
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
baseURL: "/api/crm",
|
||||
url: '/v1/loanbankinformation/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/loanbankinformation/getBankInfBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
baseURL: "/api/crm",
|
||||
url: '/v1/loanbankinformation/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: 'v1/loanbankinformation/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/loanbankinformation/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
187
src/api/customermanagement/customermanagement.js
Normal file
@@ -0,0 +1,187 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 接口文档名称:潜在客户信息
|
||||
// Pc端客户基础信息条件分页查询数据的列表
|
||||
export function pagerList(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/listPage',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 客户查询
|
||||
export function listPageByOrgPathSid(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/listPageByOrgPathSid',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 添加 已改
|
||||
export function savePcCustomerInfo(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/save',
|
||||
data: data,
|
||||
method: 'post',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// -- 修改 已改
|
||||
export function updatePcCustomerInfo(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/update/' + data.sid,
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 详情、编辑回显 已改
|
||||
export function getPcCustomerInfoBySid(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/fetchSid/' + data,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 删除 已改
|
||||
export function deleteBySids(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/del/',
|
||||
method: 'delete',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 推送财务数据--是否确定车架号选择否
|
||||
export function sendFinCustomer(data, orgCode) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/sendFinCustomer/' + orgCode,
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 推送财务数据--是否确定车架号选择是
|
||||
export function sendFinCustomerTrue(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomertemp/sendFinCustomerTrue',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 推送财务数据--是否确定车架号选择是,选择车辆
|
||||
export function vehicleCrmList(data) {
|
||||
return request({
|
||||
url: '/base/v1/basevehicle/vehicleCrmList',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Pc端分页查询中介单位(经销商)
|
||||
export function getPcDistributorList(data) {
|
||||
return request({
|
||||
url: '/base/v1/basedistributor/getPcDistributorList',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 挂靠公司模糊查询下拉框
|
||||
export function namesDown(data) {
|
||||
return request({
|
||||
url: '/base/v1/baseaffiliatcompany/namesDown',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 据客户名称模糊搜索客户名称下拉框
|
||||
export function KeHuNamesDown(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomer/namesDown',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// Pc端保存登记单信息
|
||||
export function saveCustomersAll(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomer/saveCustomersAll', data,
|
||||
method: 'post',
|
||||
// data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Pc端修改登记单信息
|
||||
export function updateCustomersAll(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomer/updateCustomersAll/' + data,
|
||||
method: 'post',
|
||||
// data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Pc端登记单修改回显及详情信息
|
||||
export function selectCustomersAll(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomer/selectCustomersAll?sid=' + data,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
//
|
||||
export function listPage(data) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomer/listPage',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Pc端根据sid查询客户基础信息是否存在
|
||||
export function getPcCustomerMobileAndName(mobile, name) {
|
||||
return request({
|
||||
url: '/crm/v1/crmcustomer/getPcCustomerMobileAndName?mobile=' + mobile + '&name=' + name,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
114
src/api/dataDict/datadict.js
Normal file
@@ -0,0 +1,114 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export default {
|
||||
// 11111111111111111111111
|
||||
|
||||
// 行业品类 分类列表
|
||||
industryListPage: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/industrydictionary/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
// 行业品类 通过sid删除一条或多条记录
|
||||
industryDelBySids: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/industrydictionary/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
// 行业品类 保存行业品类
|
||||
saveindustry: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/industrydictionary/save',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 行业品类 修改行业品类
|
||||
updateindustry: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/industrydictionary/update',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 行业品类 通过sid查询一条记录
|
||||
industryFetchBySid: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/industrydictionary/getIndustryBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
|
||||
// 类别维护 类别列表
|
||||
classListPage: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/projtypedictionary/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
// 类别维护 通过sid删除一条或多条记录
|
||||
classDelBySids: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/projtypedictionary/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
// 类别维护 保存行业品类
|
||||
saveClass: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/projtypedictionary/save',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
// 类别维护 修改行业品类
|
||||
updateClass: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/projtypedictionary/update',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
// 类别维护 通过sid查询一条记录
|
||||
classFetchBySid: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/projtypedictionary/getProjTypeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
50
src/api/enterprise/enterprise.js
Normal file
@@ -0,0 +1,50 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export default {
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
baseURL: "/api/crm",
|
||||
url: '/v1/enterpriseinformation/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/enterpriseinformation/getEnterpriseBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
baseURL: "/api/crm",
|
||||
url: '/v1/enterpriseinformation/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/enterpriseinformation/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/enterpriseinformation/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
58
src/api/flowInstrument/flowInstrument.js
Normal file
@@ -0,0 +1,58 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
url: '/cyf/flowmeter/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/flowmeter/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/flowmeter/getTankBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/flowmeter/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/flowmeter/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
flowmeterList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/flowmeter/flowmeterList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
197
src/api/gfApi/index.js
Normal file
@@ -0,0 +1,197 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
// 获取供应商信息
|
||||
getSupplierList: function(params) {
|
||||
return request({
|
||||
url: '/gf/supplier/getSupplierList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查询合同
|
||||
getContract: function(params) {
|
||||
return request({
|
||||
url: '/gf/supplier/getContract',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 物料管理列表
|
||||
getMaterielList: function(params) {
|
||||
return request({
|
||||
url: '/gf/materiel/getMaterielList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取仓库列表
|
||||
getWarehouse: function(params) {
|
||||
return request({
|
||||
url: '/gf/warehouse/getWarehouse',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取物料品牌列表
|
||||
getMaterialBrandList: function(params) {
|
||||
return request({
|
||||
url: '/gf/materialBrand/getMaterialBrandList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取物料组
|
||||
getMaterialGroup: function() {
|
||||
return request({
|
||||
url: '/gf/materialBrand/getMaterialGroup',
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
// 获取出库申请
|
||||
getOutStock: function(params) {
|
||||
return request({
|
||||
url: '/gf/outStock/getOutStock ',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查看出库申请详细信息
|
||||
getOutStockInfo: function(id) {
|
||||
return request({
|
||||
url: '/gf/outStock/getOutStockInfo/' + id,
|
||||
method: 'get',
|
||||
})
|
||||
},
|
||||
// 获取出库记录列表
|
||||
getOutStockMaterielList: function(params) {
|
||||
return request({
|
||||
url: '/gf/outStock/getOutStockMaterielList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取入库申请
|
||||
getInStockList: function(params) {
|
||||
return request({
|
||||
url: '/gf/inStock/getInStockList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取入库记录列表
|
||||
getInStockMaterielList: function(params) {
|
||||
return request({
|
||||
url: '/gf/inStock/getInStockMaterielList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查看出库申请详细信息
|
||||
getInStockInfo: function(id) {
|
||||
return request({
|
||||
url: '/gf/inStock/getInStockInfo/' + id,
|
||||
method: 'get',
|
||||
})
|
||||
},
|
||||
// 获取出入库记录
|
||||
getStockRecordList: function(params) {
|
||||
return request({
|
||||
url: '/gf/stockRecord/getStockRecordList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取库存管理
|
||||
getInventoryList: function(params) {
|
||||
return request({
|
||||
url: '/gf/inventory/getInventoryList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取出入库合同管理
|
||||
getPurchaseContractList: function(params) {
|
||||
return request({
|
||||
url: '/gf/purchaseContract/getPurchaseContractList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取出库类型
|
||||
getOutType: function() {
|
||||
return request({
|
||||
url: '/gf/outStock/getOutType',
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
// 获取入库类型
|
||||
getInType: function() {
|
||||
return request({
|
||||
url: '/gf/inStock/getInType',
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
// 获取代理商
|
||||
getAgentList: function() {
|
||||
return request({
|
||||
url: '/gf/stockRecord/getAgentList ',
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
// 获取审核状态
|
||||
getStatus: function() {
|
||||
return request({
|
||||
url: '/gf/stockRecord/getStatus',
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
}
|
||||
100
src/api/oilTank/oilTank.js
Normal file
@@ -0,0 +1,100 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
url: '/cyf/tankinfo/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
selectTankInformation: function(params) {
|
||||
return request({
|
||||
url: '/cyf/tankinfo/selectTankInformation',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/tankinfo/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
crudeinfoList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/list',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
selectRecordBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinventory/selectRecordBySid/' + sid,
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/getCrudeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
// 保存每次读取库存
|
||||
saveInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinventory/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
// 登记库存列表
|
||||
crudeinventoryList: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinventory/listPage',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
}
|
||||
47
src/api/oilType/oilType.js
Normal file
@@ -0,0 +1,47 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/getCrudeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
117
src/api/oilTypeInAndOutBound/oilTypeInAndOutBound.js
Normal file
@@ -0,0 +1,117 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
// 获取油罐
|
||||
tankList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/tankinfo/tankList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
// 获取油罐by Sid
|
||||
tankLisBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/tankinfo/listByType/' + sid
|
||||
})
|
||||
},
|
||||
// 获取入库信息 Sid
|
||||
selectStorageBySid: function(sid) {
|
||||
return request({
|
||||
url: 'cyf/crudestorage/selectStorageBySid/' + sid,
|
||||
method: 'get',
|
||||
})
|
||||
},
|
||||
// 获取出库信息 Sid
|
||||
getCrudeBySid: function(sid) {
|
||||
return request({
|
||||
url: 'cyf/crudeoutbound/getCrudeBySid/' + sid,
|
||||
method: 'get',
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 入库
|
||||
|
||||
logPagerList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/crudestorage/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
intAddInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudestorage/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 出库
|
||||
// 查询分页列表
|
||||
in112PagerList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/crudeoutbound/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
outAddInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeoutbound/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
crudeinfoList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/list',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/getCrudeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
30
src/api/portal/Upload.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
// 统一请求路径前缀
|
||||
const base = process.env.VUE_APP_URL
|
||||
|
||||
// 文件上传接口
|
||||
export const uploadFile = '/api/file/upload'
|
||||
// export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'
|
||||
|
||||
|
||||
|
||||
// 上传图片
|
||||
// export function imageUpload(data) {
|
||||
// return request({
|
||||
// url: '/portal/file/upload',
|
||||
// method: 'post',
|
||||
// data,
|
||||
// headers: { 'Content-Type': 'multipart/form-data' }
|
||||
// })
|
||||
// }
|
||||
|
||||
// 移除图片
|
||||
export function deleteFilesOss(data) {
|
||||
return request({
|
||||
url: '/base/v1/baseVehicleAppendixs/deleteFilesOss',
|
||||
method: 'post',
|
||||
data: qs.stringify(data),
|
||||
// headers: { 'Content-Type': 'multipart/form-data' }
|
||||
})
|
||||
}
|
||||
34
src/api/portal/areaPicker.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取省/portal/v1/regions/getProvince
|
||||
export function getProvince(data) {
|
||||
return request({
|
||||
url: '/portal/v1/regions/getProvince',data,
|
||||
method: 'get',
|
||||
params:data,
|
||||
})
|
||||
}
|
||||
// 根据省sid获取该省的所有市
|
||||
export function getCity(data) {
|
||||
return request({
|
||||
url: '/portal/v1/regions/getCity',
|
||||
params:data,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
// 根据市sid获取该市的所有县区
|
||||
export function getCounty(data) {
|
||||
return request({
|
||||
url: '/portal/v1/regions/getCounty',
|
||||
method: 'get',
|
||||
params:data,
|
||||
})
|
||||
}
|
||||
// // 区域列表(省市县均可用)
|
||||
// export function selectsList(data) {
|
||||
// return request({
|
||||
// url: '/portal/v1/regions/selectsList', data,
|
||||
// method: 'post',
|
||||
// headers: { 'Content-Type': 'application/json' }
|
||||
// })
|
||||
// }
|
||||
97
src/api/rawMaterialInAndOutBound/rawMaterialInAndOutBound.js
Normal file
@@ -0,0 +1,97 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
// 获取原料
|
||||
inventoryList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/rawinventory/inventoryList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 入库
|
||||
|
||||
logPagerList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/rawstorage/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
intAddInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/rawstorage/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 出库
|
||||
// 查询分页列表
|
||||
|
||||
in112PagerList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/rawoutbound/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
outAddInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/rawoutbound/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
crudeinfoList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/list',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/getCrudeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
69
src/api/rawMaterialInfo/rawMaterialInfo.js
Normal file
@@ -0,0 +1,69 @@
|
||||
import request from '@/utils/request'
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
url: '/cyf/rawinventory/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/rawinventory/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
rawMaterialType: function(params) {
|
||||
return request({
|
||||
url: '/cyf/rawtype/typeList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/getCrudeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/crudeinfo/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
// 保存每次读取库存
|
||||
saveInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/crudeinventory/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
}
|
||||
48
src/api/rawMaterialType/rawMaterialType.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
url: '/cyf/rawtype/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/rawtype/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/rawtype/getTypeBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/rawtype/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/rawtype/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
50
src/api/storehouse/storehouse.js
Normal file
@@ -0,0 +1,50 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export default {
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
baseURL: "/api/crm",
|
||||
url: '/v1/warehouselocation/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/warehouselocation/getWarehouseBySid//' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
baseURL: "/api/crm",
|
||||
url: '/v1/warehouselocation/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/warehouselocation/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
baseURL: '/api/crm',
|
||||
url: '/v1/warehouselocation/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
62
src/api/supplier/supplier.js
Normal file
@@ -0,0 +1,62 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
let tokens = window.sessionStorage.getItem('tokenValue')
|
||||
export default {
|
||||
|
||||
// 查询分页列表
|
||||
listPage: function(params) {
|
||||
return request({
|
||||
url: '/cyf/supplier/listPage',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
addInfo: function(data) {
|
||||
return request({
|
||||
url: '/cyf/supplier/save',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
fetchBySid: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/supplier/getSupplierBySid/' + sid
|
||||
})
|
||||
},
|
||||
|
||||
updateData: function(data) {
|
||||
return request({
|
||||
url: '/cyf/supplier/update',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
},
|
||||
|
||||
delBySids: function(sid) {
|
||||
return request({
|
||||
url: '/cyf/supplier/delete/' + sid,
|
||||
method: 'delete'
|
||||
})
|
||||
},
|
||||
|
||||
// 供应商 数据字典
|
||||
supplierList: function(params) {
|
||||
return request({
|
||||
url: '/cyf/supplier/supplierList',
|
||||
method: 'post',
|
||||
data: params,
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'token': tokens
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
}
|
||||
47
src/api/system/Role/role.js
Normal file
@@ -0,0 +1,47 @@
|
||||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
const tokens = window.sessionStorage.getItem('token')
|
||||
//
|
||||
export function rolemenus(data) {
|
||||
return request({
|
||||
url: '/system/v1/rolemenus/' + data.roleSid,
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取左侧菜单
|
||||
export function getrolemenus(data) {
|
||||
return request({
|
||||
baseURL: '/api',
|
||||
url: '/portal/v1/sysmenu/sourcemenutree',
|
||||
method: 'POST',
|
||||
async: false,
|
||||
// data: {userSid: data.userSid, sourceSid: '000011'},
|
||||
data: data,
|
||||
headers: { 'Content-Type': 'application/json',
|
||||
'token': tokens }
|
||||
})
|
||||
}
|
||||
|
||||
// 获取角色的主页菜单
|
||||
export function sourcesofrole(data) {
|
||||
return request({
|
||||
url: '/system/v1/rolemenus/sourcesofrole',
|
||||
method: 'POST',
|
||||
data: data,
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
}
|
||||
// 根据token值获取登录后的用户信息
|
||||
export function loginDetails(data) {
|
||||
return request({
|
||||
baseURL: '/api',
|
||||
url: '/portal/v1/sysuser/loginDetails',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
38
src/api/system/user/login.js
Normal file
@@ -0,0 +1,38 @@
|
||||
import request from '@/utils/request'
|
||||
import qs from 'qs'
|
||||
|
||||
|
||||
//获取菜单 分页列表
|
||||
export function login1(data) {
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/login',
|
||||
method: 'POST',
|
||||
data: data,
|
||||
headers: {'Content-Type': 'application/json',
|
||||
// 'token':tokens
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
class user {
|
||||
login(data) { // 登录
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/login',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
logout() { // 退出
|
||||
return request({
|
||||
url: '/vue-admin-template/user/logout',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
updatePassword(data) { // 退出修改密码
|
||||
return request({
|
||||
url: '/system/user/updatePassword',
|
||||
method: 'post',
|
||||
data: qs.stringify(data)
|
||||
})
|
||||
}
|
||||
}
|
||||
72
src/api/user.js
Normal file
@@ -0,0 +1,72 @@
|
||||
import request from '@/utils/request'
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
import qs from 'qs'
|
||||
|
||||
// 登录
|
||||
export function doLogin(data) {
|
||||
return request({
|
||||
url: '/gf/sys/doLogin',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
}
|
||||
// 获取登录人员信息
|
||||
export function getUserById(sid) {
|
||||
return request({
|
||||
url: '/cyf/sys/getUserById/' + sid
|
||||
})
|
||||
|
||||
}
|
||||
// 登录
|
||||
export function login(data) {
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/login',
|
||||
method: 'post',
|
||||
data: data,
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
}
|
||||
|
||||
// 用户注册
|
||||
export function registUser(data) {
|
||||
return request({
|
||||
url: '/system/user/save',
|
||||
method: 'post',
|
||||
data,
|
||||
headers: { 'Content-Type': 'application/x-www-form-urlencoded;' }
|
||||
})
|
||||
}
|
||||
|
||||
// 获取手机验证码
|
||||
export function getVerificationCode(data) {
|
||||
return request({
|
||||
url: '/system/user/getVerificationCode',
|
||||
method: 'get',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取登录验证码
|
||||
export function imgCode() {
|
||||
return request({
|
||||
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用信息
|
||||
export function getInfo(token) {
|
||||
return request({
|
||||
url: '/system/user/loginDetails',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
export function logout(data) { // 退出
|
||||
return request({
|
||||
url: '/portal/v1/sysuser/signOut',
|
||||
method: 'post',
|
||||
data: qs.stringify(data)
|
||||
})
|
||||
}
|
||||
BIN
src/assets/404_images/404.png
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
src/assets/404_images/404_cloud.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
src/assets/home/anrui.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
src/assets/home/bIcon1.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
src/assets/home/bIcon2.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
src/assets/home/bIcon3.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
src/assets/home/bIcon4.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
src/assets/home/bIcon5.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
src/assets/home/bIcon6.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
src/assets/home/bIcon7.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
src/assets/home/bIcon8.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
src/assets/home/bj.jpg
Normal file
|
After Width: | Height: | Size: 130 KiB |
BIN
src/assets/home/bottomBg.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/assets/home/line.png
Normal file
|
After Width: | Height: | Size: 91 B |
BIN
src/assets/home/ltBg.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/assets/home/ltIcon1.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
src/assets/home/ltIcon2.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
src/assets/home/ltIcon3.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
src/assets/home/ltIcon4.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/assets/home/notice.png
Normal file
|
After Width: | Height: | Size: 944 B |
BIN
src/assets/home/rtBg.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
src/assets/images/arrow.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/bdrysh.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/assets/images/btn.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/assets/images/cdgl.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/assets/images/cxjl.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
src/assets/images/czsc.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/assets/images/dwrysh.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/assets/images/dwxxgl.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/assets/images/dy.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/assets/images/head.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/assets/images/info.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/images/jcxx.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
src/assets/images/jggl.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/assets/images/jlsc.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
src/assets/images/jsgl.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/assets/images/jsxd.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
src/assets/images/login/OAKQ.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
src/assets/images/login/bg2-img.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
src/assets/images/login/bgimg.jpg
Normal file
|
After Width: | Height: | Size: 206 KiB |
BIN
src/assets/images/login/nose.png
Normal file
|
After Width: | Height: | Size: 640 B |
BIN
src/assets/images/login/pasw.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
src/assets/images/login/user.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
src/assets/images/lzrysh.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/assets/images/org/headerimg.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
src/assets/images/org/jian.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
src/assets/images/org/sfz.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
src/assets/images/org/sqs.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
src/assets/images/org/success.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/assets/images/org/yyzz.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/assets/images/place.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
src/assets/images/qjsh.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
src/assets/images/ryda.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |