├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
├── build.js
├── check-versions.js
├── logo.png
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
├── prod.env.js
└── test.env.js
├── index.html
├── package-lock.json
├── package.json
├── src
├── App.vue
├── api
│ ├── boss.js
│ ├── calendar.js
│ ├── card.js
│ ├── chart.js
│ ├── contact.js
│ ├── customer.js
│ ├── dynamic.js
│ ├── footprint.js
│ ├── form.js
│ ├── login.js
│ ├── message.js
│ ├── rank.js
│ ├── talk.js
│ ├── task.js
│ ├── upload_file.js
│ ├── user_info.js
│ └── work.js
├── assets
│ ├── audio
│ │ ├── audio.mp3
│ │ ├── audio.ogg
│ │ └── test.wav
│ ├── card
│ │ ├── 1.png
│ │ ├── 10.png
│ │ ├── 11.png
│ │ ├── 12.png
│ │ ├── 13.png
│ │ ├── 14.png
│ │ ├── 15.png
│ │ ├── 16.png
│ │ ├── 17.png
│ │ ├── 18.png
│ │ ├── 19.png
│ │ ├── 2.png
│ │ ├── 20.png
│ │ ├── 21.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── 7.png
│ │ ├── 9.png
│ │ ├── chart1.png
│ │ ├── chart2.png
│ │ ├── chart3.png
│ │ ├── chart4.png
│ │ ├── comm.jpg
│ │ ├── show_audio.png
│ │ └── thumbnail
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ ├── 7.png
│ │ │ └── 8.png
│ ├── icon
│ │ ├── 123_03.png
│ │ ├── 123_07.png
│ │ ├── 123_09.png
│ │ ├── 33_03.png
│ │ ├── 33_06.png
│ │ ├── 33_08.png
│ │ ├── PingLun.jpg
│ │ ├── QR.png
│ │ ├── add.png
│ │ ├── audio.png
│ │ ├── bar.png
│ │ ├── calendar.png
│ │ ├── calendar_rank.png
│ │ ├── card_edit_03.jpg
│ │ ├── card_edit_06.jpg
│ │ ├── card_edit_08.jpg
│ │ ├── card_edit_10.jpg
│ │ ├── comment.png
│ │ ├── contact.png
│ │ ├── contact2.png
│ │ ├── del_icon.png
│ │ ├── edit.png
│ │ ├── error.png
│ │ ├── error1.png
│ │ ├── face.png
│ │ ├── fork.png
│ │ ├── index.png
│ │ ├── index2.png
│ │ ├── jia.png
│ │ ├── liao_diannao.png
│ │ ├── liao_dong.png
│ │ ├── liao_quan.png
│ │ ├── liao_ren.png
│ │ ├── loading_1.png
│ │ ├── loading_2.png
│ │ ├── message.png
│ │ ├── message2.png
│ │ ├── more.png
│ │ ├── my_03.png
│ │ ├── my_06.png
│ │ ├── my_11.png
│ │ ├── my_14.png
│ │ ├── my_16.png
│ │ ├── network.png
│ │ ├── news.png
│ │ ├── news2.png
│ │ ├── none_icon_03.png
│ │ ├── none_icon_05.png
│ │ ├── none_icon_08.png
│ │ ├── none_icon_11.png
│ │ ├── none_icon_14.png
│ │ ├── phone.png
│ │ ├── select_icon_03.png
│ │ ├── select_icon_05.png
│ │ ├── select_icon_08.png
│ │ ├── select_icon_11.png
│ │ ├── select_icon_14.png
│ │ ├── self.png
│ │ ├── self2.png
│ │ ├── service.png
│ │ ├── top.png
│ │ ├── top1.png
│ │ ├── top2.png
│ │ ├── top3.png
│ │ ├── w1.jpg
│ │ ├── w2.jpg
│ │ ├── w3.jpg
│ │ ├── w4.jpg
│ │ ├── w5.jpg
│ │ ├── w6.jpg
│ │ ├── w7.jpg
│ │ ├── w_s.jpg
│ │ ├── wchat.png
│ │ ├── xiao.png
│ │ ├── 保存号码.png
│ │ ├── 动态点赞.png
│ │ ├── 复制公司名称.png
│ │ ├── 复制邮箱.png
│ │ ├── 拨打座机.png
│ │ ├── 查看动态.png
│ │ └── 标题点赞.png
│ ├── img
│ │ ├── assign.png
│ │ ├── back_btn.png
│ │ ├── back_img.png
│ │ ├── calendar.png
│ │ ├── calendar1.png
│ │ ├── calendar2.png
│ │ ├── calendar3.png
│ │ ├── calendar4.png
│ │ ├── calendar5.png
│ │ ├── card.png
│ │ ├── card2.png
│ │ ├── chart.png
│ │ ├── chart1.png
│ │ ├── chart2.png
│ │ ├── chart3.png
│ │ ├── chart4.png
│ │ ├── chatBg.png
│ │ ├── code.png
│ │ ├── comment.png
│ │ ├── comment02.png
│ │ ├── comment2.png
│ │ ├── datapicker.png
│ │ ├── datepickerGray.png
│ │ ├── detail.png
│ │ ├── edit-icon.png
│ │ ├── follow-icon.png
│ │ ├── form.png
│ │ ├── heart-black.png
│ │ ├── heart-blue.png
│ │ ├── heart.png
│ │ ├── heart_s.png
│ │ ├── inter.png
│ │ ├── l.gif
│ │ ├── list_pic_moren.png
│ │ ├── message-icon.png
│ │ ├── message.png
│ │ ├── message2.png
│ │ ├── moren.jpg
│ │ ├── my-icon.png
│ │ ├── news.png
│ │ ├── p_icon.jpg
│ │ ├── product.png
│ │ ├── r_banner.png
│ │ ├── selfCard.png
│ │ ├── set.png
│ │ ├── six.png
│ │ ├── sort.png
│ │ ├── tabbar.png
│ │ ├── task-icon.png
│ │ ├── task.png
│ │ ├── trueland.png
│ │ ├── u112.png
│ │ ├── warning.png
│ │ ├── wchat.png
│ │ └── weixin.png
│ ├── nav
│ │ ├── address1.png
│ │ ├── address3.png
│ │ ├── address4.png
│ │ ├── calendar.png
│ │ ├── card.png
│ │ ├── cellphone1.png
│ │ ├── chat.png
│ │ ├── email.png
│ │ ├── email2.png
│ │ ├── email3.png
│ │ ├── email4.png
│ │ ├── hi.png
│ │ ├── manage.png
│ │ ├── map.png
│ │ ├── map2.png
│ │ ├── news.png
│ │ ├── phone.png
│ │ ├── phone2.png
│ │ ├── phone3.png
│ │ ├── phone4.png
│ │ ├── report.png
│ │ ├── setting.png
│ │ └── step.png
│ └── task
│ │ ├── calendar.png
│ │ ├── calendar_icon.png
│ │ ├── demo_img.png
│ │ ├── empty_task.png
│ │ ├── mark.png
│ │ ├── selected.png
│ │ ├── selected_star.png
│ │ ├── unmark.png
│ │ └── unselected.png
├── components
│ ├── cardViewer
│ │ └── index.vue
│ └── footer
│ │ └── index.vue
├── error.vue
├── main.js
├── permission.js
├── router
│ └── index.js
├── store
│ ├── index.js
│ └── modules
│ │ ├── app.js
│ │ ├── chat.js
│ │ ├── err.js
│ │ ├── message.js
│ │ ├── tab.js
│ │ ├── user.js
│ │ └── work.js
├── styles
│ ├── card.scss
│ ├── iconfont.css
│ ├── index.scss
│ ├── reset.scss
│ ├── vux.scss
│ └── vux_theme.less
├── utils
│ ├── auth.js
│ ├── base.js
│ ├── card_template.js
│ ├── emoj.js
│ ├── global.js
│ ├── rem.js
│ └── request.js
├── views
│ ├── boss
│ │ ├── card.vue
│ │ └── index.vue
│ ├── card
│ │ ├── case.vue
│ │ ├── editCard.vue
│ │ ├── produce.vue
│ │ └── selfCard.vue
│ ├── client
│ │ ├── follow.vue
│ │ ├── followRecord.vue
│ │ ├── index.vue
│ │ ├── infor.vue
│ │ └── tag.vue
│ ├── contacts
│ │ ├── insertClient.vue
│ │ ├── insertTag.vue
│ │ └── updateTag.vue
│ ├── form
│ │ ├── formData.vue
│ │ ├── formDetail.vue
│ │ └── formList.vue
│ ├── home
│ │ ├── contact.vue
│ │ ├── index.vue
│ │ ├── main.vue
│ │ ├── message.vue
│ │ ├── news.vue
│ │ └── self.vue
│ ├── homeList
│ │ ├── callPhone.vue
│ │ ├── seeCard.vue
│ │ └── seeWebsite.vue
│ ├── messageManage
│ │ ├── IM.vue
│ │ ├── detail.vue
│ │ ├── index.vue
│ │ └── tpl.vue
│ ├── news
│ │ ├── companyDetails.vue
│ │ ├── detail.vue
│ │ ├── publish.vue
│ │ └── self.vue
│ ├── rank
│ │ ├── diagram.vue
│ │ ├── historyRank.vue
│ │ └── index.vue
│ ├── self
│ │ ├── calendar.vue
│ │ ├── calendarDetail.vue
│ │ ├── chatWindow.vue
│ │ ├── edit_list.vue
│ │ ├── insertCalendar.vue
│ │ ├── personal_label.vue
│ │ ├── qrcode.vue
│ │ ├── recommended_case.vue
│ │ ├── recommended_product.vue
│ │ ├── reportChart.vue
│ │ ├── sayHi.vue
│ │ ├── saySetting.vue
│ │ ├── setting.vue
│ │ ├── talkDetail.vue
│ │ ├── talkInsert.vue
│ │ ├── talkManage.vue
│ │ ├── talkUpdate.vue
│ │ └── updateCalendar.vue
│ ├── task
│ │ ├── addTask.vue
│ │ ├── taskCalendar.vue
│ │ ├── taskDetail.vue
│ │ └── taskList.vue
│ └── work
│ │ └── index.vue
└── warning.vue
├── static
├── .gitkeep
├── css
│ ├── base.css
│ ├── face.css
│ └── index_loading.css
└── image
│ ├── 0.png
│ ├── 10.png
│ ├── 11.png
│ ├── 12.png
│ ├── 13.png
│ ├── 14.png
│ ├── 15.png
│ ├── 16.png
│ ├── 17.png
│ ├── 18.png
│ ├── 19.png
│ ├── 4.png
│ ├── 5.png
│ ├── 6.png
│ ├── 7.png
│ ├── 8.png
│ ├── 9.png
│ ├── l.gif
│ ├── loading_1.png
│ ├── loading_2.png
│ ├── moren.jpg
│ ├── p_icon.jpg
│ └── qqface.png
└── test
├── e2e
├── custom-assertions
│ └── elementCount.js
├── nightwatch.conf.js
├── runner.js
└── specs
│ └── test.js
└── unit
├── .eslintrc
├── jest.conf.js
├── setup.js
└── specs
└── HelloWorld.spec.js
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-vue-jsx", "transform-runtime"],
12 | "env": {
13 | "test": {
14 | "presets": ["env", "stage-2"],
15 | "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /build/
2 | /config/
3 | /dist/
4 | /*.js
5 | /test/unit/coverage/
6 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // https://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parserOptions: {
6 | parser: 'babel-eslint'
7 | },
8 | env: {
9 | browser: true,
10 | },
11 | extends: [
12 | // https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
13 | // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
14 | 'plugin:vue/essential',
15 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md
16 | 'standard'
17 | ],
18 | // required to lint *.vue files
19 | plugins: [
20 | 'vue'
21 | ],
22 | // add your custom rules here
23 | rules: {
24 | // allow async-await
25 | 'generator-star-spacing': 'off',
26 | // allow debugger during development
27 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | /dist/
4 | .svn
5 | npm-debug.log*
6 | yarn-debug.log*
7 | yarn-error.log*
8 | /test/unit/coverage/
9 | /test/e2e/reports/
10 | selenium-debug.log
11 |
12 | # Editor directories and files
13 | .idea
14 | .vscode
15 | *.suo
16 | *.ntvs*
17 | *.njsproj
18 | *.sln
19 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-import": {},
6 | "postcss-url": {},
7 | // to edit target browsers: use "browserslist" field in package.json
8 | "autoprefixer": {}
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ai-card
2 |
3 | > A Vue.js project
4 |
5 | ## Build Setup
6 |
7 | ``` bash
8 | # install dependencies
9 | npm install
10 |
11 | # serve with hot reload at localhost:8080
12 | npm run dev
13 |
14 | # build for production with minification
15 | npm run build
16 |
17 | # build for production and view the bundle analyzer report
18 | npm run build --report
19 |
20 | # run unit tests
21 | npm run unit
22 |
23 | # run e2e tests
24 | npm run e2e
25 |
26 | # run all tests
27 | npm test
28 | ```
29 |
30 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
31 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | const ora = require('ora')
7 | const rm = require('rimraf')
8 | const path = require('path')
9 | const chalk = require('chalk')
10 | const webpack = require('webpack')
11 | const config = require('../config')
12 | const webpackConfig = require('./webpack.prod.conf')
13 |
14 | const spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, (err, stats) => {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | if (stats.hasErrors()) {
31 | console.log(chalk.red(' Build failed with errors.\n'))
32 | process.exit(1)
33 | }
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 | })
42 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const chalk = require('chalk')
3 | const semver = require('semver')
4 | const packageConfig = require('../package.json')
5 | const shell = require('shelljs')
6 |
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | }
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 |
30 | for (let i = 0; i < versionRequirements.length; i++) {
31 | const mod = versionRequirements[i]
32 |
33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34 | warnings.push(mod.name + ': ' +
35 | chalk.red(mod.currentVersion) + ' should be ' +
36 | chalk.green(mod.versionRequirement)
37 | )
38 | }
39 | }
40 |
41 | if (warnings.length) {
42 | console.log('')
43 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
44 | console.log()
45 |
46 | for (let i = 0; i < warnings.length; i++) {
47 | const warning = warnings[i]
48 | console.log(' ' + warning)
49 | }
50 |
51 | console.log()
52 | process.exit(1)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/build/logo.png
--------------------------------------------------------------------------------
/build/utils.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const config = require('../config')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
5 | const packageConfig = require('../package.json')
6 |
7 | exports.assetsPath = function (_path) {
8 | const assetsSubDirectory = process.env.NODE_ENV === 'production'
9 | ? config.build.assetsSubDirectory
10 | : config.dev.assetsSubDirectory
11 |
12 | return path.posix.join(assetsSubDirectory, _path)
13 | }
14 |
15 | exports.cssLoaders = function (options) {
16 | options = options || {}
17 |
18 | const cssLoader = {
19 | loader: 'css-loader',
20 | options: {
21 | sourceMap: options.sourceMap
22 | }
23 | }
24 |
25 | const postcssLoader = {
26 | loader: 'postcss-loader',
27 | options: {
28 | sourceMap: options.sourceMap
29 | }
30 | }
31 |
32 | // generate loader string to be used with extract text plugin
33 | function generateLoaders (loader, loaderOptions) {
34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
35 |
36 | if (loader) {
37 | loaders.push({
38 | loader: loader + '-loader',
39 | options: Object.assign({}, loaderOptions, {
40 | sourceMap: options.sourceMap
41 | })
42 | })
43 | }
44 |
45 | // Extract CSS when that option is specified
46 | // (which is the case during production build)
47 | if (options.extract) {
48 | return ExtractTextPlugin.extract({
49 | use: loaders,
50 | fallback: 'vue-style-loader'
51 | })
52 | } else {
53 | return ['vue-style-loader'].concat(loaders)
54 | }
55 | }
56 |
57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
58 | return {
59 | css: generateLoaders(),
60 | postcss: generateLoaders(),
61 | less: generateLoaders('less'),
62 | sass: generateLoaders('sass', { indentedSyntax: true }),
63 | scss: generateLoaders('sass'),
64 | stylus: generateLoaders('stylus'),
65 | styl: generateLoaders('stylus')
66 | }
67 | }
68 |
69 | // Generate loaders for standalone style files (outside of .vue)
70 | exports.styleLoaders = function (options) {
71 | const output = []
72 | const loaders = exports.cssLoaders(options)
73 |
74 | for (const extension in loaders) {
75 | const loader = loaders[extension]
76 | output.push({
77 | test: new RegExp('\\.' + extension + '$'),
78 | use: loader
79 | })
80 | }
81 |
82 | return output
83 | }
84 |
85 | exports.createNotifierCallback = () => {
86 | const notifier = require('node-notifier')
87 |
88 | return (severity, errors) => {
89 | if (severity !== 'error') return
90 |
91 | const error = errors[0]
92 | const filename = error.file && error.file.split('!').pop()
93 |
94 | notifier.notify({
95 | title: packageConfig.name,
96 | message: severity + ': ' + error.name,
97 | subtitle: filename || '',
98 | icon: path.join(__dirname, 'logo.png')
99 | })
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const config = require('../config')
4 | const isProduction = process.env.NODE_ENV === 'production'
5 | const sourceMapEnabled = isProduction
6 | ? config.build.productionSourceMap
7 | : config.dev.cssSourceMap
8 |
9 | module.exports = {
10 | loaders: utils.cssLoaders({
11 | sourceMap: sourceMapEnabled,
12 | extract: isProduction
13 | }),
14 | cssSourceMap: sourceMapEnabled,
15 | cacheBusting: config.dev.cacheBusting,
16 | transformToRequire: {
17 | video: ['src', 'poster'],
18 | source: 'src',
19 | img: 'src',
20 | image: 'xlink:href'
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const utils = require('./utils')
4 | const config = require('../config')
5 | const vueLoaderConfig = require('./vue-loader.conf')
6 | const vuxLoader = require('vux-loader')
7 |
8 | function resolve (dir) {
9 | return path.join(__dirname, '..', dir)
10 | }
11 |
12 | const createLintingRule = () => ({
13 | test: /\.(js|vue)$/,
14 | loader: 'eslint-loader',
15 | enforce: 'pre',
16 | include: [resolve('src'), resolve('test')],
17 | options: {
18 | formatter: require('eslint-friendly-formatter'),
19 | emitWarning: !config.dev.showEslintErrorsInOverlay
20 | }
21 | })
22 |
23 | const webpackConfig = {
24 | context: path.resolve(__dirname, '../'),
25 | entry: {
26 | app: './src/main.js'
27 | },
28 | output: {
29 | path: config.build.assetsRoot,
30 | filename: '[name].js',
31 | publicPath: process.env.NODE_ENV === 'production'
32 | ? config.build.assetsPublicPath
33 | : config.dev.assetsPublicPath
34 | },
35 | resolve: {
36 | extensions: ['.js', '.vue', '.json', '.less'],
37 | alias: {
38 | 'vue$': 'vue/dist/vue.esm.js',
39 | '@': resolve('src')
40 | }
41 | },
42 | module: {
43 | rules: [
44 | ...(config.dev.useEslint ? [createLintingRule()] : []),
45 | {
46 | test: /\.vue$/,
47 | loader: 'vue-loader',
48 | options: vueLoaderConfig
49 | },
50 | {
51 | test: /\.js$/,
52 | loader: 'babel-loader',
53 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
54 | },
55 | {
56 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
57 | loader: 'url-loader',
58 | options: {
59 | limit: 10000,
60 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
61 | }
62 | },
63 | {
64 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
65 | loader: 'url-loader',
66 | options: {
67 | limit: 10000,
68 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
69 | }
70 | },
71 | {
72 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
73 | loader: 'url-loader',
74 | options: {
75 | limit: 10000,
76 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
77 | }
78 | }
79 | ]
80 | },
81 | node: {
82 | // prevent webpack from injecting useless setImmediate polyfill because Vue
83 | // source contains it (although only uses it if it's native).
84 | setImmediate: false,
85 | // prevent webpack from injecting mocks to Node native modules
86 | // that does not make sense for the client
87 | dgram: 'empty',
88 | fs: 'empty',
89 | net: 'empty',
90 | tls: 'empty',
91 | child_process: 'empty'
92 | }
93 | }
94 | module.exports = vuxLoader.merge(webpackConfig, { plugins: ['vux-ui', 'progress-bar', 'duplicate-style', {name: 'less-theme', path: 'src/styles/vux_theme.less'}] })
95 |
--------------------------------------------------------------------------------
/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const webpack = require('webpack')
4 | const config = require('../config')
5 | const merge = require('webpack-merge')
6 | const path = require('path')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 | const CopyWebpackPlugin = require('copy-webpack-plugin')
9 | const HtmlWebpackPlugin = require('html-webpack-plugin')
10 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
11 | const portfinder = require('portfinder')
12 |
13 | const HOST = process.env.HOST
14 | const PORT = process.env.PORT && Number(process.env.PORT)
15 |
16 | const devWebpackConfig = merge(baseWebpackConfig, {
17 | module: {
18 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
19 | },
20 | // cheap-module-eval-source-map is faster for development
21 | devtool: config.dev.devtool,
22 |
23 | // these devServer options should be customized in /config/index.js
24 | devServer: {
25 | clientLogLevel: 'warning',
26 | historyApiFallback: {
27 | rewrites: [
28 | { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }
29 | ]
30 | },
31 | hot: true,
32 | contentBase: false, // since we use CopyWebpackPlugin.
33 | compress: true,
34 | host: HOST || config.dev.host,
35 | port: PORT || config.dev.port,
36 | open: config.dev.autoOpenBrowser,
37 | overlay: config.dev.errorOverlay
38 | ? { warnings: false, errors: true }
39 | : false,
40 | publicPath: config.dev.assetsPublicPath,
41 | proxy: config.dev.proxyTable,
42 | quiet: true, // necessary for FriendlyErrorsPlugin
43 | watchOptions: {
44 | poll: config.dev.poll
45 | }
46 | },
47 | plugins: [
48 | new webpack.DefinePlugin({
49 | 'process.env': require('../config/dev.env')
50 | }),
51 | new webpack.HotModuleReplacementPlugin(),
52 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
53 | new webpack.NoEmitOnErrorsPlugin(),
54 | // https://github.com/ampedandwired/html-webpack-plugin
55 | new HtmlWebpackPlugin({
56 | filename: 'index.html',
57 | template: 'index.html',
58 | inject: true
59 | }),
60 | // copy custom static assets
61 | new CopyWebpackPlugin([
62 | {
63 | from: path.resolve(__dirname, '../static'),
64 | to: config.dev.assetsSubDirectory,
65 | ignore: ['.*']
66 | }
67 | ])
68 | ]
69 | })
70 |
71 | module.exports = new Promise((resolve, reject) => {
72 | portfinder.basePort = process.env.PORT || config.dev.port
73 | portfinder.getPort((err, port) => {
74 | if (err) {
75 | reject(err)
76 | } else {
77 | // publish the new Port, necessary for e2e tests
78 | process.env.PORT = port
79 | // add port to devServer config
80 | devWebpackConfig.devServer.port = port
81 |
82 | // Add FriendlyErrorsPlugin
83 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
84 | compilationSuccessInfo: {
85 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`]
86 | },
87 | onErrors: config.dev.notifyOnErrors
88 | ? utils.createNotifierCallback()
89 | : undefined
90 | }))
91 |
92 | resolve(devWebpackConfig)
93 | }
94 | })
95 | })
96 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"',
7 | BASE_API: '"http://jiatui.api.com"'
8 | })
9 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // Template version: 1.3.1
3 | // see http://vuejs-templates.github.io/webpack for documentation.
4 |
5 | const path = require('path')
6 |
7 | module.exports = {
8 | dev: {
9 |
10 | // Paths
11 | assetsSubDirectory: 'static',
12 | assetsPublicPath: '/',
13 | proxyTable: {
14 | '/index.php': {
15 | //target: 'https://tyunzhentui.71360.com',
16 | target: 'https://zhentuityun.71360.com',
17 | changeOrigin: true,
18 | pathRewrite: {
19 | '^/index.php': ''
20 | }
21 | }
22 | },
23 | // token: '7%21%C2n%7D%0B%7E%81%8E%88%A7%3C%7C%D3%2A%95i%BB%AFG%F6%0F%B6%9D%DD%FC%9E%86-Y%96%3A%C9%93%8D%FD%E6%C9%04%8C%8F%D2j%F4%F2%B3%A0BU%AD%DA%81%8D%C4%CD%07.qGG%C9%16FN',
24 | token: 'TnlIQ2JuMExmb0dMSVFnRytGVmRuR203cjBmMkQ3YWQzZnllaGkxWmxqclM0bC9SK1UyNDVvL1NhdlR5czZCQ1ZhM2FnWTNFelFjdWNVZEh5UlpHVGc9PQ%3D%3D',
25 |
26 | // Various Dev Server settings
27 | host: '0.0.0.0', // can be overwritten by process.env.HOST
28 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
29 | autoOpenBrowser: true,
30 | errorOverlay: true,
31 | notifyOnErrors: true,
32 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
33 |
34 | // Use Eslint Loader?
35 | // If true, your code will be linted during bundling and
36 | // linting errors and warnings will be shown in the console.
37 | useEslint: true,
38 | // If true, eslint errors and warnings will also be shown in the error overlay
39 | // in the browser.
40 | showEslintErrorsInOverlay: false,
41 |
42 | /**
43 | * Source Maps
44 | */
45 |
46 | // https://webpack.js.org/configuration/devtool/#development
47 | devtool: 'cheap-module-eval-source-map',
48 |
49 | // If you have problems debugging vue-files in devtools,
50 | // set this to false - it *may* help
51 | // https://vue-loader.vuejs.org/en/options.html#cachebusting
52 | cacheBusting: true,
53 |
54 | cssSourceMap: true
55 | },
56 |
57 | build: {
58 | // Template for index.html
59 | index: path.resolve(__dirname, '../dist/index.html'),
60 |
61 | // Paths
62 | assetsRoot: path.resolve(__dirname, '../dist'),
63 | assetsSubDirectory: 'static',
64 | assetsPublicPath: './',
65 |
66 | /**
67 | * Source Maps
68 | */
69 |
70 | productionSourceMap: true,
71 | // https://webpack.js.org/configuration/devtool/#production
72 | devtool: '#source-map',
73 |
74 | // Gzip off by default as many popular static hosts such as
75 | // Surge or Netlify already gzip all static assets for you.
76 | // Before setting to `true`, make sure to:
77 | // npm install --save-dev compression-webpack-plugin
78 | productionGzip: false,
79 | productionGzipExtensions: ['js', 'css'],
80 |
81 | // Run the build command with an extra argument to
82 | // View the bundle analyzer report after build finishes:
83 | // `npm run build --report`
84 | // Set to `true` or `false` to always turn it on or off
85 | bundleAnalyzerReport: process.env.npm_config_report
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"',
4 | BASE_API: '"http://192.168.40.66:8080"'
5 | }
6 |
--------------------------------------------------------------------------------
/config/test.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const devEnv = require('./dev.env')
4 |
5 | module.exports = merge(devEnv, {
6 | NODE_ENV: '"testing"'
7 | })
8 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 智能名片
8 | <% if(process.env.NODE_ENV === 'development'){%>
9 |
10 | <% }else{ %>
11 |
12 | <% } %>
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | <% if(process.env.NODE_ENV === 'development'){%>
23 |

24 |

25 | <% }else{ %>
26 |

27 |

28 | <% } %>
29 |
30 |
首次加载稍慢
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ai-card",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "kaker <614170417@qq.com>",
6 | "private": true,
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 | "start": "npm run dev",
10 | "unit": "jest --config test/unit/jest.conf.js --coverage",
11 | "e2e": "node test/e2e/runner.js",
12 | "test": "npm run unit && npm run e2e",
13 | "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs",
14 | "build": "node build/build.js"
15 | },
16 | "dependencies": {
17 | "axios": "^0.18.0",
18 | "echarts": "^4.1.0",
19 | "html2canvas": "^1.0.0-alpha.12",
20 | "js-cookie": "^2.2.0",
21 | "upng-js": "^2.1.0",
22 | "vconsole": "^3.2.0",
23 | "vue": "^2.5.2",
24 | "vue-cropperjs": "^2.2.2",
25 | "vue-router": "^3.0.1",
26 | "vuex": "^3.0.1",
27 | "vux": "^2.9.2"
28 | },
29 | "devDependencies": {
30 | "autoprefixer": "^7.1.2",
31 | "babel-core": "^6.22.1",
32 | "babel-eslint": "^8.2.1",
33 | "babel-helper-vue-jsx-merge-props": "^2.0.3",
34 | "babel-jest": "^21.0.2",
35 | "babel-loader": "^7.1.1",
36 | "babel-plugin-dynamic-import-node": "^1.2.0",
37 | "babel-plugin-syntax-jsx": "^6.18.0",
38 | "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
39 | "babel-plugin-transform-runtime": "^6.22.0",
40 | "babel-plugin-transform-vue-jsx": "^3.5.0",
41 | "babel-preset-env": "^1.3.2",
42 | "babel-preset-stage-2": "^6.22.0",
43 | "babel-register": "^6.22.0",
44 | "chalk": "^2.0.1",
45 | "chromedriver": "^2.27.2",
46 | "copy-webpack-plugin": "^4.0.1",
47 | "cross-spawn": "^5.0.1",
48 | "css-loader": "^0.28.0",
49 | "eslint": "^4.15.0",
50 | "eslint-config-standard": "^10.2.1",
51 | "eslint-friendly-formatter": "^3.0.0",
52 | "eslint-loader": "^1.7.1",
53 | "eslint-plugin-import": "^2.7.0",
54 | "eslint-plugin-node": "^5.2.0",
55 | "eslint-plugin-promise": "^3.4.0",
56 | "eslint-plugin-standard": "^3.0.1",
57 | "eslint-plugin-vue": "^4.0.0",
58 | "extract-text-webpack-plugin": "^3.0.0",
59 | "file-loader": "^1.1.4",
60 | "friendly-errors-webpack-plugin": "^1.6.1",
61 | "html-webpack-plugin": "^2.30.1",
62 | "jest": "^22.0.4",
63 | "jest-serializer-vue": "^0.3.0",
64 | "less": "^3.8.1",
65 | "less-loader": "^4.1.0",
66 | "nightwatch": "^0.9.12",
67 | "node-notifier": "^5.1.2",
68 | "node-sass": "^4.9.3",
69 | "optimize-css-assets-webpack-plugin": "^3.2.0",
70 | "ora": "^1.2.0",
71 | "portfinder": "^1.0.13",
72 | "postcss-import": "^11.0.0",
73 | "postcss-loader": "^2.0.8",
74 | "postcss-url": "^7.2.1",
75 | "rimraf": "^2.6.0",
76 | "sass-loader": "^7.1.0",
77 | "selenium-server": "^3.0.1",
78 | "semver": "^5.3.0",
79 | "shelljs": "^0.7.6",
80 | "uglifyjs-webpack-plugin": "^1.1.1",
81 | "url-loader": "^0.5.8",
82 | "vue-jest": "^1.0.2",
83 | "vue-loader": "^13.3.0",
84 | "vue-style-loader": "^3.0.1",
85 | "vue-template-compiler": "^2.5.2",
86 | "vux-loader": "^1.2.9",
87 | "webpack": "^3.6.0",
88 | "webpack-bundle-analyzer": "^2.9.0",
89 | "webpack-dev-server": "^2.9.1",
90 | "webpack-merge": "^4.1.0"
91 | },
92 | "engines": {
93 | "node": ">= 6.0.0",
94 | "npm": ">= 3.0.0"
95 | },
96 | "browserslist": [
97 | "> 1%",
98 | "last 2 versions",
99 | "not ie <= 8"
100 | ]
101 | }
102 |
--------------------------------------------------------------------------------
/src/api/boss.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // Boss雷达-总览
4 | export function bossOverview (listQuery) {
5 | return request({
6 | url: '/ai/boss/index',
7 | method: 'GET',
8 | params: {
9 | dept: listQuery.dept,
10 | active: listQuery.active,
11 | time_type: listQuery.time_type,
12 | user_type: listQuery.user_type
13 | }
14 | })
15 | }
16 |
17 | // Boss雷达-总览-总数
18 | export function bossOverviewTotal (listQuery) {
19 | return request({
20 | url: '/ai/boss/index_data',
21 | method: 'GET',
22 | params: {
23 | dept: listQuery.dept,
24 | time_type: listQuery.time_type
25 | }
26 | })
27 | }
28 |
29 | // Boss雷达-总览-客户统计
30 | export function customerStatistics (listQuery) {
31 | return request({
32 | url: '/ai/boss/index_user',
33 | method: 'GET',
34 | params: {
35 | dept: listQuery.dept,
36 | type: listQuery.type,
37 | user_type: listQuery.user_type
38 | }
39 | })
40 | }
41 |
42 | // Boss雷达-AI分析
43 | export function AIAnalyse (listQuery) {
44 | return request({
45 | url: '/ai/boss/index',
46 | method: 'GET',
47 | params: {
48 | dept: listQuery.dept,
49 | active: listQuery.active,
50 | keywords: listQuery.keywords
51 | }
52 | })
53 | }
54 | // Boss雷达-AI分析详情
55 | export function AIAnalyseDetail (listQuery) {
56 | return request({
57 | url: '/ai/boss/read',
58 | method: 'GET',
59 | params: {
60 | type: listQuery.type,
61 | date_type: listQuery.date_type,
62 | time_type: listQuery.time_type,
63 | employ_id: listQuery.employ_id
64 | }
65 | })
66 | }
67 | // Boss雷达-销售排行
68 | export function salesRanking (listQuery) {
69 | return request({
70 | url: '/ai/boss/index',
71 | method: 'get',
72 | params: {
73 | dept: listQuery.dept,
74 | active: listQuery.active,
75 | type: listQuery.type,
76 | user_type: listQuery.user_type,
77 | interaction: listQuery.interaction,
78 | probability_type: listQuery.probability_type,
79 | interaction_time: listQuery.interaction_time,
80 | keywords: listQuery.keywords
81 | }
82 | })
83 | }
84 |
85 | // 获取部门分类&获取话术分类列表,根据type的不同:dept:部门 verbal:话术
86 | export function getTypelist (deptType) {
87 | return request({
88 | url: '/ai/Category/index?active=6&type=' + deptType,
89 | method: 'GET'
90 | })
91 | }
92 |
--------------------------------------------------------------------------------
/src/api/calendar.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function calendarSave (data) {
4 | // 新建日程
5 | return request({
6 | url: '/ai/calendar/save',
7 | method: 'post',
8 | data: data
9 | })
10 | }
11 |
12 | export function calendarList (data) {
13 | // 日程列表
14 | return request({
15 | url: '/ai/calendar/index',
16 | method: 'get',
17 | params: data
18 | })
19 | }
20 | export function getDays (time) {
21 | // 当月有日程日期数组集合
22 | return request({
23 | url: '/ai/calendar/getCalendarDays?month=' + time,
24 | method: 'get'
25 | })
26 | }
27 | export function calendarType () {
28 | // 日程列表类型
29 | return request({
30 | url: '/ai/calendar/getType',
31 | method: 'get'
32 | })
33 | }
34 |
35 | export function calendarRead (data) {
36 | // 日程详情
37 | return request({
38 | url: '/ai/calendar/read',
39 | method: 'get',
40 | params: data
41 | })
42 | }
43 |
44 | export function calendarUpdate (data) {
45 | // 编辑日程
46 | return request({
47 | url: '/ai/calendar/update',
48 | method: 'post',
49 | data: data
50 | })
51 | }
52 |
53 | export function calendarDelete (data) {
54 | // 删除日程
55 | return request({
56 | url: '/ai/calendar/delete',
57 | method: 'post',
58 | data: data
59 | })
60 | }
61 |
62 | export function employsetUpdate (data) {
63 | // 更新欢迎语设置
64 | return request({
65 | url: '/ai/employset/update',
66 | method: 'post',
67 | data: data
68 | })
69 | }
70 |
71 | export function employsetRead (data) {
72 | // 读取欢迎语设置
73 | return request({
74 | url: '/ai/employset/read',
75 | method: 'get',
76 | params: data
77 | })
78 | }
79 |
80 | export function employsetDelete (data) {
81 | // 欢迎语设置标签删除
82 | return request({
83 | url: '/ai/EmploySet/delete',
84 | method: 'post',
85 | data: data
86 | })
87 | }
88 |
--------------------------------------------------------------------------------
/src/api/card.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function wxConfig (url) {
4 | const data = {
5 | url: url
6 | }
7 | // 企业微信配置
8 | return request({
9 | url: '/ai/weworkapi/getConfigData',
10 | method: 'post',
11 | data
12 | })
13 | }
14 |
15 | export function cardRead () {
16 | // 我的名片详情
17 | return request({
18 | url: '/ai/card/read',
19 | method: 'get'
20 | })
21 | }
22 |
23 | export function updateCard (data) {
24 | // 编辑名片详情
25 | return request({
26 | url: '/ai/card/update',
27 | method: 'post',
28 | data: data
29 | })
30 | }
31 |
32 | export function produceList (data) {
33 | // 编辑名片详情
34 | return request({
35 | url: '/ai/Scratch/webClient',
36 | method: 'post',
37 | data: data
38 | })
39 | }
40 |
41 | export function getPosterImg () {
42 | // 名片海报
43 | return request({
44 | url: '/ai/employSet/getPosterImg',
45 | method: 'get'
46 | })
47 | }
48 |
49 | export function cardTagDelete (data) {
50 | // 删除名片上的标签
51 | return request({
52 | url: '/ai/card/employ_tag_del',
53 | method: 'post',
54 | data: data
55 | })
56 | }
57 |
58 | export function cardTagInsert (data) {
59 | // 增加名片上的标签
60 | return request({
61 | url: '/ai/card/set_employ_tag',
62 | method: 'post',
63 | data: data
64 | })
65 | }
66 |
67 | export function employgoodsIndex (data) {
68 | // 产品列表
69 | return request({
70 | url: '/ai/employgoods/index',
71 | method: 'get',
72 | params: data
73 | })
74 | }
75 |
76 | export function employgoodsSave (data) {
77 | // 推荐产品
78 | return request({
79 | url: '/ai/employgoods/save',
80 | method: 'post',
81 | data: data
82 | })
83 | }
84 |
85 | export function employgoodsDetele (data) {
86 | // 取消推荐产品
87 | return request({
88 | url: '/ai/employgoods/delete',
89 | method: 'post',
90 | data: data
91 | })
92 | }
93 |
94 | export function employcaseIndex (data) {
95 | // 案例列表
96 | return request({
97 | url: '/ai/employcase/index',
98 | method: 'get',
99 | params: data
100 | })
101 | }
102 |
103 | export function employcaseSave (data) {
104 | // 推荐案例
105 | return request({
106 | url: '/ai/employcase/save',
107 | method: 'post',
108 | data: data
109 | })
110 | }
111 |
112 | export function employcaseDetele (data) {
113 | // 取消推荐案例
114 | return request({
115 | url: '/ai/employcase/delete',
116 | method: 'post',
117 | data: data
118 | })
119 | }
120 |
121 | export function webClient (data) {
122 | // 产品分类
123 | return request({
124 | url: '/ai/Scratch/webClient',
125 | method: 'post',
126 | data: data
127 | })
128 | }
129 | // 上传录音
130 | export function uploadMedia (data) {
131 | // 推荐产品
132 | return request({
133 | url: '/ai/upload/uploadAudio?media_id=' + data,
134 | method: 'get'
135 | })
136 | }
137 |
--------------------------------------------------------------------------------
/src/api/chart.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function getMyNums (data) {
4 | // 我的报表数据
5 | return request({
6 | url: '/ai/EmploySet/getMyNums',
7 | method: 'get',
8 | params: data
9 | })
10 | }
11 |
12 | export function getMyChart () {
13 | // 我的报表图表
14 | return request({
15 | url: '/ai/EmploySet/getMyNumsOne',
16 | method: 'get'
17 | })
18 | }
19 |
20 | //不在线
21 | export function not_online (data) {
22 | // 我的报表图表
23 | return request({
24 | url: '/ai/Weworkapi/setWechatMessage',
25 | method: 'post',
26 | data:data
27 | })
28 | }
29 |
30 | //每条推送
31 | export function one_chat (data) {
32 | return request({
33 | url: '/ai/Customerchat/save',
34 | method: 'post',
35 | data:data
36 | })
37 | }
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/src/api/contact.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function customerList (data) {
4 | // 客户列表
5 | return request({
6 | url: '/ai/Customer/index',
7 | method: 'get',
8 | params: data
9 | })
10 | }
11 |
12 | export function customerTagList () {
13 | // 客户标签列表
14 | return request({
15 | url: '/ai/Customertag/tagList',
16 | method: 'get'
17 | })
18 | }
19 |
20 | export function insertCustomerTag (data) {
21 | // 新增客户标签
22 | return request({
23 | url: '/ai/Customertag/save',
24 | method: 'post',
25 | data: data
26 | })
27 | }
28 |
29 | export function getCustomerTagEdit (data) {
30 | // 查看客户标签详情
31 | return request({
32 | url: '/ai/Customertag/edit',
33 | method: 'get',
34 | params: data
35 | })
36 | }
37 |
38 | export function updateCustomerTag (data) {
39 | // 更新客户标签详情
40 | return request({
41 | url: '/ai/Customertag/update',
42 | method: 'POST',
43 | data: data
44 | })
45 | }
46 |
47 | export function deleteCustomerTag (data) {
48 | // 标签删除客户
49 | return request({
50 | url: '/ai/Customertag/delete',
51 | method: 'POST',
52 | data: data
53 | })
54 | }
55 |
56 | export function del_label (data) {
57 | // 标签删除客户
58 | return request({
59 | url: '/ai/Customertag/delTag',
60 | method: 'POST',
61 | data: data
62 | })
63 | }
--------------------------------------------------------------------------------
/src/api/customer.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function customerRead (data) {
4 | // (客户详情)资料读取
5 | return request({
6 | url: '/ai/Customer/read',
7 | method: 'get',
8 | params: data
9 | })
10 | }
11 |
12 | export function customerSetTurnover (data) {
13 | // (客户详情)成交率设置
14 | return request({
15 | url: '/ai/Customer/setTurnover',
16 | method: 'post',
17 | data: data
18 | })
19 | }
20 |
21 | export function customerSetTurnoverDate (data) {
22 | // (客户详情)成交日期设置
23 | return request({
24 | url: '/ai/Customer/setTurnoverDate',
25 | method: 'post',
26 | data: data
27 | })
28 | }
29 |
30 | export function customerUpdate (data) {
31 | // (客户详情)资料更新
32 | return request({
33 | url: '/ai/Customer/update',
34 | method: 'post',
35 | data: data
36 | })
37 | }
38 |
39 | export function customerEdit (data) {
40 | // (客户详情)资料获取
41 | return request({
42 | url: '/ai/Customer/edit',
43 | method: 'get',
44 | params: data
45 | })
46 | }
47 |
48 | export function customerTag (data) {
49 | // (客户详情)客户标签
50 | return request({
51 | url: '/ai/Customertag/index',
52 | method: 'get',
53 | params: data
54 | })
55 | }
56 |
57 | export function followCreate () {
58 | // 跟进记录添加(常用术语)
59 | return request({
60 | url: '/ai/Follow/create',
61 | method: 'get'
62 | })
63 | }
64 |
65 | export function followSave (data) {
66 | // 跟进记录添加(常用术语)
67 | return request({
68 | url: '/ai/Follow/save',
69 | method: 'post',
70 | data: data
71 | })
72 | }
73 |
74 | export function visitIndex (data) {
75 | // 指定客户互动
76 | return request({
77 | url: '/ai/Visit/index',
78 | method: 'post',
79 | params: data
80 | })
81 | }
82 |
83 | export function followIndex (data) {
84 | // 指定客户跟进记录
85 | return request({
86 | url: '/ai/Follow/index',
87 | method: 'post',
88 | data
89 | })
90 | }
91 |
92 | export function setBirthdayAdd (data) {
93 | // 同步客户生日
94 | return request({
95 | url: '/ai/Calendar/setBirthdayAdd',
96 | method: 'post',
97 | data: data
98 | })
99 | }
100 |
101 | export function birthdayDell (data) {
102 | // 删除同步客户生日
103 | return request({
104 | url: '/ai/Calendar/birthdayDell',
105 | method: 'post',
106 | data: data
107 | })
108 | }
109 |
--------------------------------------------------------------------------------
/src/api/dynamic.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 初始化获取列表
4 | export function init_list (data) {
5 | return request({
6 | url: '/ai/Dynamic/index',
7 | method: 'get',
8 | params: data
9 | })
10 | }
11 |
12 | // 点赞
13 | export function click_good (data) {
14 | return request({
15 | url: '/ai/dynamic/praise',
16 | method: 'get',
17 | params: data
18 | })
19 | }
20 |
21 | export function to_comment (data) {
22 | return request({
23 | url: '/ai/comment/save',
24 | method: 'post',
25 | data: data
26 | })
27 | }
28 |
29 | // 发布
30 | export function to_release (data) {
31 | return request({
32 | url: '/ai/dynamic/save',
33 | method: 'post',
34 | data: data
35 | })
36 | }
37 |
38 | //公司详情
39 | export function to_companyDetails (data) {
40 | return request({
41 | url: '/ai/Dynamic/read',
42 | method: 'get',
43 | params: data
44 | })
45 | }
46 |
47 | //动态详情
48 | export function dynamic_details (data) {
49 | return request({
50 | url: '/ai/Dynamic/read',
51 | method: 'get',
52 | params: data
53 | })
54 | }
55 |
56 | //删除评论
57 | export function del_comment (data) {
58 | return request({
59 | url: '/ai/Comment/delete',
60 | method: 'post',
61 | data: data
62 | })
63 | }
64 |
65 | //删除动态
66 | export function del_dynamic (data) {
67 | return request({
68 | url: '/ai/dynamic/delete',
69 | method: 'post',
70 | data: data
71 | })
72 | }
--------------------------------------------------------------------------------
/src/api/footprint.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | // 初始化获取时间
4 | export function init_list (data) {
5 | return request({
6 | url: '/ai/Visit/index',
7 | method: 'get',
8 | params: data
9 | })
10 | }
11 |
12 |
--------------------------------------------------------------------------------
/src/api/form.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function getFormList (listQuery) {
4 | // 表单列表
5 | return request({
6 | url: '/ai/Form/getlist',
7 | method: 'get',
8 | params: {
9 | page: listQuery.page,
10 | limit: listQuery.limit,
11 | searchKey: listQuery.searchKey,
12 | uid: listQuery.uid
13 | }
14 | })
15 | }
16 |
17 | export function getMessageFormList (listQuery) {
18 | // 留言列表
19 | return request({
20 | url: '/ai/Form/msgList',
21 | method: 'get',
22 | params: {
23 | id: listQuery.id,
24 | page: listQuery.page,
25 | limit: listQuery.limit,
26 | uid: listQuery.uid
27 | }
28 | })
29 | }
30 |
31 | export function getMessageFormDetail (id) {
32 | // 留言表单详情
33 | return request({
34 | url: '/ai/Form/getMsg?id=' + id,
35 | method: 'get'
36 | })
37 | }
38 |
--------------------------------------------------------------------------------
/src/api/login.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function login (data) {
4 | return request({
5 | url: '/comm/login',
6 | method: 'post',
7 | data: data
8 | })
9 | }
10 |
11 | export function getInfo (token) {
12 | return request({
13 | url: '/user/info',
14 | method: 'get',
15 | params: { token }
16 | })
17 | }
18 |
19 | export function logout () {
20 | return request({
21 | url: '/user/logout',
22 | method: 'post'
23 | })
24 | }
25 |
26 |
27 |
--------------------------------------------------------------------------------
/src/api/message.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function get_users (data) {
4 | return request({
5 | url: '/ai/user/getInfoUser',
6 | method: 'post',
7 | data
8 | })
9 | }
10 |
11 | //获取消息列表
12 | export function get_list () {
13 | return request({
14 | url: '/ai/Customerchat/index',
15 | method: 'get',
16 | })
17 | }
18 |
19 | //已读
20 | export function look (data) {
21 | return request({
22 | url: '/ai/Customerchat/read',
23 | method: 'get',
24 | params:data
25 | })
26 | }
--------------------------------------------------------------------------------
/src/api/rank.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function getRankList (listQuery) {
4 | let data = {
5 | day: listQuery.day,
6 | page: listQuery.page,
7 | pagesize: listQuery.pagesize
8 | }
9 | // 每日排行
10 | return request({
11 | url: '/ai/rank',
12 | method: 'POST',
13 | data
14 | })
15 | }
16 |
17 | export function getRankDetail (eid) {
18 | let data = {
19 | eid: eid
20 | }
21 | // 排行详细
22 | return request({
23 | url: '/ai/rank/chart',
24 | method: 'POST',
25 | data
26 | })
27 | }
28 |
29 | export function getMyRank () {
30 | // 用户排名
31 | return request({
32 | url: '/ai/rank/myrank',
33 | method: 'get'
34 | })
35 | }
36 |
--------------------------------------------------------------------------------
/src/api/talk.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function talkGroup (data) {
4 | // 话术分组
5 | return request({
6 | url: '/ai/Category/index',
7 | method: 'get',
8 | params: data
9 | })
10 | }
11 |
12 | export function talkList (data) {
13 | // 话术列表
14 | return request({
15 | url: '/ai/Verbal/index',
16 | method: 'get',
17 | params: data
18 | })
19 | }
20 |
21 | export function talkSave (data) {
22 | // 新增话术
23 | return request({
24 | url: '/ai/Verbal/save',
25 | method: 'post',
26 | data: data
27 | })
28 | }
29 |
30 | export function talkDelete (data) {
31 | // 删除话术
32 | return request({
33 | url: '/ai/Verbal/delete',
34 | method: 'post',
35 | data: data
36 | })
37 | }
38 |
39 | export function talkEdit (data) {
40 | // 编辑话术详情
41 | return request({
42 | url: '/ai/Verbal/edit',
43 | method: 'get',
44 | params: data
45 | })
46 | }
47 |
48 | export function talkUpdate (data) {
49 | // 编辑话术详情
50 | return request({
51 | url: '/ai/Verbal/update',
52 | method: 'post',
53 | data: data
54 | })
55 | }
56 |
--------------------------------------------------------------------------------
/src/api/task.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function addOrEditTask (data) {
4 | // 新增或编辑任务
5 | return request({
6 | url: '/ai/calendar/save',
7 | method: 'post',
8 | data: data
9 | })
10 | }
11 |
12 | export function getTaskList (data) {
13 | // 任务列表
14 | return request({
15 | url: '/ai/calendar/getlist',
16 | method: 'post',
17 | data
18 | })
19 | }
20 |
21 | export function deleteTask (data) {
22 | // 删除任务
23 | return request({
24 | url: '/ai/calendar/remove',
25 | method: 'post',
26 | data: data
27 | })
28 | }
29 |
30 | export function getTaskDetail (id) {
31 | // 任务详情
32 | return request({
33 | url: '/ai/calendar/getInfo?id=' + id,
34 | method: 'get'
35 | })
36 | }
37 |
38 | export function getCalendarDays (time) {
39 | // 当月有任务日期数组集合
40 | return request({
41 | url: '/ai/Calendar/getCalendarDays?month=' + time,
42 | method: 'get'
43 | })
44 | }
45 |
46 | export function signCompletedTask (listQuery) {
47 | // 完成任务
48 | return request({
49 | url: '/ai/calendar/finish',
50 | method: 'get',
51 | params: {
52 | id: listQuery.id,
53 | status: listQuery.status
54 | }
55 | })
56 | }
57 |
58 | export function signStarTask (listQuery) {
59 | // 标星任务
60 | return request({
61 | url: '/ai/Calendar/star',
62 | method: 'get',
63 | params: {
64 | id: listQuery.id,
65 | star: listQuery.star
66 | }
67 | })
68 | }
69 |
--------------------------------------------------------------------------------
/src/api/upload_file.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function upload_img (fd) {
4 | return request({
5 | url: '/api/Upload/index',
6 | method: 'post',
7 | data:fd
8 | })
9 | }
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/api/user_info.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 |
3 | export function get_user_info () {
4 | return request({
5 | url: '/ai/card/read',
6 | method: 'post',
7 | })
8 | }
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/api/work.js:
--------------------------------------------------------------------------------
1 | import request from '@/utils/request'
2 | export function get_list () {
3 | return request({
4 | url: '/ai/Dc/workList',
5 | method: 'get'
6 | })
7 | }
8 |
9 | export function save (data) {
10 |
11 | return request({
12 | url: '/ai/Dc/saveWorkChoose',
13 | method: 'post',
14 | data
15 | })
16 | }
--------------------------------------------------------------------------------
/src/assets/audio/audio.mp3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/audio/audio.mp3
--------------------------------------------------------------------------------
/src/assets/audio/audio.ogg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/audio/audio.ogg
--------------------------------------------------------------------------------
/src/assets/audio/test.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/audio/test.wav
--------------------------------------------------------------------------------
/src/assets/card/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/1.png
--------------------------------------------------------------------------------
/src/assets/card/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/10.png
--------------------------------------------------------------------------------
/src/assets/card/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/11.png
--------------------------------------------------------------------------------
/src/assets/card/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/12.png
--------------------------------------------------------------------------------
/src/assets/card/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/13.png
--------------------------------------------------------------------------------
/src/assets/card/14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/14.png
--------------------------------------------------------------------------------
/src/assets/card/15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/15.png
--------------------------------------------------------------------------------
/src/assets/card/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/16.png
--------------------------------------------------------------------------------
/src/assets/card/17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/17.png
--------------------------------------------------------------------------------
/src/assets/card/18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/18.png
--------------------------------------------------------------------------------
/src/assets/card/19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/19.png
--------------------------------------------------------------------------------
/src/assets/card/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/2.png
--------------------------------------------------------------------------------
/src/assets/card/20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/20.png
--------------------------------------------------------------------------------
/src/assets/card/21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/21.png
--------------------------------------------------------------------------------
/src/assets/card/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/3.png
--------------------------------------------------------------------------------
/src/assets/card/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/4.png
--------------------------------------------------------------------------------
/src/assets/card/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/5.png
--------------------------------------------------------------------------------
/src/assets/card/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/6.png
--------------------------------------------------------------------------------
/src/assets/card/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/7.png
--------------------------------------------------------------------------------
/src/assets/card/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/9.png
--------------------------------------------------------------------------------
/src/assets/card/chart1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/chart1.png
--------------------------------------------------------------------------------
/src/assets/card/chart2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/chart2.png
--------------------------------------------------------------------------------
/src/assets/card/chart3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/chart3.png
--------------------------------------------------------------------------------
/src/assets/card/chart4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/chart4.png
--------------------------------------------------------------------------------
/src/assets/card/comm.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/comm.jpg
--------------------------------------------------------------------------------
/src/assets/card/show_audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/show_audio.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/1.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/2.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/3.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/4.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/5.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/6.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/7.png
--------------------------------------------------------------------------------
/src/assets/card/thumbnail/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/card/thumbnail/8.png
--------------------------------------------------------------------------------
/src/assets/icon/123_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/123_03.png
--------------------------------------------------------------------------------
/src/assets/icon/123_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/123_07.png
--------------------------------------------------------------------------------
/src/assets/icon/123_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/123_09.png
--------------------------------------------------------------------------------
/src/assets/icon/33_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/33_03.png
--------------------------------------------------------------------------------
/src/assets/icon/33_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/33_06.png
--------------------------------------------------------------------------------
/src/assets/icon/33_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/33_08.png
--------------------------------------------------------------------------------
/src/assets/icon/PingLun.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/PingLun.jpg
--------------------------------------------------------------------------------
/src/assets/icon/QR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/QR.png
--------------------------------------------------------------------------------
/src/assets/icon/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/add.png
--------------------------------------------------------------------------------
/src/assets/icon/audio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/audio.png
--------------------------------------------------------------------------------
/src/assets/icon/bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/bar.png
--------------------------------------------------------------------------------
/src/assets/icon/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/calendar.png
--------------------------------------------------------------------------------
/src/assets/icon/calendar_rank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/calendar_rank.png
--------------------------------------------------------------------------------
/src/assets/icon/card_edit_03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/card_edit_03.jpg
--------------------------------------------------------------------------------
/src/assets/icon/card_edit_06.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/card_edit_06.jpg
--------------------------------------------------------------------------------
/src/assets/icon/card_edit_08.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/card_edit_08.jpg
--------------------------------------------------------------------------------
/src/assets/icon/card_edit_10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/card_edit_10.jpg
--------------------------------------------------------------------------------
/src/assets/icon/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/comment.png
--------------------------------------------------------------------------------
/src/assets/icon/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/contact.png
--------------------------------------------------------------------------------
/src/assets/icon/contact2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/contact2.png
--------------------------------------------------------------------------------
/src/assets/icon/del_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/del_icon.png
--------------------------------------------------------------------------------
/src/assets/icon/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/edit.png
--------------------------------------------------------------------------------
/src/assets/icon/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/error.png
--------------------------------------------------------------------------------
/src/assets/icon/error1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/error1.png
--------------------------------------------------------------------------------
/src/assets/icon/face.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/face.png
--------------------------------------------------------------------------------
/src/assets/icon/fork.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/fork.png
--------------------------------------------------------------------------------
/src/assets/icon/index.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/index.png
--------------------------------------------------------------------------------
/src/assets/icon/index2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/index2.png
--------------------------------------------------------------------------------
/src/assets/icon/jia.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/jia.png
--------------------------------------------------------------------------------
/src/assets/icon/liao_diannao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/liao_diannao.png
--------------------------------------------------------------------------------
/src/assets/icon/liao_dong.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/liao_dong.png
--------------------------------------------------------------------------------
/src/assets/icon/liao_quan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/liao_quan.png
--------------------------------------------------------------------------------
/src/assets/icon/liao_ren.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/liao_ren.png
--------------------------------------------------------------------------------
/src/assets/icon/loading_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/loading_1.png
--------------------------------------------------------------------------------
/src/assets/icon/loading_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/loading_2.png
--------------------------------------------------------------------------------
/src/assets/icon/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/message.png
--------------------------------------------------------------------------------
/src/assets/icon/message2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/message2.png
--------------------------------------------------------------------------------
/src/assets/icon/more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/more.png
--------------------------------------------------------------------------------
/src/assets/icon/my_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/my_03.png
--------------------------------------------------------------------------------
/src/assets/icon/my_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/my_06.png
--------------------------------------------------------------------------------
/src/assets/icon/my_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/my_11.png
--------------------------------------------------------------------------------
/src/assets/icon/my_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/my_14.png
--------------------------------------------------------------------------------
/src/assets/icon/my_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/my_16.png
--------------------------------------------------------------------------------
/src/assets/icon/network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/network.png
--------------------------------------------------------------------------------
/src/assets/icon/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/news.png
--------------------------------------------------------------------------------
/src/assets/icon/news2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/news2.png
--------------------------------------------------------------------------------
/src/assets/icon/none_icon_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/none_icon_03.png
--------------------------------------------------------------------------------
/src/assets/icon/none_icon_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/none_icon_05.png
--------------------------------------------------------------------------------
/src/assets/icon/none_icon_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/none_icon_08.png
--------------------------------------------------------------------------------
/src/assets/icon/none_icon_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/none_icon_11.png
--------------------------------------------------------------------------------
/src/assets/icon/none_icon_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/none_icon_14.png
--------------------------------------------------------------------------------
/src/assets/icon/phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/phone.png
--------------------------------------------------------------------------------
/src/assets/icon/select_icon_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/select_icon_03.png
--------------------------------------------------------------------------------
/src/assets/icon/select_icon_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/select_icon_05.png
--------------------------------------------------------------------------------
/src/assets/icon/select_icon_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/select_icon_08.png
--------------------------------------------------------------------------------
/src/assets/icon/select_icon_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/select_icon_11.png
--------------------------------------------------------------------------------
/src/assets/icon/select_icon_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/select_icon_14.png
--------------------------------------------------------------------------------
/src/assets/icon/self.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/self.png
--------------------------------------------------------------------------------
/src/assets/icon/self2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/self2.png
--------------------------------------------------------------------------------
/src/assets/icon/service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/service.png
--------------------------------------------------------------------------------
/src/assets/icon/top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/top.png
--------------------------------------------------------------------------------
/src/assets/icon/top1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/top1.png
--------------------------------------------------------------------------------
/src/assets/icon/top2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/top2.png
--------------------------------------------------------------------------------
/src/assets/icon/top3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/top3.png
--------------------------------------------------------------------------------
/src/assets/icon/w1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w1.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w2.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w3.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w4.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w5.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w6.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w7.jpg
--------------------------------------------------------------------------------
/src/assets/icon/w_s.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/w_s.jpg
--------------------------------------------------------------------------------
/src/assets/icon/wchat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/wchat.png
--------------------------------------------------------------------------------
/src/assets/icon/xiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/xiao.png
--------------------------------------------------------------------------------
/src/assets/icon/保存号码.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/保存号码.png
--------------------------------------------------------------------------------
/src/assets/icon/动态点赞.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/动态点赞.png
--------------------------------------------------------------------------------
/src/assets/icon/复制公司名称.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/复制公司名称.png
--------------------------------------------------------------------------------
/src/assets/icon/复制邮箱.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/复制邮箱.png
--------------------------------------------------------------------------------
/src/assets/icon/拨打座机.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/拨打座机.png
--------------------------------------------------------------------------------
/src/assets/icon/查看动态.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/查看动态.png
--------------------------------------------------------------------------------
/src/assets/icon/标题点赞.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/icon/标题点赞.png
--------------------------------------------------------------------------------
/src/assets/img/assign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/assign.png
--------------------------------------------------------------------------------
/src/assets/img/back_btn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/back_btn.png
--------------------------------------------------------------------------------
/src/assets/img/back_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/back_img.png
--------------------------------------------------------------------------------
/src/assets/img/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/calendar.png
--------------------------------------------------------------------------------
/src/assets/img/calendar1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/calendar1.png
--------------------------------------------------------------------------------
/src/assets/img/calendar2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/calendar2.png
--------------------------------------------------------------------------------
/src/assets/img/calendar3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/calendar3.png
--------------------------------------------------------------------------------
/src/assets/img/calendar4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/calendar4.png
--------------------------------------------------------------------------------
/src/assets/img/calendar5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/calendar5.png
--------------------------------------------------------------------------------
/src/assets/img/card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/card.png
--------------------------------------------------------------------------------
/src/assets/img/card2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/card2.png
--------------------------------------------------------------------------------
/src/assets/img/chart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/chart.png
--------------------------------------------------------------------------------
/src/assets/img/chart1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/chart1.png
--------------------------------------------------------------------------------
/src/assets/img/chart2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/chart2.png
--------------------------------------------------------------------------------
/src/assets/img/chart3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/chart3.png
--------------------------------------------------------------------------------
/src/assets/img/chart4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/chart4.png
--------------------------------------------------------------------------------
/src/assets/img/chatBg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/chatBg.png
--------------------------------------------------------------------------------
/src/assets/img/code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/code.png
--------------------------------------------------------------------------------
/src/assets/img/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/comment.png
--------------------------------------------------------------------------------
/src/assets/img/comment02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/comment02.png
--------------------------------------------------------------------------------
/src/assets/img/comment2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/comment2.png
--------------------------------------------------------------------------------
/src/assets/img/datapicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/datapicker.png
--------------------------------------------------------------------------------
/src/assets/img/datepickerGray.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/datepickerGray.png
--------------------------------------------------------------------------------
/src/assets/img/detail.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/detail.png
--------------------------------------------------------------------------------
/src/assets/img/edit-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/edit-icon.png
--------------------------------------------------------------------------------
/src/assets/img/follow-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/follow-icon.png
--------------------------------------------------------------------------------
/src/assets/img/form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/form.png
--------------------------------------------------------------------------------
/src/assets/img/heart-black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/heart-black.png
--------------------------------------------------------------------------------
/src/assets/img/heart-blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/heart-blue.png
--------------------------------------------------------------------------------
/src/assets/img/heart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/heart.png
--------------------------------------------------------------------------------
/src/assets/img/heart_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/heart_s.png
--------------------------------------------------------------------------------
/src/assets/img/inter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/inter.png
--------------------------------------------------------------------------------
/src/assets/img/l.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/l.gif
--------------------------------------------------------------------------------
/src/assets/img/list_pic_moren.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/list_pic_moren.png
--------------------------------------------------------------------------------
/src/assets/img/message-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/message-icon.png
--------------------------------------------------------------------------------
/src/assets/img/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/message.png
--------------------------------------------------------------------------------
/src/assets/img/message2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/message2.png
--------------------------------------------------------------------------------
/src/assets/img/moren.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/moren.jpg
--------------------------------------------------------------------------------
/src/assets/img/my-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/my-icon.png
--------------------------------------------------------------------------------
/src/assets/img/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/news.png
--------------------------------------------------------------------------------
/src/assets/img/p_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/p_icon.jpg
--------------------------------------------------------------------------------
/src/assets/img/product.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/product.png
--------------------------------------------------------------------------------
/src/assets/img/r_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/r_banner.png
--------------------------------------------------------------------------------
/src/assets/img/selfCard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/selfCard.png
--------------------------------------------------------------------------------
/src/assets/img/set.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/set.png
--------------------------------------------------------------------------------
/src/assets/img/six.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/six.png
--------------------------------------------------------------------------------
/src/assets/img/sort.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/sort.png
--------------------------------------------------------------------------------
/src/assets/img/tabbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/tabbar.png
--------------------------------------------------------------------------------
/src/assets/img/task-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/task-icon.png
--------------------------------------------------------------------------------
/src/assets/img/task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/task.png
--------------------------------------------------------------------------------
/src/assets/img/trueland.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/trueland.png
--------------------------------------------------------------------------------
/src/assets/img/u112.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/u112.png
--------------------------------------------------------------------------------
/src/assets/img/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/warning.png
--------------------------------------------------------------------------------
/src/assets/img/wchat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/wchat.png
--------------------------------------------------------------------------------
/src/assets/img/weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/img/weixin.png
--------------------------------------------------------------------------------
/src/assets/nav/address1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/address1.png
--------------------------------------------------------------------------------
/src/assets/nav/address3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/address3.png
--------------------------------------------------------------------------------
/src/assets/nav/address4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/address4.png
--------------------------------------------------------------------------------
/src/assets/nav/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/calendar.png
--------------------------------------------------------------------------------
/src/assets/nav/card.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/card.png
--------------------------------------------------------------------------------
/src/assets/nav/cellphone1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/cellphone1.png
--------------------------------------------------------------------------------
/src/assets/nav/chat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/chat.png
--------------------------------------------------------------------------------
/src/assets/nav/email.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/email.png
--------------------------------------------------------------------------------
/src/assets/nav/email2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/email2.png
--------------------------------------------------------------------------------
/src/assets/nav/email3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/email3.png
--------------------------------------------------------------------------------
/src/assets/nav/email4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/email4.png
--------------------------------------------------------------------------------
/src/assets/nav/hi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/hi.png
--------------------------------------------------------------------------------
/src/assets/nav/manage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/manage.png
--------------------------------------------------------------------------------
/src/assets/nav/map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/map.png
--------------------------------------------------------------------------------
/src/assets/nav/map2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/map2.png
--------------------------------------------------------------------------------
/src/assets/nav/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/news.png
--------------------------------------------------------------------------------
/src/assets/nav/phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/phone.png
--------------------------------------------------------------------------------
/src/assets/nav/phone2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/phone2.png
--------------------------------------------------------------------------------
/src/assets/nav/phone3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/phone3.png
--------------------------------------------------------------------------------
/src/assets/nav/phone4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/phone4.png
--------------------------------------------------------------------------------
/src/assets/nav/report.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/report.png
--------------------------------------------------------------------------------
/src/assets/nav/setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/setting.png
--------------------------------------------------------------------------------
/src/assets/nav/step.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/nav/step.png
--------------------------------------------------------------------------------
/src/assets/task/calendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/calendar.png
--------------------------------------------------------------------------------
/src/assets/task/calendar_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/calendar_icon.png
--------------------------------------------------------------------------------
/src/assets/task/demo_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/demo_img.png
--------------------------------------------------------------------------------
/src/assets/task/empty_task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/empty_task.png
--------------------------------------------------------------------------------
/src/assets/task/mark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/mark.png
--------------------------------------------------------------------------------
/src/assets/task/selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/selected.png
--------------------------------------------------------------------------------
/src/assets/task/selected_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/selected_star.png
--------------------------------------------------------------------------------
/src/assets/task/unmark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/unmark.png
--------------------------------------------------------------------------------
/src/assets/task/unselected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/src/assets/task/unselected.png
--------------------------------------------------------------------------------
/src/components/footer/index.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-08-28 10:22:54
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-17 19:00:57
6 | */
7 |
8 |
39 |
40 |
41 |
110 |
111 |
127 |
--------------------------------------------------------------------------------
/src/error.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: zhangmengli
3 | * @Date: 2018-10-10 10:20:21
4 | * @Last Modified by: zhangmengli
5 | * @Last Modified time: 2018-10-10 10:20:21
6 | */
7 |
8 |
9 |
10 |

11 |
抱歉!{{msg}}
12 |
13 |
14 |
15 |
16 |
58 |
59 |
84 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import App from './App'
5 | import router from './router'
6 | import store from './store'
7 |
8 | import '@/utils/rem.js'
9 | import '@/styles/index.scss' // 全局样式
10 | import '../static/css/face.css'
11 | import '../static/css/base.css'
12 | import './permission.js'
13 |
14 | import Global from '@/utils/global'
15 | import {
16 | ToastPlugin,
17 | LoadingPlugin,
18 | WechatPlugin,
19 | ConfirmPlugin,
20 | AlertPlugin
21 | } from 'vux'
22 |
23 | import {
24 | wxConfig
25 | } from '@/api/card'
26 | import Vconsole from 'vconsole'
27 | if (process.env.NODE_ENV != 'development') {
28 | var vConsole = new Vconsole()
29 | }
30 |
31 | //var vConsole = new Vconsole()
32 | Vue.use(LoadingPlugin)
33 | Vue.use(ToastPlugin)
34 | Vue.use(WechatPlugin)
35 | Vue.use(ConfirmPlugin)
36 | Vue.use(AlertPlugin)
37 |
38 | wxConfig(location.href.split('#')[0])
39 | .then(res => {
40 | const config = res.data
41 | config.beta = true
42 | config.debug = false
43 | config.jsApiList = ['startRecord', 'stopRecord', 'onVoiceRecordEnd', 'uploadVoice', 'downloadVoice', 'playVoice', 'pauseVoice', 'stopVoice', 'onVoicePlayEnd']
44 | Vue.wechat.config(config)
45 | })
46 | .catch(error => {
47 | console.log(error)
48 | })
49 | // 全局方法集
50 |
51 | Vue.prototype.Global = new Global(Vue)
52 |
53 | Vue.config.productionTip = false
54 |
55 | /* eslint-disable no-new */
56 | new Vue({
57 | el: '#app',
58 | router,
59 | store,
60 | components: {
61 | App
62 | },
63 | template: ''
64 | })
65 |
--------------------------------------------------------------------------------
/src/permission.js:
--------------------------------------------------------------------------------
1 | import router from './router'
2 | router.beforeEach((to, from, next) => {
3 | window.document.title = to.meta.title
4 | next()
5 | })
6 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import app from './modules/app'
4 | import user from './modules/user'
5 | import err from './modules/err'
6 | import chat from './modules/chat'
7 | import message from './modules/message'
8 | import work from './modules/work'
9 | import tab from './modules/tab'
10 |
11 | Vue.use(Vuex)
12 |
13 | const store = new Vuex.Store({
14 | modules: {
15 | app,
16 | user,
17 | err,
18 | chat,
19 | message,
20 | work,
21 | tab
22 | }
23 | })
24 |
25 | export default store
26 |
--------------------------------------------------------------------------------
/src/store/modules/app.js:
--------------------------------------------------------------------------------
1 |
2 | const app = {
3 | namespaced: true,
4 | state: {
5 | device: 'desktop',
6 | Unread:0,
7 | global_dialog:false
8 | },
9 | mutations: {
10 | //未读消息
11 | ADD_Unread:(state) => {
12 | state.Unread ++
13 | },
14 |
15 | Empty:(state) => {
16 | state.Unread = 0;
17 | },
18 |
19 | //打开蒙层
20 | open_global_dialog:(state) => {
21 | state.global_dialog = true;
22 | },
23 |
24 | //关闭蒙层
25 | close_global_dialog:(state) => {
26 | state.global_dialog = false;
27 | },
28 |
29 |
30 | },
31 | actions: {
32 | ToggleSideBar: ({ commit }) => {
33 | commit('TOGGLE_SIDEBAR')
34 | },
35 | CloseSideBar ({ commit }, { withoutAnimation }) {
36 | commit('CLOSE_SIDEBAR', withoutAnimation)
37 | },
38 | ToggleDevice ({ commit }, device) {
39 | commit('TOGGLE_DEVICE', device)
40 | }
41 | }
42 | }
43 |
44 | export default app
45 |
--------------------------------------------------------------------------------
/src/store/modules/chat.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 | import {dateFtt, all_srcollBtoom} from '../../utils/base'
3 | import {emojiAnalysis} from '../../utils/emoj'
4 | const chat = {
5 | namespaced: true,
6 | state: {
7 | char_list: [],
8 | img_list: [],
9 | my_chat_room_id: ''
10 |
11 | },
12 | mutations: {
13 | SET_my_chat_room_id: (state, id) => {
14 | state.my_chat_room_id = id
15 | },
16 |
17 | HIDE_loading: (state, id) => {
18 | for (let i = 0; i < state.char_list.length; i++) {
19 | if (state.char_list[i].id === id) {
20 | state.char_list[i].is_loading = false
21 | break
22 | }
23 | }
24 | },
25 | PUSH_char_list: (state, data) => {
26 | state.char_list.push(data)
27 | },
28 |
29 | PUSH_img_list: (state, data) => {
30 | state.img_list.push(data)
31 | },
32 |
33 | Clear_char_list: (state, data) => {
34 | state.char_list = []
35 | },
36 |
37 | Clear_img_list: (state, data) => {
38 | state.img_list = []
39 | }
40 |
41 | },
42 | actions: {
43 | GetChat (store, id) {
44 | const { commit, dispatch, state, rootState } = store
45 | if (id && rootState.user.websocketConnection != null) {
46 | const req = {
47 | 'cmd': 'GetChat',
48 | 'content': id// 对方的id
49 | }
50 | rootState.user.websocketConnection.send(JSON.stringify(req))
51 | // this.chat_record();
52 | }
53 | },
54 |
55 | chat_record (store, {id, vm, wx_name}) {
56 | const { commit, dispatch, state, rootState } = store
57 | commit('Clear_char_list')
58 | commit('Clear_img_list')
59 | const that = this
60 | const user = rootState.user.info
61 |
62 | if (!user.message_id) {
63 | alert('没有聊天对象id,无法获取聊天记录')
64 | return
65 | }
66 |
67 | const data = {
68 | userId: user.message_id, // 当前操作者的id
69 | aimId: id, // 对方的id
70 | token: rootState.user.my_chat_token
71 | }
72 |
73 | vm.$vux.loading.show({
74 | text: '加载中...'
75 | })
76 |
77 | axios({
78 | method: 'POST',
79 | url: `${rootState.user.chat_domain}/chatapi/getChat`,
80 | data: JSON.stringify(data)
81 | }).then((res) => {
82 | vm.$vux.loading.hide()
83 | if (res.status === 200 && res.data && res.data.message) {
84 | const list = JSON.parse(res.data.message)
85 | let others_image = user.image// h5所有者的头像
86 | list.map((val, i) => {
87 | try {
88 | const time = dateFtt('yyyy-MM-dd hh:mm:ss', new Date(val.createtime))
89 | let data = JSON.parse(val.content)
90 | let obj = {}
91 | obj.fead_src = val.speaker == user.message_id ? others_image : ''
92 | obj.from = val.speaker == user.message_id ? 'me' : 'others'
93 | obj.time = time
94 | if (data.type === 'text') {
95 | obj.type = 'text'
96 | obj.content = emojiAnalysis([data.content])
97 | commit('PUSH_char_list', obj)
98 | } else if (data.type === 'img') {
99 | obj.type = 'img'
100 |
101 | if (data.content.indexOf('wxfile') > -1 || data.content.indexOf('blob:http') > -1) {
102 | obj.content = data.original
103 | } else {
104 | obj.content = data.content
105 | }
106 |
107 | obj.original = data.original
108 | commit('PUSH_char_list', obj)
109 | commit('PUSH_img_list', {
110 | src: data.original
111 | })
112 | } else if (data.type === 'shop') {
113 | const shop_obj = {
114 | type: 'shop',
115 | p_class: data.p_class,
116 | p_id: data.p_id,
117 | p_image: data.p_image,
118 | p_name: data.p_name,
119 | p_price_sell: data.p_price_sell,
120 | p_title: data.p_title,
121 | content: ''
122 | }
123 |
124 | Object.assign(obj, shop_obj)
125 | commit('PUSH_char_list', obj)
126 | }
127 | } catch (err) {}
128 | })
129 | all_srcollBtoom(vm)
130 | }
131 | }).catch((err) => {
132 | vm.$vux.loading.hide()
133 | })
134 | }
135 |
136 | }
137 | }
138 |
139 | export default chat
140 |
--------------------------------------------------------------------------------
/src/store/modules/err.js:
--------------------------------------------------------------------------------
1 |
2 | const err = {
3 | namespaced: true,
4 | state: {
5 |
6 | },
7 | mutations: {
8 | Handling_errors: (state, err) => {
9 | alert('网络错误,请重新处理!');
10 | },
11 | },
12 | actions: {
13 |
14 | }
15 | }
16 |
17 | export default err
18 |
--------------------------------------------------------------------------------
/src/store/modules/message.js:
--------------------------------------------------------------------------------
1 |
2 | const message = {
3 | namespaced: true,
4 | state: {
5 | messageList:[]
6 | },
7 | mutations: {
8 | SET_messageList: (state, data) => {
9 | state.messageList = data
10 | },
11 | PUSH_messageList:(state, data) => {
12 | state.messageList.push(data);
13 | },
14 | Unshift_messageList:(state, data)=>{
15 | state.messageList.unshift(data);
16 | },
17 | },
18 | actions: {
19 |
20 |
21 | }
22 | }
23 |
24 | export default message
25 |
--------------------------------------------------------------------------------
/src/store/modules/tab.js:
--------------------------------------------------------------------------------
1 |
2 | const tab = {
3 | namespaced: true,
4 | state: {
5 | tabIndex:0,//天眼页面选择-时间-行为-个人
6 | active:0,//客户详情页面tab
7 | option:'成交率',//通讯录的
8 |
9 |
10 | },
11 | mutations: {
12 | //首页tab切换
13 | index_change_tab:(state, data) => {
14 | state.tabIndex = data;
15 | },
16 | //客户详情页面tab切换
17 | client_change_active:(state, data) => {
18 | state.active = data;
19 | },
20 |
21 | },
22 | actions: {
23 |
24 | }
25 | }
26 |
27 | export default tab
28 |
--------------------------------------------------------------------------------
/src/store/modules/user.js:
--------------------------------------------------------------------------------
1 | // import { login, logout, getInfo } from '@/api/login'
2 | import { getToken } from '@/utils/auth'
3 |
4 | const user = {
5 | namespaced: true,
6 | state: {
7 | token: getToken(),
8 | info: {},
9 | websocketConnection: null, // 用的全局聊天对象
10 | my_chat_token: '', // 用于请求聊天服务器接口的凭证
11 | my_chat_room_id: '', // 使用者当前的回话id
12 | // chat_domain:'http://192.168.40.176:8080',
13 | // chat_ws: 'ws://192.168.40.176:3838',
14 | chat_domain: 'https://chattyun.71360.com',
15 | chat_ws: 'wss://chattyun.71360.com/wss',
16 | // cardInfor: null
17 | cardInfor: {
18 | close: true,
19 | phone: '',
20 | tel: '',
21 | wechat: '',
22 | email: '',
23 | company: '',
24 | address: '',
25 | goods_case: {
26 | case: [],
27 | goods: []
28 | }
29 | } // 名片详情
30 |
31 | },
32 |
33 | mutations: {
34 | SET_TOKEN: (state, token) => {
35 | state.token = token
36 | },
37 |
38 | // 设置用户信息
39 | SET_INFO: (state, data) => {
40 | state.info = data
41 | },
42 |
43 | // 设置聊天对象
44 | SET_websocket: (state, data) => {
45 | state.websocketConnection = data
46 | },
47 |
48 | // 用于请求聊天服务器接口的凭证
49 | SET_my_chat_token: (state, token) => {
50 | state.my_chat_token = token
51 | },
52 |
53 | // 用于请求聊天服务器接口的凭证
54 | SET_my_chat_room_id: (state, id) => {
55 | state.my_chat_room_id = id
56 | },
57 |
58 | // 设置message_id
59 | SET_my_message_id: (state, id) => {
60 | state.info.message_id = id
61 | }
62 |
63 | },
64 |
65 | actions: {
66 | // 登录
67 | // Login({ commit }, userInfo) {
68 | // return new Promise((resolve, reject) => {
69 | // setToken('admin')
70 | // commit('SET_TOKEN', 'admin')
71 | // resolve()
72 | // })
73 | // },
74 |
75 | // 前端 登出
76 | // FedLogOut({ commit }) {
77 | // return new Promise(resolve => {
78 | // commit('SET_TOKEN', '')
79 | // removeToken()
80 | // resolve()
81 | // })
82 | // }
83 | }
84 | }
85 |
86 | export default user
87 |
--------------------------------------------------------------------------------
/src/store/modules/work.js:
--------------------------------------------------------------------------------
1 |
2 | const work = {
3 | namespaced: true,
4 | state: {
5 | active_customers: false, // 活跃客户
6 | add_customers: true, // 新增客户
7 | card_browsing: true, // 名片浏览
8 | forward_num: true, // 转发次数
9 | save_num: true, // 保存次数
10 | in_form: true // 参与表单
11 |
12 | },
13 | mutations: {
14 |
15 | },
16 | actions: {
17 |
18 | }
19 | }
20 |
21 | export default work
22 |
--------------------------------------------------------------------------------
/src/styles/iconfont.css:
--------------------------------------------------------------------------------
1 |
2 | @font-face {font-family: "iconfont";
3 | src: url('//at.alicdn.com/t/font_830990_u6t2v9bdfyr.eot?t=1537956678510'); /* IE9*/
4 | src: url('//at.alicdn.com/t/font_830990_u6t2v9bdfyr.eot?t=1537956678510#iefix') format('embedded-opentype'), /* IE6-IE8 */
5 | url('data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAX8AAsAAAAACJAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFY8hkhiY21hcAAAAYAAAABcAAABnLNeGoNnbHlmAAAB3AAAAhQAAAJMBPBL8mhlYWQAAAPwAAAAMQAAADYUBTx5aGhlYQAABCQAAAAgAAAAJAkiBNhobXR4AAAERAAAABAAAAAQEYH/72xvY2EAAARUAAAACgAAAAoBrADkbWF4cAAABGAAAAAeAAAAIAESAF9uYW1lAAAEgAAAAUUAAAJtPlT+fXBvc3QAAAXIAAAANAAAAEWthDHleJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2BkSWCcwMDKwMHUyXSGgYGhH0IzvmYwYuRgYGBiYGVmwAoC0lxTGByeMTwTYG7438AQw9zAMAEozAiSAwD+BQxjeJztkLENgDAMBM84oAihKINQIgaiYvKsEWyHgiF46yz/6ysDM6DGbiSQG8F1WSqRK2vkidN8tpmg0UqrvX+vkEQjx6XelIVfW+zjdepfG/iPWxlEXgdMD4xUEaJ4nDVRz08TURB+39vtLttf+7DtLi6kzba4L4XYpLR0w2WxJha7Bg9iMNBopMDFxLTxgBcTSUAPxhOePHBROXAiseGkiXo0Gg94NBzk1pP/AN36inKZfDPzTeab+YjU/9Nvy5CeEpOUyS1CkIbrwTQUVRnnDj3HRsJR1DjMNErpQTSThmlURJcXJJEKwr90uuLwAtTsf7JbMfCytm3nl+8tV0tu8PXjYauUb93008XRxjekWRxMS8Cay/MxWdHYBItRDBUX17/7s2HQGJvUNTU609448mCEdTA9g9outLml0WLGn29Nlh52PsB1y9Wlu428vY31wdAE0xR5jOfnLCQ0hjgTqtcXp+wbuzVkdAY9bMA72mjPRJWwPjEsVoZnCSESIf1NuSBtksjZN8ilCnEL4HGoBpE8uOJsgQuAiOeYi7pzRpFdY1zQqZpAKhl6/+x5R04i9Zqu+PUmpc26v4I9lmZvHslDJ8fHvxXcfzVmP3kBHat777AWp2+zQ6j92jqQpIOtk+Aztfwm0BTToKvBjyRnkXLCvCLTaupCMWbno7Vra9cp9Zv1OiHyQHvottBOyTBJEluoH9aEmSV7quJWpqFyJC9Cg3BGSWkoC5dyoYXg6ulj5nF5wfFYpNfd2el18Sn44syyCN2n+xHmOQ/o5aAb+Fnu5EYszDcaQceih72fMCjhOdMK7mDfGsly8hen6nTbeJxjYGRgYADiGzIlD+P5bb4ycLMwgMD1izVuMPr/+/8FrCHMDUAuBwMTSBQAZAgNEQAAAHicY2BkYGBu+N/AEMMa8v/9//+sIQxAERTAAgCt3gcDBAAAAAQA/+8ELQAABVQAAAAAAAAAhgDkASYAAHicY2BkYGBgYQgGYhBgAmIuIGRg+A/mMwAAES0BcgAAeJxlj01OwzAQhV/6B6QSqqhgh+QFYgEo/RGrblhUavdddN+mTpsqiSPHrdQDcB6OwAk4AtyAO/BIJ5s2lsffvHljTwDc4Acejt8t95E9XDI7cg0XuBeuU38QbpBfhJto41W4Rf1N2MczpsJtdGF5g9e4YvaEd2EPHXwI13CNT+E69S/hBvlbuIk7/Aq30PHqwj7mXle4jUcv9sdWL5xeqeVBxaHJIpM5v4KZXu+Sha3S6pxrW8QmU4OgX0lTnWlb3VPs10PnIhVZk6oJqzpJjMqt2erQBRvn8lGvF4kehCblWGP+tsYCjnEFhSUOjDFCGGSIyujoO1Vm9K+xQ8Jee1Y9zed0WxTU/3OFAQL0z1xTurLSeTpPgT1fG1J1dCtuy56UNJFezUkSskJe1rZUQuoBNmVXjhF6XNGJPyhnSP8ACVpuyAAAAHicY2BigAAuBuyAhZGJkZmRhZGVgSMlMzEvozTRkD0lMy+9PDWTzTU3MTPHkIEBAHrWCEM=') format('woff'),
6 | url('//at.alicdn.com/t/font_830990_u6t2v9bdfyr.ttf?t=1537956678510') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
7 | url('//at.alicdn.com/t/font_830990_u6t2v9bdfyr.svg?t=1537956678510#iconfont') format('svg'); /* iOS 4.1- */
8 | }
9 |
10 | .iconfont {
11 | font-family:"iconfont" !important;
12 | font-size:16px;
13 | font-style:normal;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | }
17 |
18 | .icon-dianhua1:before { content: "\e600"; }
19 |
20 | .icon-dingwei:before { content: "\e610"; }
21 |
22 | .icon-Email1:before { content: "\e60e"; }
23 |
--------------------------------------------------------------------------------
/src/styles/index.scss:
--------------------------------------------------------------------------------
1 | @import './reset.scss';
2 | @import './vux.scss';
3 | @import './card.scss';
4 | @import './iconfont.css';
5 |
6 | .fr {
7 | float: right;
8 | }
9 |
10 | .fl {
11 | float: left;
12 | }
13 | .tar{
14 | text-align: right;
15 | }
16 | .tac{
17 | text-align: center;
18 | }
19 | i,em{
20 | font-style: normal;
21 | }
22 | li,ol{
23 | list-style: none;
24 | }
25 | .mt-10{
26 | margin-top: 0.1rem;
27 | }
28 | .mt-20{
29 | margin-top: 0.2rem;
30 | }
31 | .ml-10{
32 | margin-left: 0.1rem;
33 | }
34 | .ml-20{
35 | margin-left: 0.2rem;
36 | }
37 | .page{
38 | text-align: center;
39 | margin-top: 0.2rem;
40 | }
41 | .app-main{
42 | height: 100%;
43 | padding-bottom: 55px;
44 | }
45 | .card-shadow{
46 | border-radius: 0.1rem;
47 | border-bottom: 1px #e2e2e2 solid;
48 | }
49 | .btn-primary{
50 | height: 0.8rem;
51 | background-color: #5977fe;
52 | border-radius: 0.8rem;
53 | width: 2.4rem;
54 | border: none;
55 | outline: none;
56 | color: #fff;
57 | font-size: 0.36rem;
58 | margin-left: 0.3rem;
59 | }
60 | .btn-cancle{
61 | width: 2.4rem;
62 | height: 0.8rem;
63 | background-color: #a0a6ae;
64 | border-radius: 0.8rem;
65 | border: none;
66 | outline: none;
67 | color: #fff;
68 | font-size: 0.36rem;
69 | }
70 | .contact .vux-tab-ink-bar{
71 | background: transparent;
72 | }
73 | .contact .vux-tab-ink-bar::after{
74 | content: '';
75 | display: block;
76 | height: 2px;
77 | background: #3e84ff;
78 | width: 1.25rem;
79 | margin: 0 auto;
80 | }
81 | .contact .vux-tab .vux-tab-item.vux-tab-selected{
82 | color:#3e84ff;
83 | }
84 | .contact .vux-tab .vux-tab-item{
85 | background: transparent;
86 | }
87 | .blue{
88 | color: #4672b3;
89 | }
90 |
--------------------------------------------------------------------------------
/src/styles/reset.scss:
--------------------------------------------------------------------------------
1 | body {
2 | height: 100%;
3 | -moz-osx-font-smoothing: grayscale;
4 | -webkit-font-smoothing: antialiased;
5 | text-rendering: optimizeLegibility;
6 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
7 | color: #333;
8 | font-size: 0.28rem;
9 | background-color: #fff;
10 | }
11 |
12 | label {
13 | font-weight: 700;
14 | }
15 |
16 | html {
17 | height: 100%;
18 | box-sizing: border-box;
19 | }
20 |
21 | #app{
22 | height: 100%;
23 | }
24 |
25 | *,
26 | *:before,
27 | *:after {
28 | box-sizing: border-box;
29 | padding: 0;
30 | margin: 0;
31 | }
32 |
33 | a,
34 | a:focus,
35 | a:hover {
36 | cursor: pointer;
37 | color: inherit;
38 | outline: none;
39 | text-decoration: none;
40 | }
41 |
42 | div:focus{
43 | outline: none;
44 | }
45 |
46 | a:focus,
47 | a:active {
48 | outline: none;
49 | }
50 |
51 | a,
52 | a:focus,
53 | a:hover {
54 | cursor: pointer;
55 | color: inherit;
56 | text-decoration: none;
57 | }
58 |
59 | .clearfix {
60 | &:after {
61 | visibility: hidden;
62 | display: block;
63 | font-size: 0;
64 | content: " ";
65 | clear: both;
66 | height: 0;
67 | }
68 | }
--------------------------------------------------------------------------------
/src/styles/vux.scss:
--------------------------------------------------------------------------------
1 | .vux-popup-header-right{
2 | color: #5977fe !important;
3 | }
4 | .vux-popup-picker-select-box{
5 | color: #717171;
6 | }
7 | .weui-cell_access .weui-cell__ft:after{
8 | width: 0.2rem !important;
9 | height: 0.2rem !important;
10 | }
11 | .xs-plugin-pullup-container{
12 | bottom: -55px !important;
13 | }
14 | .weui-cells_radio{
15 | .vux-radio-label{
16 | font-weight: normal;
17 | }
18 | }
19 | /*日历组件增加年月日时分*/
20 | .dp-content{
21 | [data-role='year']{
22 | .scroller-item:after{
23 | content: '年';
24 | }
25 | }
26 | [data-role='month']{
27 | .scroller-item:after{
28 | content: '月';
29 | }
30 | }
31 | [data-role='day']{
32 | .scroller-item:after{
33 | content: '日';
34 | }
35 | }
36 | [data-role='hour']{
37 | .scroller-item:after{
38 | content: '时';
39 | }
40 | }
41 | [data-role='minute']{
42 | .scroller-item:after{
43 | content: '分';
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/styles/vux_theme.less:
--------------------------------------------------------------------------------
1 | @tabbar-text-active-color: #5977fe;
2 | @tab-text-active-color: #5977fe;
3 | @tab-bar-active-color: #5977fe;
4 | @button-global-border-radius: 99px;
5 | @button-global-height: 40px;
6 | @button-primary-bg-color: #5977fe;
7 | @button-primary-active-bg-color: #5977fe;
8 | @dialog-gap-width: 0;
9 | @dialog-width: 100%;
10 | @datetime-header-item-font-color: #5977fe;
11 | @swiper-indicator-active-color:#5977fe;
12 | @popover-bg-color: #535353;
13 | @timeline-item-bg-color: #5977fe;
--------------------------------------------------------------------------------
/src/utils/auth.js:
--------------------------------------------------------------------------------
1 | import Cookies from 'js-cookie'
2 |
3 | const TokenKey = 'token'
4 |
5 | export function getToken () {
6 | return Cookies.get(TokenKey)
7 | }
8 |
9 | export function setToken (token) {
10 | return Cookies.set(TokenKey, token)
11 | }
12 |
13 | export function removeToken () {
14 | return Cookies.remove(TokenKey)
15 | }
16 |
17 | export function getCookie (name) {
18 | return Cookies.get(name)
19 | }
20 |
21 | export function setCookie (name, token) {
22 | return Cookies.set(name, token)
23 | }
24 |
25 | export function removeCookie (name) {
26 | return Cookies.remove(name)
27 | }
28 |
--------------------------------------------------------------------------------
/src/utils/card_template.js:
--------------------------------------------------------------------------------
1 | // 所有名片模板
2 | // 珍岛的模板
3 | let zhendaoList = []
4 | let companyList = ['上海', '无锡', '苏州', '宁波', '温州', '深圳', '成都', '杭州']
5 | let index = 0
6 | let num = 0
7 | for (let i = 0; i < 24; i++) {
8 | let zhendaoObj = {
9 | type: 'zhendao',
10 | templateId: i,
11 | subheading: '', // 副标题
12 | company: '', // 公司
13 | local: '', // 地方
14 | background_img: require('@/assets/card/1.png'), // 背景图片
15 | phone_icon: require('@/assets/nav/phone.png'), // 电话图片
16 | email_icon: require('@/assets/nav/email.png'), // 邮件图片
17 | address_icon: require('@/assets/nav/map.png')// 地址图片
18 | }
19 |
20 | num++
21 | if (num > 3) {
22 | index++
23 | num = 1
24 | }
25 | zhendaoObj.company = `珍岛股份·${companyList[index]}`
26 | zhendaoObj.local = companyList[index]
27 |
28 | if ((i - 1) % 3 === 0) {
29 | zhendaoObj.subheading = 'T云商务'
30 | } else if ((i - 2) % 3 === 0) {
31 | zhendaoObj.subheading = 'T云客服'
32 | }
33 | zhendaoList.push(zhendaoObj)
34 | }
35 |
36 | // 其他模板参数
37 | let otherList = [
38 | {
39 | type: 'other', // 珍岛的模板是zhendao,别的都是other
40 | templateId: 24,
41 | subheading: '', // 副标题
42 | company: '', // 公司
43 | local: '', // 地方
44 | background_img: require('@/assets/card/15.png'), // 背景图片
45 | phone_icon: require('@/assets/nav/phone3.png'), // 电话图片
46 | email_icon: require('@/assets/nav/email3.png'), // 邮件图片
47 | address_icon: require('@/assets/nav/address3.png'), // 地址图片
48 | thumbnail: require('@/assets/card/thumbnail/3.png')// 缩略图
49 | },
50 | {
51 | type: 'other', // 珍岛的模板是zhendao,别的都是other
52 | templateId: 25,
53 | subheading: '', // 副标题-不是珍岛的模板不用填
54 | company: '', // 公司-不是珍岛的模板不用填
55 | local: '', // 地方-不是珍岛的模板不用填
56 | background_img: require('@/assets/card/16.png'), // 背景图片
57 | phone_icon: require('@/assets/nav/phone4.png'), // 电话图片
58 | email_icon: require('@/assets/nav/email4.png'), // 邮件图片
59 | address_icon: require('@/assets/nav/address4.png'), // 地址图片
60 | thumbnail: require('@/assets/card/16.png')// 缩略图
61 | },
62 | {
63 | type: 'other', // 珍岛的模板是zhendao,别的都是other
64 | templateId: 26,
65 | subheading: '', // 副标题-不是珍岛的模板不用填
66 | company: '', // 公司-不是珍岛的模板不用填
67 | local: '', // 地方-不是珍岛的模板不用填
68 | background_img: require('@/assets/card/17.png'), // 背景图片
69 | phone_icon: require('@/assets/nav/phone4.png'), // 电话图片
70 | email_icon: require('@/assets/nav/email4.png'), // 邮件图片
71 | address_icon: require('@/assets/nav/address4.png'), // 地址图片
72 | thumbnail: require('@/assets/card/thumbnail/1.png')// 缩略图
73 | },
74 | {
75 | type: 'other', // 珍岛的模板是zhendao,别的都是other
76 | templateId: 27,
77 | subheading: '', // 副标题-不是珍岛的模板不用填
78 | company: '', // 公司-不是珍岛的模板不用填
79 | local: '', // 地方-不是珍岛的模板不用填
80 | background_img: require('@/assets/card/1.png'), // 背景图片
81 | phone_icon: require('@/assets/nav/phone4.png'), // 电话图片
82 | email_icon: require('@/assets/nav/email4.png'), // 邮件图片
83 | address_icon: require('@/assets/nav/address4.png'), // 地址图片
84 | thumbnail: require('@/assets/card/thumbnail/1.png')// 缩略图
85 | },
86 | {
87 | type: 'other', // 珍岛的模板是zhendao,别的都是other
88 | templateId: 28,
89 | subheading: '', // 副标题-不是珍岛的模板不用填
90 | company: '', // 公司-不是珍岛的模板不用填
91 | local: '', // 地方-不是珍岛的模板不用填
92 | background_img: require('@/assets/card/18.png'), // 背景图片
93 | phone_icon: require('@/assets/nav/cellphone1.png'), // 电话图片
94 | email_icon: require('@/assets/nav/email.png'), // 邮件图片
95 | address_icon: require('@/assets/nav/address1.png'), // 地址图片
96 | thumbnail: require('@/assets/card/thumbnail/5.png')// 缩略图
97 | },
98 | {
99 | type: 'other', // 珍岛的模板是zhendao,别的都是other
100 | templateId: 29,
101 | subheading: '', // 副标题-不是珍岛的模板不用填
102 | company: '', // 公司-不是珍岛的模板不用填
103 | local: '', // 地方-不是珍岛的模板不用填
104 | background_img: require('@/assets/card/19.png'), // 背景图片
105 | phone_icon: require('@/assets/nav/cellphone1.png'), // 电话图片
106 | email_icon: require('@/assets/nav/email.png'), // 邮件图片
107 | address_icon: require('@/assets/nav/address1.png'), // 地址图片
108 | thumbnail: require('@/assets/card/thumbnail/6.png')// 缩略图
109 | },
110 | {
111 | type: 'other', // 珍岛的模板是zhendao,别的都是other
112 | templateId: 30,
113 | subheading: '', // 副标题-不是珍岛的模板不用填
114 | company: '', // 公司-不是珍岛的模板不用填
115 | local: '', // 地方-不是珍岛的模板不用填
116 | background_img: require('@/assets/card/20.png'), // 背景图片
117 | phone_icon: require('@/assets/nav/phone4.png'), // 电话图片
118 | email_icon: require('@/assets/nav/email4.png'), // 邮件图片
119 | address_icon: require('@/assets/nav/address4.png'), // 地址图片
120 | thumbnail: require('@/assets/card/thumbnail/7.png')// 缩略图
121 | },
122 | {
123 | type: 'other', // 珍岛的模板是zhendao,别的都是other
124 | templateId: 31,
125 | subheading: '', // 副标题
126 | company: '', // 公司
127 | local: '', // 地方
128 | background_img: require('@/assets/card/21.png'), // 背景图片
129 | phone_icon: require('@/assets/nav/phone3.png'), // 电话图片
130 | email_icon: require('@/assets/nav/email3.png'), // 邮件图片
131 | address_icon: require('@/assets/nav/address3.png'), // 地址图片
132 | thumbnail: require('@/assets/card/thumbnail/8.png')// 缩略图
133 | }
134 |
135 | ]
136 |
137 | const templateList = zhendaoList.concat(otherList)
138 | console.log(templateList)
139 |
140 | export default templateList
141 |
--------------------------------------------------------------------------------
/src/utils/global.js:
--------------------------------------------------------------------------------
1 | class socket {
2 | constructor (name) {
3 | this.name = name
4 | }
5 | test () {
6 | alert('test')
7 | }
8 | parseTime (time, cFormat) {
9 | if (arguments.length === 0) {
10 | return null
11 | }
12 | const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
13 | let date
14 | if (typeof time === 'object') {
15 | date = time
16 | } else {
17 | if (('' + time).length === 10) time = parseInt(time) * 1000
18 | date = new Date(time)
19 | }
20 | const formatObj = {
21 | y: date.getFullYear(),
22 | m: date.getMonth() + 1,
23 | d: date.getDate(),
24 | h: date.getHours(),
25 | i: date.getMinutes(),
26 | s: date.getSeconds(),
27 | a: date.getDay()
28 | }
29 | const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
30 | let value = formatObj[key]
31 | if (key === 'a') return ['一', '二', '三', '四', '五', '六', '日'][value - 1]
32 | if (result.length > 0 && value < 10) {
33 | value = '0' + value
34 | }
35 | return value || 0
36 | })
37 | return time_str
38 | }
39 | }
40 | export default socket
41 |
--------------------------------------------------------------------------------
/src/utils/rem.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | !(function (n) {
3 | var e = n.document,
4 | t = e.documentElement,
5 | i = 750,
6 | d = i / 100,
7 | o = 'orientationchange' in n ? 'orientationchange' : 'resize',
8 | a = function () {
9 | var n = t.clientWidth || 375
10 | n > 750 && (n = 750)
11 | t.style.fontSize = n / d + 'px'
12 | }
13 | e.addEventListener && (n.addEventListener(o, a, !1), e.addEventListener('DOMContentLoaded', a, !1))
14 | }(window))
15 |
--------------------------------------------------------------------------------
/src/utils/request.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 | import store from '../store'
3 | import {
4 | getToken
5 | } from './auth'
6 | // import { getToken } from '@/utils/auth'
7 | import {
8 | AlertModule
9 | } from 'vux'
10 |
11 | let baseURL = ''
12 | if (process.env.NODE_ENV === 'development') {
13 | baseURL = '/index.php'
14 | } else {
15 | baseURL = ''
16 | // process.env.BASE_API
17 | }
18 |
19 | // 创建axios实例
20 | const service = axios.create({
21 | baseURL, // process.env.BASE_API, // api的base_url
22 | timeout: 15000, // 请求超时时间
23 | withCredentials: true
24 | })
25 |
26 | // request拦截器
27 | service.interceptors.request.use(config => {
28 | if (store.getters.token) {
29 | // config.headers['X-Token'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
30 | }
31 | return config
32 | }, error => {
33 | // Do something with request error
34 | console.log(error) // for debug
35 | Promise.reject(error)
36 | })
37 |
38 | // respone拦截器
39 | service.interceptors.response.use(
40 | response => {
41 | /**
42 | * code为非20000是抛错 可结合自己业务进行修改
43 | */
44 | if (response.isSuccess) {
45 | return response.data
46 | }
47 | const res = response.data
48 | if (res.isSuccess) {
49 | return response.data
50 | }
51 | console.log(res)
52 | if (res.code !== 200) {
53 | // alert(res.msg)
54 | // AlertModule.show({
55 | // title: '提示',
56 | // content: res.msg
57 | // })
58 | // 201:Token 过期了;0:必填checked校验
59 | if (res.code === 201) {
60 | AlertModule.show({
61 | title: '提示',
62 | content: '用户信息过期,请重新登录'
63 | })
64 | // 如果可以请关闭窗口
65 | }
66 | if (res.code === 0) {
67 | AlertModule.show({
68 | title: '提示',
69 | content: res.msg
70 | })
71 | }
72 | return Promise.reject('error')
73 | } else {
74 | return response.data
75 | }
76 | },
77 | error => {
78 | console.log('err' + error)
79 | const token = getToken()
80 | /* AlertModule.show({
81 | title: '提示',
82 | content: token
83 | }) */
84 | return Promise.reject(error)
85 | }
86 | )
87 |
88 | export default service
89 |
--------------------------------------------------------------------------------
/src/views/client/follow.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-08 17:56:28
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-17 16:26:32
6 | */
7 |
8 |
9 |
13 |
14 |
15 |
16 |
17 | 确定
18 |
19 |
20 |
21 |
22 |
76 |
77 |
117 |
--------------------------------------------------------------------------------
/src/views/client/followRecord.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: zhangmengli
3 | * @Date: 2018-12-26 18:18:43
4 | * @Last Modified by: zhangmengli
5 | * @Last Modified time: 2018-12-26 18:18:43
6 | */
7 |
8 |
9 |
没有更多数据
10 |
11 |
12 |
13 |
14 | {{Global.parseTime(item.create_time, '{y}-{m}-{d}')}}
15 |
16 |
17 |
{{item.content}}
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | 添加跟进
26 |
27 |
28 |
29 |
30 |
142 |
143 |
181 |
--------------------------------------------------------------------------------
/src/views/contacts/insertClient.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-04 10:17:41
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-09-04 10:55:39
6 | */
7 |
8 |
9 |
10 | -
11 |
12 | T-Man
13 |
14 |
15 |
16 |
17 | 确定
18 |
19 |
20 |
21 |
22 |
41 |
42 |
67 |
--------------------------------------------------------------------------------
/src/views/contacts/insertTag.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-04 09:31:33
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-17 21:45:36
6 | */
7 |
8 |
9 |
10 | 标签名字
11 |
12 |
13 |
14 |
15 |
16 | 添加成员
17 |
18 |
19 |
20 | -
21 |
22 | {{item.re_name ? item.re_name : item.wx_name}}
23 |
24 |
25 |
26 | 确定
27 |
28 |
29 |
30 |
31 |
32 |
33 |
40 |
41 |
42 |
43 | -
44 |
45 | {{item.re_name ? item.re_name : item.wx_name}}
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
129 |
130 |
204 |
--------------------------------------------------------------------------------
/src/views/home/main.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-08-28 10:38:59
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-08-29 15:49:23
6 | */
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
34 |
35 |
38 |
--------------------------------------------------------------------------------
/src/views/homeList/seeWebsite.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-01 14:07:51
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-09-01 15:36:00
6 | */
7 |
8 |
9 |
10 |
7日内被查看的行为统计
11 |

12 |
共3次
13 |
14 |
22 |
23 | 选择时间段
24 |
25 |
26 |
27 |
28 |

29 |
开始
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |

38 |
结束
39 |
40 |
41 |
42 |
43 | 确定
44 |
45 |
46 |
47 |
48 |
49 |
82 |
83 |
166 |
--------------------------------------------------------------------------------
/src/views/messageManage/detail.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-03 09:28:57
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-09-03 10:08:22
6 | */
7 |
8 |
9 |
10 |
11 | 日常
12 |
13 |
14 | -
15 | 日程标题:
16 | 预约签单
17 |
18 | -
19 | 时间设定:
20 | 08:00
21 |
22 | -
23 | 添加客户:
24 |
25 |
26 | T-Man
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
50 |
51 |
94 |
--------------------------------------------------------------------------------
/src/views/messageManage/index.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-01 18:02:51
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-09-03 10:16:18
6 | */
7 |
8 |
9 |
10 | -
11 |
2018-08-08 08:10
12 |
13 |
14 |
您8月8日需要回访
15 |
查看
16 |
17 |
18 |
19 |
20 |
21 |
22 |
40 |
41 |
109 |
--------------------------------------------------------------------------------
/src/views/messageManage/tpl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{citem.txt}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
29 |
30 |
58 |
--------------------------------------------------------------------------------
/src/views/news/companyDetails.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
49 |
50 |
79 |
--------------------------------------------------------------------------------
/src/views/self/calendarDetail.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-06 14:08:03
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-31 16:51:44
6 | */
7 |
8 |
9 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
96 |
97 |
130 |
--------------------------------------------------------------------------------
/src/views/self/chatWindow.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-07 11:31:27
4 | * @Last Modified by: mikey.zhaopeng
5 | * @Last Modified time: 2018-09-29 12:48:22
6 | */
7 |
8 |
9 |
窗口示意图
10 |
11 |
12 |
13 | {{item}}
14 |
15 |
16 |
17 |
18 |
添加窗口标签
19 |
{{item}}
20 |
21 |
22 |
23 |
24 |
67 |
68 |
138 |
--------------------------------------------------------------------------------
/src/views/self/edit_list.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
7 |
8 | 名片信息编辑
9 |
10 |
11 |
12 | -
13 |
14 |
15 | 推荐产品
16 |
17 |
18 |
19 | -
20 |
21 |
22 | 推荐案例
23 |
24 |
25 |
26 | -
27 |
28 |
29 | 个人标签编辑
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
43 |
44 |
--------------------------------------------------------------------------------
/src/views/self/qrcode.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-14 14:26:39
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-10-09 17:29:21
6 | */
7 |
8 |
9 |
10 |
![]()
11 |

12 |
13 |
14 |
15 |
16 |
17 |
49 |
50 |
88 |
--------------------------------------------------------------------------------
/src/views/self/recommended_case.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 推荐案例
5 |
6 | 案例管理
7 |
8 |
9 |
10 |
11 |
12 |
13 | -
14 |
15 | {{item.case_name}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
75 |
76 |
--------------------------------------------------------------------------------
/src/views/self/recommended_product.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 推荐产品
5 |
6 | 产品管理
7 |
8 |
9 |
10 |
11 |
12 |
13 | -
14 |
15 | {{item.product_name}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
76 |
77 |
--------------------------------------------------------------------------------
/src/views/self/sayHi.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-07 14:25:23
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-09-17 20:41:36
6 | */
7 |
8 |
9 |
10 |
11 |
12 |
13 | |
14 |
15 |
16 | |
17 |
18 |
19 |
20 |
21 |
62 |
63 |
79 |
--------------------------------------------------------------------------------
/src/views/self/saySetting.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-07 15:05:29
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-13 17:59:04
6 | */
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | 提交
15 |
16 |
效果图
17 |
18 |
19 |
8月3日 晚上18:21
20 |
21 |

22 |
23 |
{{value}}
24 |
通过我的名片你还可以:
25 |
26 | -
27 |
28 |
进入我的名片
29 |
30 |
查看我们公司官网
31 |
查看我们公司产品
32 |
查看我的动态
33 |
34 |
35 | -
36 | 拨打我的电话
37 |
38 |
39 | -
40 | 添加我的微信
41 |
42 |
43 | -
44 | 请TA联系我
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
95 |
96 |
194 |
--------------------------------------------------------------------------------
/src/views/self/setting.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-07 09:39:57
4 | * @Last Modified by: kaker.xutianxing
5 | * @Last Modified time: 2018-10-09 15:30:29
6 | */
7 |
8 |
9 |
10 |
13 |
14 |
15 | |
16 |
20 |
21 |
22 |
23 |
24 |
65 |
66 |
82 |
--------------------------------------------------------------------------------
/src/views/self/talkDetail.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: kaker.xutianxing
3 | * @Date: 2018-09-06 16:09:14
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-18 11:57:25
6 | */
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
关键词
15 |
{{item}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
105 |
106 |
212 |
--------------------------------------------------------------------------------
/src/warning.vue:
--------------------------------------------------------------------------------
1 | /*
2 | * @Author: zhangmengli
3 | * @Date: 2018-10-10 10:20:21
4 | * @Last Modified by: Jessica
5 | * @Last Modified time: 2018-10-17 17:19:33
6 | */
7 |
8 |
9 |
10 |

11 |
12 |
13 |
14 |
15 |
26 |
27 |
40 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/.gitkeep
--------------------------------------------------------------------------------
/static/css/index_loading.css:
--------------------------------------------------------------------------------
1 | .index_global_dialog{
2 | width: 100%;
3 | height: 100%;
4 | background: #fff;
5 | position: fixed;
6 | top: 0;
7 | left: 0;
8 | z-index: 9999;
9 | }
10 |
11 | .index_global_dialog .global_icon{
12 | position: absolute;
13 | width: 100px;
14 | height:180px;
15 | top: 0;
16 | bottom: 0;
17 | right: 0;
18 | left: 0;
19 | margin: auto;
20 | }
21 |
22 | .index_global_dialog .global_icon p{
23 | width:100px;
24 | height: 40px;
25 | line-height:40px;
26 | text-align: center;
27 | color: #333;
28 | margin-top:10px;
29 | font-size:14px
30 | }
31 |
32 | .index_global_dialog .global_icon .frame{
33 | position: relative;
34 | width: 80px;
35 | height: 80px;
36 | margin: 0 auto;
37 | }
38 |
39 | .index_global_dialog .global_icon img{
40 | position: absolute;
41 | width: 100%;
42 | height: 100%;
43 | }
44 |
45 | .index_global_dialog .global_icon img.loading_1{
46 | animation: spin 1s linear infinite;
47 | -webkit-animation:spin 1s linear infinite;
48 | }
49 |
50 | @keyframes spin {
51 | 0%{
52 | transform: rotate(0deg);
53 | }
54 | 100%{
55 | transform: rotate(360deg);
56 | }
57 | }
--------------------------------------------------------------------------------
/static/image/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/0.png
--------------------------------------------------------------------------------
/static/image/10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/10.png
--------------------------------------------------------------------------------
/static/image/11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/11.png
--------------------------------------------------------------------------------
/static/image/12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/12.png
--------------------------------------------------------------------------------
/static/image/13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/13.png
--------------------------------------------------------------------------------
/static/image/14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/14.png
--------------------------------------------------------------------------------
/static/image/15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/15.png
--------------------------------------------------------------------------------
/static/image/16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/16.png
--------------------------------------------------------------------------------
/static/image/17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/17.png
--------------------------------------------------------------------------------
/static/image/18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/18.png
--------------------------------------------------------------------------------
/static/image/19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/19.png
--------------------------------------------------------------------------------
/static/image/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/4.png
--------------------------------------------------------------------------------
/static/image/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/5.png
--------------------------------------------------------------------------------
/static/image/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/6.png
--------------------------------------------------------------------------------
/static/image/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/7.png
--------------------------------------------------------------------------------
/static/image/8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/8.png
--------------------------------------------------------------------------------
/static/image/9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/9.png
--------------------------------------------------------------------------------
/static/image/l.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/l.gif
--------------------------------------------------------------------------------
/static/image/loading_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/loading_1.png
--------------------------------------------------------------------------------
/static/image/loading_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/loading_2.png
--------------------------------------------------------------------------------
/static/image/moren.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/moren.jpg
--------------------------------------------------------------------------------
/static/image/p_icon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/p_icon.jpg
--------------------------------------------------------------------------------
/static/image/qqface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kakercoco/AI-card/e8824c62e194fb6b8335764a7bbd014cc312f5c7/static/image/qqface.png
--------------------------------------------------------------------------------
/test/e2e/custom-assertions/elementCount.js:
--------------------------------------------------------------------------------
1 | // A custom Nightwatch assertion.
2 | // The assertion name is the filename.
3 | // Example usage:
4 | //
5 | // browser.assert.elementCount(selector, count)
6 | //
7 | // For more information on custom assertions see:
8 | // http://nightwatchjs.org/guide#writing-custom-assertions
9 |
10 | exports.assertion = function (selector, count) {
11 | this.message = 'Testing if element <' + selector + '> has count: ' + count
12 | this.expected = count
13 | this.pass = function (val) {
14 | return val === this.expected
15 | }
16 | this.value = function (res) {
17 | return res.value
18 | }
19 | this.command = function (cb) {
20 | var self = this
21 | return this.api.execute(function (selector) {
22 | return document.querySelectorAll(selector).length
23 | }, [selector], function (res) {
24 | cb.call(self, res)
25 | })
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/test/e2e/nightwatch.conf.js:
--------------------------------------------------------------------------------
1 | require('babel-register')
2 | var config = require('../../config')
3 |
4 | // http://nightwatchjs.org/gettingstarted#settings-file
5 | module.exports = {
6 | src_folders: ['test/e2e/specs'],
7 | output_folder: 'test/e2e/reports',
8 | custom_assertions_path: ['test/e2e/custom-assertions'],
9 |
10 | selenium: {
11 | start_process: true,
12 | server_path: require('selenium-server').path,
13 | host: '127.0.0.1',
14 | port: 4444,
15 | cli_args: {
16 | 'webdriver.chrome.driver': require('chromedriver').path
17 | }
18 | },
19 |
20 | test_settings: {
21 | default: {
22 | selenium_port: 4444,
23 | selenium_host: 'localhost',
24 | silent: true,
25 | globals: {
26 | devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
27 | }
28 | },
29 |
30 | chrome: {
31 | desiredCapabilities: {
32 | browserName: 'chrome',
33 | javascriptEnabled: true,
34 | acceptSslCerts: true
35 | }
36 | },
37 |
38 | firefox: {
39 | desiredCapabilities: {
40 | browserName: 'firefox',
41 | javascriptEnabled: true,
42 | acceptSslCerts: true
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/test/e2e/runner.js:
--------------------------------------------------------------------------------
1 | // 1. start the dev server using production config
2 | process.env.NODE_ENV = 'testing'
3 |
4 | const webpack = require('webpack')
5 | const DevServer = require('webpack-dev-server')
6 |
7 | const webpackConfig = require('../../build/webpack.prod.conf')
8 | const devConfigPromise = require('../../build/webpack.dev.conf')
9 |
10 | let server
11 |
12 | devConfigPromise.then(devConfig => {
13 | const devServerOptions = devConfig.devServer
14 | const compiler = webpack(webpackConfig)
15 | server = new DevServer(compiler, devServerOptions)
16 | const port = devServerOptions.port
17 | const host = devServerOptions.host
18 | return server.listen(port, host)
19 | })
20 | .then(() => {
21 | // 2. run the nightwatch test suite against it
22 | // to run in additional browsers:
23 | // 1. add an entry in test/e2e/nightwatch.conf.js under "test_settings"
24 | // 2. add it to the --env flag below
25 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox`
26 | // For more information on Nightwatch's config file, see
27 | // http://nightwatchjs.org/guide#settings-file
28 | let opts = process.argv.slice(2)
29 | if (opts.indexOf('--config') === -1) {
30 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js'])
31 | }
32 | if (opts.indexOf('--env') === -1) {
33 | opts = opts.concat(['--env', 'chrome'])
34 | }
35 |
36 | const spawn = require('cross-spawn')
37 | const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' })
38 |
39 | runner.on('exit', function (code) {
40 | server.close()
41 | process.exit(code)
42 | })
43 |
44 | runner.on('error', function (err) {
45 | server.close()
46 | throw err
47 | })
48 | })
49 |
--------------------------------------------------------------------------------
/test/e2e/specs/test.js:
--------------------------------------------------------------------------------
1 | // For authoring Nightwatch tests, see
2 | // http://nightwatchjs.org/guide#usage
3 |
4 | module.exports = {
5 | 'default e2e tests': function (browser) {
6 | // automatically uses dev Server port from /config.index.js
7 | // default: http://localhost:8080
8 | // see nightwatch.conf.js
9 | const devServer = browser.globals.devServerURL
10 |
11 | browser
12 | .url(devServer)
13 | .waitForElementVisible('#app', 5000)
14 | .assert.elementPresent('.hello')
15 | .assert.containsText('h1', 'Welcome to Your Vue.js App')
16 | .assert.elementCount('img', 1)
17 | .end()
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/test/unit/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "jest": true
4 | },
5 | "globals": {
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/unit/jest.conf.js:
--------------------------------------------------------------------------------
1 | const path = require('path')
2 |
3 | module.exports = {
4 | rootDir: path.resolve(__dirname, '../../'),
5 | moduleFileExtensions: [
6 | 'js',
7 | 'json',
8 | 'vue'
9 | ],
10 | moduleNameMapper: {
11 | '^@/(.*)$': '/src/$1'
12 | },
13 | transform: {
14 | '^.+\\.js$': '/node_modules/babel-jest',
15 | '.*\\.(vue)$': '/node_modules/vue-jest'
16 | },
17 | testPathIgnorePatterns: [
18 | '/test/e2e'
19 | ],
20 | snapshotSerializers: ['/node_modules/jest-serializer-vue'],
21 | setupFiles: ['/test/unit/setup'],
22 | mapCoverage: true,
23 | coverageDirectory: '/test/unit/coverage',
24 | collectCoverageFrom: [
25 | 'src/**/*.{js,vue}',
26 | '!src/main.js',
27 | '!src/router/index.js',
28 | '!**/node_modules/**'
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/test/unit/setup.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 |
3 | Vue.config.productionTip = false
4 |
--------------------------------------------------------------------------------
/test/unit/specs/HelloWorld.spec.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import HelloWorld from '@/components/HelloWorld'
3 |
4 | describe('HelloWorld.vue', () => {
5 | it('should render correct contents', () => {
6 | const Constructor = Vue.extend(HelloWorld)
7 | const vm = new Constructor().$mount()
8 | expect(vm.$el.querySelector('.hello h1').textContent)
9 | .toEqual('Welcome to Your Vue.js App')
10 | })
11 | })
12 |
--------------------------------------------------------------------------------