guoxing 2 years ago
parent
commit
99e49d712c
  1. 2
      base-ui/package.json
  2. 8
      base-ui/src/router/index.js
  3. 18
      base-ui/src/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagement.vue
  4. 18
      base-ui/src/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagementAdd.vue
  5. 14
      supervise-crm-ui/.editorconfig
  6. 9
      supervise-crm-ui/.env.development
  7. 9
      supervise-crm-ui/.env.production
  8. 8
      supervise-crm-ui/.env.staging
  9. 4
      supervise-crm-ui/.eslintignore
  10. 199
      supervise-crm-ui/.eslintrc.js
  11. 16
      supervise-crm-ui/.gitignore
  12. 5
      supervise-crm-ui/.travis.yml
  13. 21
      supervise-crm-ui/LICENSE
  14. 0
      supervise-crm-ui/README-zh.md
  15. 90
      supervise-crm-ui/README.md
  16. 15
      supervise-crm-ui/babel.config.js
  17. 24
      supervise-crm-ui/jest.config.js
  18. 9
      supervise-crm-ui/jsconfig.json
  19. 57
      supervise-crm-ui/mock/index.js
  20. 81
      supervise-crm-ui/mock/mock-server.js
  21. 29
      supervise-crm-ui/mock/table.js
  22. 84
      supervise-crm-ui/mock/user.js
  23. 25
      supervise-crm-ui/mock/utils.js
  24. 73
      supervise-crm-ui/package.json
  25. 14470
      supervise-crm-ui/pnpm-lock.yaml
  26. 8
      supervise-crm-ui/postcss.config.js
  27. BIN
      supervise-crm-ui/public/favicon.ico
  28. BIN
      supervise-crm-ui/public/image/liuchengtu.jpg
  29. 17
      supervise-crm-ui/public/index.html
  30. 14
      supervise-crm-ui/src/App.vue
  31. 13
      supervise-crm-ui/src/api/Common/Upload.js
  32. 25
      supervise-crm-ui/src/api/Common/areaPicker.js
  33. 100
      supervise-crm-ui/src/api/Common/dictcommons.js
  34. 13
      supervise-crm-ui/src/api/Common/permission.js
  35. 187
      supervise-crm-ui/src/api/customermanagement/customermanagement.js
  36. 56
      supervise-crm-ui/src/api/user.js
  37. BIN
      supervise-crm-ui/src/assets/404_images/404.png
  38. BIN
      supervise-crm-ui/src/assets/404_images/404_cloud.png
  39. BIN
      supervise-crm-ui/src/assets/home/anrui.png
  40. BIN
      supervise-crm-ui/src/assets/home/bIcon1.png
  41. BIN
      supervise-crm-ui/src/assets/home/bIcon2.png
  42. BIN
      supervise-crm-ui/src/assets/home/bIcon3.png
  43. BIN
      supervise-crm-ui/src/assets/home/bIcon4.png
  44. BIN
      supervise-crm-ui/src/assets/home/bIcon5.png
  45. BIN
      supervise-crm-ui/src/assets/home/bIcon6.png
  46. BIN
      supervise-crm-ui/src/assets/home/bIcon7.png
  47. BIN
      supervise-crm-ui/src/assets/home/bIcon8.png
  48. BIN
      supervise-crm-ui/src/assets/home/bottomBg.png
  49. BIN
      supervise-crm-ui/src/assets/home/line.png
  50. BIN
      supervise-crm-ui/src/assets/home/ltBg.png
  51. BIN
      supervise-crm-ui/src/assets/home/ltIcon1.png
  52. BIN
      supervise-crm-ui/src/assets/home/ltIcon2.png
  53. BIN
      supervise-crm-ui/src/assets/home/ltIcon3.png
  54. BIN
      supervise-crm-ui/src/assets/home/ltIcon4.png
  55. BIN
      supervise-crm-ui/src/assets/home/notice.png
  56. BIN
      supervise-crm-ui/src/assets/home/rtBg.png
  57. BIN
      supervise-crm-ui/src/assets/images/arrow.png
  58. BIN
      supervise-crm-ui/src/assets/images/bdrysh.png
  59. BIN
      supervise-crm-ui/src/assets/images/btn.png
  60. BIN
      supervise-crm-ui/src/assets/images/cdgl.png
  61. BIN
      supervise-crm-ui/src/assets/images/cxjl.png
  62. BIN
      supervise-crm-ui/src/assets/images/czsc.png
  63. BIN
      supervise-crm-ui/src/assets/images/dwrysh.png
  64. BIN
      supervise-crm-ui/src/assets/images/dwxxgl.png
  65. BIN
      supervise-crm-ui/src/assets/images/dy.png
  66. BIN
      supervise-crm-ui/src/assets/images/head.png
  67. BIN
      supervise-crm-ui/src/assets/images/info.png
  68. BIN
      supervise-crm-ui/src/assets/images/jcxx.png
  69. BIN
      supervise-crm-ui/src/assets/images/jggl.png
  70. BIN
      supervise-crm-ui/src/assets/images/jlsc.png
  71. BIN
      supervise-crm-ui/src/assets/images/jsgl.png
  72. BIN
      supervise-crm-ui/src/assets/images/jsxd.png
  73. BIN
      supervise-crm-ui/src/assets/images/login/OAKQ.png
  74. BIN
      supervise-crm-ui/src/assets/images/login/bg2-img.png
  75. BIN
      supervise-crm-ui/src/assets/images/login/bgimg.jpg
  76. BIN
      supervise-crm-ui/src/assets/images/login/nose.png
  77. BIN
      supervise-crm-ui/src/assets/images/login/pasw.png
  78. BIN
      supervise-crm-ui/src/assets/images/login/user.png
  79. BIN
      supervise-crm-ui/src/assets/images/lzrysh.png
  80. BIN
      supervise-crm-ui/src/assets/images/org/headerimg.png
  81. BIN
      supervise-crm-ui/src/assets/images/org/jian.png
  82. BIN
      supervise-crm-ui/src/assets/images/org/sfz.png
  83. BIN
      supervise-crm-ui/src/assets/images/org/sqs.png
  84. BIN
      supervise-crm-ui/src/assets/images/org/success.png
  85. BIN
      supervise-crm-ui/src/assets/images/org/yyzz.png
  86. BIN
      supervise-crm-ui/src/assets/images/place.png
  87. BIN
      supervise-crm-ui/src/assets/images/qjsh.png
  88. BIN
      supervise-crm-ui/src/assets/images/ryda.png
  89. BIN
      supervise-crm-ui/src/assets/images/rzgl.png
  90. BIN
      supervise-crm-ui/src/assets/images/select.png
  91. BIN
      supervise-crm-ui/src/assets/images/sjcc.png
  92. BIN
      supervise-crm-ui/src/assets/images/sjzd.png
  93. BIN
      supervise-crm-ui/src/assets/images/tjfx.png
  94. BIN
      supervise-crm-ui/src/assets/images/tjfx2.png
  95. BIN
      supervise-crm-ui/src/assets/images/wenjian.png
  96. BIN
      supervise-crm-ui/src/assets/images/xgmm.png
  97. BIN
      supervise-crm-ui/src/assets/images/xtbg.png
  98. BIN
      supervise-crm-ui/src/assets/images/xtgl.png
  99. BIN
      supervise-crm-ui/src/assets/images/xxzx.png
  100. BIN
      supervise-crm-ui/src/assets/images/zwsm.png

2
base-ui/package.json

@ -18,7 +18,7 @@
"core-js": "^3.26.1",
"echarts": "^5.4.1",
"element-ui": "2.13.2",
"ezuikit-js": "^0.7.0",
"ezuikit-js": "^0.7.2",
"js-cookie": "2.2.0",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",

8
base-ui/src/router/index.js

@ -61,10 +61,10 @@ export const constantRoutes = [
meta: { title: '客户中心' },
children: [
{
path: '/supervise/purchaseapplicationmanagement/purchaseapplicationmanagement',
component: () => import('@/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagement.vue'),
name: 'purchaseapplicationmanagement',
meta: {title: '采购申请管理',noCache: true,}
path: '/supervise/purchaseapplicationmanagement/purchaseapplicationmanagementAdd',
component: () => import('@/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagementAdd.vue'),
name: 'PurchaseApplicationManagementAdd',
meta: { title: '采购申请管理',noCache: true }
},
{
path: '/supervise/supplierbankinfo/supplierbankinfo',

18
base-ui/src/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagement.vue

@ -8,37 +8,37 @@
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :inline="true" :model="queryParams" class="tab-header">
<el-form ref="queryParams" :inline="true" :model="queryParams" label-width="100px" class="tab-header">
<el-form-item label="审核状态">
<el-input v-model="queryParams.params.createSid" placeholder="" clearable/>
</el-form-item>
<el-form-item label="订单编号">
<el-input v-model="queryParams.params.modifySid" placeholder="" clearable/>
</el-form-item>
<el-form-item label="填单人">
<el-input v-model="queryParams.params.buyerName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="填单日期">
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="填单人">
<el-input v-model="queryParams.params.buyerName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="供应商名称">
<el-input v-model="queryParams.params.contacts" placeholder="" clearable/>
</el-form-item>
<el-form-item label="要货单位">
<el-input v-model="queryParams.params.telephone" placeholder="" clearable/>
</el-form-item>
<el-form-item label="完成状态">
<el-select v-model="queryParams.params.completionStatusKey" filterable placeholder="请选择" clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到货日期">
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="完成状态">
<el-select v-model="queryParams.params.completionStatusKey" filterable placeholder="请选择" clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>

18
base-ui/src/views/supervise/purchaseapplicationmanagement/purchaseapplicationmanagementAdd.vue

@ -280,8 +280,7 @@ export default {
},
created() {},
methods: {
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
handleReturn() {
this.formobj = {
sid: '',
code: '', //
@ -309,7 +308,9 @@ export default {
this.totalQuantity = ''
this.amountInTotal = ''
this.$refs['form_obj'].resetFields()
this.$emit('doback')
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
// this.$emit('doback')
},
showAdd() {
this.$nextTick(() => {
@ -322,9 +323,7 @@ export default {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【审核编号】'
req
.fetchBySid(row.sid)
.then(resp => {
req.fetchBySid(row.sid).then(resp => {
if (resp.success) {
this.formobj = resp.data
if (this.formobj.pros.length > 0) {
@ -365,7 +364,6 @@ export default {
}
this.amountInTotal = aa
}
console.log(',,1111',this.formobj.code)
if (this.formobj.code) {
this.candownload = false
@ -388,13 +386,11 @@ export default {
this.$refs['form_obj'].validate(valid => {
if (valid) {
this.submitdisabled = true
req
.saveOrUpdate(this.formobj)
.then(resp => {
req.saveOrUpdate(this.formobj).then(resp => {
this.submitdisabled = false
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: resp.msg })
this.handleReturn('true')
this.handleReturn()
} else {
// resp.code
}

14
supervise-crm-ui/.editorconfig

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

9
supervise-crm-ui/.env.development

@ -0,0 +1,9 @@
# just a flag
ENV = 'development'
# base api
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://192.168.3.9:8112"
##VUE_APP_URL = "http://120.46.172.184:8111"

9
supervise-crm-ui/.env.production

@ -0,0 +1,9 @@
# just a flag
ENV = 'production'
# base api
VUE_APP_BASE_API = '/api/service'
## 配置 正式接口地址
VUE_APP_URL = "http://120.46.131.15:8111"

8
supervise-crm-ui/.env.staging

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = '/stage-api'

4
supervise-crm-ui/.eslintignore

@ -0,0 +1,4 @@
build/*.js
src/assets
public
dist

199
supervise-crm-ui/.eslintrc.js

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

16
supervise-crm-ui/.gitignore

@ -0,0 +1,16 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln

5
supervise-crm-ui/.travis.yml

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

21
supervise-crm-ui/LICENSE

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017-present PanJiaChen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

0
supervise-crm-ui/README-zh.md

90
supervise-crm-ui/README.md

@ -0,0 +1,90 @@
# vue-admin-template
English | [简体中文](./README-zh.md)
> A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
**Live demo:** http://panjiachen.github.io/vue-admin-template
**The current version is `v4.0+` build on `vue-cli`. If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-admin-template/tree/tag/3.11.0), it does not rely on `vue-cli`**
## Build Setup
```bash
# clone the project
git clone https://github.com/PanJiaChen/vue-admin-template.git
# enter the project directory
cd vue-admin-template
# install dependency
npm install
# develop
npm run dev
```
This will automatically open http://localhost:9528
## Build
```bash
# build for test environment
npm run build:stage
# build for production environment
npm run build:prod
```
## Advanced
```bash
# preview the release environment effect
npm run preview
# preview the release environment effect + static resource analysis
npm run preview -- --report
# code format check
npm run lint
# code format check and auto fix
npm run lint -- --fix
```
Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information
## Demo
![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
## Extra
If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
## Related Project
- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
## Browsers support
Modern browsers and Internet Explorer 10+.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
## License
[MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
Copyright (c) 2017-present PanJiaChen

15
supervise-crm-ui/babel.config.js

@ -0,0 +1,15 @@
module.exports = {
presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
// '@vue/cli-plugin-babel/preset',
['@vue/app', { useBuiltIns: 'entry' }]
],
'env': {
'development': {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
'plugins': ['dynamic-import-node']
}
}
}

24
supervise-crm-ui/jest.config.js

@ -0,0 +1,24 @@
module.exports = {
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
coverageDirectory: '<rootDir>/tests/unit/coverage',
// 'collectCoverage': true,
'coverageReporters': [
'lcov',
'text-summary'
],
testURL: 'http://localhost/'
}

9
supervise-crm-ui/jsconfig.json

@ -0,0 +1,9 @@
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}

57
supervise-crm-ui/mock/index.js

@ -0,0 +1,57 @@
const Mock = require('mockjs')
const { param2Obj } = require('./utils')
const user = require('./user')
const table = require('./table')
const mocks = [
...user,
...table
]
// for front mock
// please use it cautiously, it will redefine XMLHttpRequest,
// which will cause many of your third-party libraries to be invalidated(like progress event).
function mockXHR() {
// mock patch
// https://github.com/nuysoft/Mock/issues/300
Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
Mock.XHR.prototype.send = function() {
if (this.custom.xhr) {
this.custom.xhr.withCredentials = this.withCredentials || false
if (this.responseType) {
this.custom.xhr.responseType = this.responseType
}
}
this.proxy_send(...arguments)
}
function XHR2ExpressReqWrap(respond) {
return function(options) {
let result = null
if (respond instanceof Function) {
const { body, type, url } = options
// https://expressjs.com/en/4x/api.html#req
result = respond({
method: type,
body: JSON.parse(body),
query: param2Obj(url)
})
} else {
result = respond
}
return Mock.mock(result)
}
}
for (const i of mocks) {
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
}
}
module.exports = {
mocks,
mockXHR
}

81
supervise-crm-ui/mock/mock-server.js

@ -0,0 +1,81 @@
const chokidar = require('chokidar')
const bodyParser = require('body-parser')
const chalk = require('chalk')
const path = require('path')
const Mock = require('mockjs')
const mockDir = path.join(process.cwd(), 'mock')
function registerRoutes(app) {
let mockLastIndex
const { mocks } = require('./index.js')
const mocksForServer = mocks.map(route => {
return responseFake(route.url, route.type, route.response)
})
for (const mock of mocksForServer) {
app[mock.type](mock.url, mock.response)
mockLastIndex = app._router.stack.length
}
const mockRoutesLength = Object.keys(mocksForServer).length
return {
mockRoutesLength: mockRoutesLength,
mockStartIndex: mockLastIndex - mockRoutesLength
}
}
function unregisterRoutes() {
Object.keys(require.cache).forEach(i => {
if (i.includes(mockDir)) {
delete require.cache[require.resolve(i)]
}
})
}
// for mock server
const responseFake = (url, type, respond) => {
return {
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
type: type || 'get',
response(req, res) {
console.log('request invoke:' + req.path)
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
}
}
}
module.exports = app => {
// parse app.body
// https://expressjs.com/en/4x/api.html#req.body
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true
}))
const mockRoutes = registerRoutes(app)
var mockRoutesLength = mockRoutes.mockRoutesLength
var mockStartIndex = mockRoutes.mockStartIndex
// watch files, hot reload mock server
chokidar.watch(mockDir, {
ignored: /mock-server/,
ignoreInitial: true
}).on('all', (event, path) => {
if (event === 'change' || event === 'add') {
try {
// remove mock routes stack
app._router.stack.splice(mockStartIndex, mockRoutesLength)
// clear routes cache
unregisterRoutes()
const mockRoutes = registerRoutes(app)
mockRoutesLength = mockRoutes.mockRoutesLength
mockStartIndex = mockRoutes.mockStartIndex
console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`))
} catch (error) {
console.log(chalk.redBright(error))
}
}
})
}

29
supervise-crm-ui/mock/table.js

@ -0,0 +1,29 @@
const Mock = require('mockjs')
const data = Mock.mock({
'items|30': [{
id: '@id',
title: '@sentence(10, 20)',
'status|1': ['published', 'draft', 'deleted'],
author: 'name',
display_time: '@datetime',
pageviews: '@integer(300, 5000)'
}]
})
module.exports = [
{
url: '/vue-admin-template/table/list',
type: 'get',
response: config => {
const items = data.items
return {
code: 20000,
data: {
total: items.length,
items: items
}
}
}
}
]

84
supervise-crm-ui/mock/user.js

@ -0,0 +1,84 @@
const tokens = {
admin: {
token: 'admin-token'
},
editor: {
token: 'editor-token'
}
}
const users = {
'admin-token': {
roles: ['admin'],
introduction: 'I am a super administrator',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Super Admin'
},
'editor-token': {
roles: ['editor'],
introduction: 'I am an editor',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Normal Editor'
}
}
module.exports = [
// user login
{
url: '/vue-admin-template/user/login',
type: 'post',
response: config => {
const { username } = config.body
const token = tokens[username]
// mock error
if (!token) {
return {
code: 60204,
message: 'Account and password are incorrect.'
}
}
return {
code: 20000,
data: token
}
}
},
// get user info
{
url: '/vue-admin-template/user/info\.*',
type: 'get',
response: config => {
const { token } = config.query
const info = users[token]
// mock error
if (!info) {
return {
code: 50008,
message: 'Login failed, unable to get user details.'
}
}
return {
code: 20000,
data: info
}
}
},
// user logout
{
url: '/vue-admin-template/user/logout',
type: 'post',
response: _ => {
return {
code: 20000,
data: 'success'
}
}
}
]

25
supervise-crm-ui/mock/utils.js

@ -0,0 +1,25 @@
/**
* @param {string} url
* @returns {Object}
*/
function param2Obj(url) {
const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
if (!search) {
return {}
}
const obj = {}
const searchArr = search.split('&')
searchArr.forEach(v => {
const index = v.indexOf('=')
if (index !== -1) {
const name = v.substring(0, index)
const val = v.substring(index + 1, v.length)
obj[name] = val
}
})
return obj
}
module.exports = {
param2Obj
}

73
supervise-crm-ui/package.json

@ -0,0 +1,73 @@
{
"name": "admin-template",
"version": "4.4.0",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit"
},
"dependencies": {
"axios": "^0.24.0",
"bpmn-js": "^9.2.2",
"core-js": "^2.6.12",
"ejs": "^2.7.4",
"element-ui": "2.13.2",
"js-cookie": "2.2.0",
"moment": "^2.29.1",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"portfinder": "^1.0.21",
"qs": "^6.9.4",
"sass-resources-loader": "^2.1.1",
"viewerjs": "^1.9.0",
"vue": "2.6.10",
"vue-amap": "^0.5.10",
"vue-router": "3.0.6",
"vuex": "3.1.0",
"vuex-persistedstate": "^4.0.0",
"xcrud": "^0.4.19"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4",
"@vue/cli-service": "4.4.4",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-polyfill": "^6.26.0",
"chalk": "2.4.2",
"connect": "3.6.6",
"eslint": "6.7.2",
"eslint-plugin-vue": "6.2.2",
"html-webpack-plugin": "3.2.0",
"mockjs": "1.0.1-beta3",
"runjs": "4.3.2",
"sass": "1.26.8",
"sass-loader": "8.0.2",
"script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-template-compiler": "2.6.10"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"license": "MIT"
}

14470
supervise-crm-ui/pnpm-lock.yaml

File diff suppressed because it is too large

8
supervise-crm-ui/postcss.config.js

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

BIN
supervise-crm-ui/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
supervise-crm-ui/public/image/liuchengtu.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

17
supervise-crm-ui/public/index.html

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

14
supervise-crm-ui/src/App.vue

@ -0,0 +1,14 @@
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App',
mounted() {
},
}
</script>

13
supervise-crm-ui/src/api/Common/Upload.js

@ -0,0 +1,13 @@
import request from '@/utils/request'
// 上传图片
export function imageUpload(data){
return request({
url: '/jlcyry/file/upload',
method: 'post',
data,
headers:{'Content-Type':'multipart/form-data'}
})
}
export const uploadFile = '/api/base/v1/basemanufactorsubscription/pictureUpload'
export const uploadimg_tuiku = '/api/base/v1/basemanufacturerretwareveh/pictureUpload'

25
supervise-crm-ui/src/api/Common/areaPicker.js

@ -0,0 +1,25 @@
import request from '@/utils/request'
//区域获取省
export function getProvince(data) {
return request({
url: '/system/region/getProvince',
method: 'get'
})
}
//根据省sid获取该省的所有市
export function getCity(data) {
return request({
url: '/system/region/getCity',
method: 'get',
params: data
})
}
//根据市sid获取该市的所有县区
export function getCounty(data) {
return request({
url: '/system/region/getCounty',
method: 'get',
params: data
})
}

100
supervise-crm-ui/src/api/Common/dictcommons.js

@ -0,0 +1,100 @@
import request from '@/utils/request'
// 根据登陆人sid查询分公司sid(常用接口)
export function getPathSidByUserSid(data) {
return request({
url: '/portal/v1/sysstafforg/getPathSidByUserSid',
method: 'get',
params: data
})
}
// 根据当前登录人orgSidPath(全路径sid)查询分公司
export function getOrgSidByPath(data) {
return request({
url: '/portal/v1/sysstafforg/getOrgSidByPath',
method: 'get',
params: data
})
}
// 当前用户创建申请时判断该用户是否有该菜单的操作权限
export function selectHaveMessage(data) {
return request({
url: '/portal/v1/sysuser/selectHaveMessage ',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
// 根据分公司sid查询分公司名称
export function fetchBySid(sid) {
return request({
url: 'portal/v1/sysorganization/fetchBySid/' + sid,
method: 'get'
})
}
// 根据分公司Sid获取分公司下部门对应的采购系统
export function fetchDetailsByUseOrgSid(data) {
return request({
url: '/base/v1/basepurchasesystem/fetchDetailsByUseOrgSid/' + data,
method: 'GET'
})
}
// 获取下拉框
export function typeValues(data) {
return request({
url: '/portal/v1/dictcommons/typeValues',
method: 'get',
params: data
})
}
// 根据用户sid获取本分公司下的银行账号
export function selAccountByOrgSid(data) {
return request({
url: '/fin/v1/finmanufacturerbank/selAccountByOrgSid',
method: 'get',
params: data
})
}
// 品牌下拉
export function brandDown(data) {
return request({
url: '/base/v1/basevehiclebrand/namesDown',
method: 'get',
params: data
})
}
// 根据当前用户orgSidPath的管理层级获取相应的信息(集团获取所有分公司信息、事业部获取旗下的分公司信息、分公司获取该分公司的信息)
export function selectOrgByLevel(data) {
return request({
url: '/base/v1/basevehicleout/selectOrgByLevel',
method: 'post',
params: data
})
}
// 查询角色列表
export function roleList(data) {
return request({
url: '/portal/v1/sysrole/listAll',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
// 根据当前登录用户分公司sid获取本分公司下存放地点
export function fetchByUseOrgSid(data) {
return request({
url: 'scm/v1/scmwarehouse/fetchByUseOrgSid',
method: 'get',
params: data
})
}

13
supervise-crm-ui/src/api/Common/permission.js

@ -0,0 +1,13 @@
import request from '@/utils/request'
// 请求按钮权限
export default {
// 查询分页列表,输入当前路径和userSid,返回
buttonPermission: function(params) {
return request({
url: '/demopackage/v1/demo/buttonPermission',
method: 'post',
data: params
})
}
}

187
supervise-crm-ui/src/api/customermanagement/customermanagement.js

@ -0,0 +1,187 @@
import request from '@/utils/request'
// 接口文档名称:潜在客户信息
// Pc端客户基础信息条件分页查询数据的列表
export function pagerList(data) {
return request({
url: '/crm/v1/crmcustomertemp/listPage',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 客户查询
export function listPageByOrgPathSid(data) {
return request({
url: '/crm/v1/crmcustomertemp/listPageByOrgPathSid',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 添加 已改
export function savePcCustomerInfo(data) {
return request({
url: '/crm/v1/crmcustomertemp/save',
data: data,
method: 'post',
headers: {
'Content-Type': 'application/json'
}
})
}
// -- 修改 已改
export function updatePcCustomerInfo(data) {
return request({
url: '/crm/v1/crmcustomertemp/update/' + data.sid,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 详情、编辑回显 已改
export function getPcCustomerInfoBySid(data) {
return request({
url: '/crm/v1/crmcustomertemp/fetchSid/' + data,
method: 'get'
})
}
// 删除 已改
export function deleteBySids(data) {
return request({
url: '/crm/v1/crmcustomertemp/del/',
method: 'delete',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 推送财务数据--是否确定车架号选择否
export function sendFinCustomer(data, orgCode) {
return request({
url: '/crm/v1/crmcustomertemp/sendFinCustomer/' + orgCode,
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 推送财务数据--是否确定车架号选择是
export function sendFinCustomerTrue(data) {
return request({
url: '/crm/v1/crmcustomertemp/sendFinCustomerTrue',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// 推送财务数据--是否确定车架号选择是,选择车辆
export function vehicleCrmList(data) {
return request({
url: '/base/v1/basevehicle/vehicleCrmList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// Pc端分页查询中介单位(经销商)
export function getPcDistributorList(data) {
return request({
url: '/base/v1/basedistributor/getPcDistributorList',
method: 'get'
})
}
// 挂靠公司模糊查询下拉框
export function namesDown(data) {
return request({
url: '/base/v1/baseaffiliatcompany/namesDown',
method: 'get',
params: data
})
}
// 据客户名称模糊搜索客户名称下拉框
export function KeHuNamesDown(data) {
return request({
url: '/crm/v1/crmcustomer/namesDown',
method: 'get',
params: data
})
}
// Pc端保存登记单信息
export function saveCustomersAll(data) {
return request({
url: '/crm/v1/crmcustomer/saveCustomersAll', data,
method: 'post',
// data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// Pc端修改登记单信息
export function updateCustomersAll(data) {
return request({
url: '/crm/v1/crmcustomer/updateCustomersAll/' + data,
method: 'post',
// data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// Pc端登记单修改回显及详情信息
export function selectCustomersAll(data) {
return request({
url: '/crm/v1/crmcustomer/selectCustomersAll?sid=' + data,
method: 'get'
})
}
//
export function listPage(data) {
return request({
url: '/crm/v1/crmcustomer/listPage',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}
// Pc端根据sid查询客户基础信息是否存在
export function getPcCustomerMobileAndName(mobile, name) {
return request({
url: '/crm/v1/crmcustomer/getPcCustomerMobileAndName?mobile=' + mobile + '&name=' + name,
method: 'get'
})
}

56
supervise-crm-ui/src/api/user.js

@ -0,0 +1,56 @@
import request from '@/utils/request'
// eslint-disable-next-line no-unused-vars
import qs from 'qs'
// 登录
export function login(data) {
return request({
url: '/portal/v1/sysuser/login',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
// 用户注册
export function registUser(data) {
return request({
url: '/system/user/save',
method: 'post',
data,
headers: { 'Content-Type': 'application/x-www-form-urlencoded;' }
})
}
// 获取手机验证码
export function getVerificationCode(data) {
return request({
url: '/system/user/getVerificationCode',
method: 'get',
params: data
})
}
// 获取登录验证码
export function imgCode() {
return request({
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(),
method: 'get'
})
}
// 获取用信息
export function getInfo(token) {
return request({
url: '/system/user/loginDetails',
method: 'post'
})
}
export function logout(data) { // 退出
return request({
url: '/portal/v1/sysuser/signOut',
method: 'post',
data: qs.stringify(data)
})
}

BIN
supervise-crm-ui/src/assets/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
supervise-crm-ui/src/assets/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
supervise-crm-ui/src/assets/home/anrui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
supervise-crm-ui/src/assets/home/bIcon8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
supervise-crm-ui/src/assets/home/bottomBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
supervise-crm-ui/src/assets/home/line.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

BIN
supervise-crm-ui/src/assets/home/ltBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
supervise-crm-ui/src/assets/home/ltIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
supervise-crm-ui/src/assets/home/ltIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
supervise-crm-ui/src/assets/home/ltIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
supervise-crm-ui/src/assets/home/ltIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
supervise-crm-ui/src/assets/home/notice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

BIN
supervise-crm-ui/src/assets/home/rtBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
supervise-crm-ui/src/assets/images/arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
supervise-crm-ui/src/assets/images/bdrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
supervise-crm-ui/src/assets/images/btn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
supervise-crm-ui/src/assets/images/cdgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
supervise-crm-ui/src/assets/images/cxjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
supervise-crm-ui/src/assets/images/czsc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
supervise-crm-ui/src/assets/images/dwrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
supervise-crm-ui/src/assets/images/dwxxgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
supervise-crm-ui/src/assets/images/dy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
supervise-crm-ui/src/assets/images/head.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
supervise-crm-ui/src/assets/images/info.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
supervise-crm-ui/src/assets/images/jcxx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
supervise-crm-ui/src/assets/images/jggl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
supervise-crm-ui/src/assets/images/jlsc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
supervise-crm-ui/src/assets/images/jsgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
supervise-crm-ui/src/assets/images/jsxd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
supervise-crm-ui/src/assets/images/login/OAKQ.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
supervise-crm-ui/src/assets/images/login/bg2-img.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
supervise-crm-ui/src/assets/images/login/bgimg.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
supervise-crm-ui/src/assets/images/login/nose.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

BIN
supervise-crm-ui/src/assets/images/login/pasw.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

BIN
supervise-crm-ui/src/assets/images/login/user.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
supervise-crm-ui/src/assets/images/lzrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
supervise-crm-ui/src/assets/images/org/headerimg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
supervise-crm-ui/src/assets/images/org/jian.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
supervise-crm-ui/src/assets/images/org/sfz.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
supervise-crm-ui/src/assets/images/org/sqs.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
supervise-crm-ui/src/assets/images/org/success.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
supervise-crm-ui/src/assets/images/org/yyzz.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
supervise-crm-ui/src/assets/images/place.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
supervise-crm-ui/src/assets/images/qjsh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
supervise-crm-ui/src/assets/images/ryda.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
supervise-crm-ui/src/assets/images/rzgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
supervise-crm-ui/src/assets/images/select.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
supervise-crm-ui/src/assets/images/sjcc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
supervise-crm-ui/src/assets/images/sjzd.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
supervise-crm-ui/src/assets/images/tjfx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
supervise-crm-ui/src/assets/images/tjfx2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
supervise-crm-ui/src/assets/images/wenjian.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 B

BIN
supervise-crm-ui/src/assets/images/xgmm.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
supervise-crm-ui/src/assets/images/xtbg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
supervise-crm-ui/src/assets/images/xtgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
supervise-crm-ui/src/assets/images/xxzx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
supervise-crm-ui/src/assets/images/zwsm.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

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

Loading…
Cancel
Save