Commit 11973743c58753f01086ffff98b795f6299ca56a

Authored by Aaron
1 parent 5ed2e601
Exists in master and in 1 other branch legacy

调整Scheme组件默认返回值格式

examples/main.js
@@ -16,10 +16,12 @@ import "highlight.js/styles/color-brewer.css"; @@ -16,10 +16,12 @@ import "highlight.js/styles/color-brewer.css";
16 import { Notification } from 'element-ui'; 16 import { Notification } from 'element-ui';
17 17
18 const request = axios.create({ 18 const request = axios.create({
19 - baseURL: 'http://47.110.137.80:7101/',  
20 - timeout: 1000, 19 + baseURL: 'http://47.110.137.80:7104/cbin/',
  20 + timeout: 1000 * 60,
  21 + withCredentials: true,
21 headers: { 22 headers: {
22 - 'Authorization': 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE2NTE4ODM0MTEsInN1YiI6ImFkbWluIiwiY3JlYXRlZCI6MTU1MTg4MzQxMTk2NX0.rocgsQq_EEbBDV-BcHpJCUS92KGjBH-0Pf47IrW9v3aj6xJCoFIrnKX4vtpPfYscTk1roBhR5s3I1DIvT8B9wg' 23 + token: 'be81d1ba777f7081ef6897eec3b4bdf2',
  24 + 'Accept-Language': 'zh-CN'
23 } 25 }
24 }); 26 });
25 27
@@ -64,32 +66,40 @@ const checkStatus = (response) => { @@ -64,32 +66,40 @@ const checkStatus = (response) => {
64 // respone 拦截器 66 // respone 拦截器
65 request.interceptors.response.use( 67 request.interceptors.response.use(
66 response => { 68 response => {
67 - const { data = {} } = response;  
68 - const { businessException, errorCode, message, success } = data;  
69 - if (success) {  
70 - return data;  
71 - } else if (businessException) {  
72 - if (errorCode) {  
73 - Notification.error({  
74 - title: '提示',  
75 - message,  
76 - duration: 3000,  
77 - });  
78 - }  
79 - return { success: false }; 69 + const { data = {}, config } = response;
  70 + const { code, msg } = data;
  71 + if (config && config.interceptors === false) { // 请求配置不做返回拦截的情况
  72 + return response;
80 } else { 73 } else {
81 - if (errorCode) { 74 + if (`${code}` === '401') { // 授权失效
  75 + removeToken();
  76 + router.push({ name: 'login' }, () => {
  77 + location.reload();
  78 + });
  79 + } else if (`${code}` === '1000') { // 业务逻辑错误提示
82 Notification.error({ 80 Notification.error({
83 title: '提示', 81 title: '提示',
84 - message: codeMessage[errorCode], 82 + message: msg,
85 duration: 3000, 83 duration: 3000,
86 }); 84 });
  85 + return false;
  86 + } else if (`${code}` === '0') { // 请求成功
  87 + return data;
  88 + } else { // 其它错误,开发环境提示
  89 + if (process.env.NODE_ENV === 'development') {
  90 + Notification.error({
  91 + title: '提示',
  92 + message: msg,
  93 + duration: 3000,
  94 + });
  95 + }
  96 + return false;
87 } 97 }
88 - return { success: false };  
89 } 98 }
90 }, 99 },
91 error => { 100 error => {
92 const e = checkStatus(error.response); 101 const e = checkStatus(error.response);
  102 + console.error(e);
93 return { success: false }; 103 return { success: false };
94 }); 104 });
95 105
examples/views/page/test.vue
1 <template> 1 <template>
2 <eagle-scheme 2 <eagle-scheme
3 - :option="{ $http: $axios, url: '/dataDictionary', detailMethod: 'queryById', getMethod: 'queryById', editMethod: 'modify' }" 3 + :option="{ $http: $axios, url: '/overseas/store' }"
4 :list="schemeList" 4 :list="schemeList"
5 - :formProps="{ span: 24, 'label-width': '60px' }"  
6 - :detailProps="{ span: 24, 'label-width': '50px' }"  
7 - :dialogProps="dialogProps"  
8 - @dialog-change="handleDialogChange"  
9 > 5 >
10 <el-table-column type="selection" width="50"></el-table-column> 6 <el-table-column type="selection" width="50"></el-table-column>
11 </eagle-scheme> 7 </eagle-scheme>
@@ -13,82 +9,47 @@ @@ -13,82 +9,47 @@
13 9
14 <script> 10 <script>
15 export default { 11 export default {
16 - name: 'test', 12 + name: 'basicStore',
17 data() { 13 data() {
18 return { 14 return {
19 schemeList: [ 15 schemeList: [
20 { type: 'el-input', label: 'ID', key: 'id', include: 'form', visible: (model, { formMode } = {}) => { return formMode == 'edit' }, 16 { type: 'el-input', label: 'ID', key: 'id', include: 'form', visible: (model, { formMode } = {}) => { return formMode == 'edit' },
21 props: { disabled: true }, 17 props: { disabled: true },
22 }, 18 },
23 - { type: 'el-input', label: '编码', key: 'code', exclude: 'search',  
24 - rules: [{ required: true, message: '编码不能为空', trigger: 'blur' }],  
25 - props: { placeholder: '编码' }, 19 + { type: 'el-input', label: '门店编码', key: 'code', exclude: 'search',
  20 + rules: [{ required: true, message: '门店编码不能为空', trigger: 'blur' }],
  21 + props: { placeholder: '门店编码' },
26 }, 22 },
27 - { type: 'el-input', label: '名称', key: 'name',  
28 - rules: [{ required: true, message: '名称不能为空', trigger: 'blur' }],  
29 - props: { placeholder: '名称' }, 23 + { type: 'el-input', label: '门店名称', key: 'name',
  24 + rules: [{ required: true, message: '门店名称不能为空', trigger: 'blur' }],
  25 + props: { placeholder: '门店名称' },
30 }, 26 },
31 - { type: 'el-input', label: '备注', key: 'remark', include: 'table',  
32 - props: { placeholder: '备注' }, 27 + { type: 'el-input', label: '合作伙伴', key: 'dwCustomerCode', exclude: 'search',
  28 + rules: [{ required: true, message: '合作伙伴不能为空', trigger: 'change' }],
  29 + props: { placeholder: '合作伙伴' },
  30 + },
  31 + { type: 'el-input', label: '联系人', key: 'contact', exclude: 'search',
  32 + rules: [{ required: true, message: '联系人不能为空', trigger: 'change' }],
  33 + props: { placeholder: '联系人' },
  34 + },
  35 + { type: 'el-input', label: '联系方式', key: 'phone', exclude: 'search',
  36 + rules: [{ required: true, message: '联系方式不能为空', trigger: 'change' }],
  37 + props: { placeholder: '联系方式' },
  38 + },
  39 + { type: 'el-input', label: '联系地址', key: 'address', exclude: 'search',
  40 + rules: [{ required: true, message: '联系地址不能为空', trigger: 'change' }],
  41 + props: { placeholder: '联系地址' },
  42 + },
  43 + { type: 'el-input', label: '管理员密码', key: 'password', exclude: 'search',
  44 + rules: [{ required: true, message: '管理员密码不能为空', trigger: 'change' }],
  45 + props: { placeholder: '管理员密码' },
  46 + },
  47 + { type: 'el-input', label: '门店类型', key: 'type',
  48 + rules: [{ required: true, message: '管理员密码不能为空', trigger: 'change' }],
  49 + props: { placeholder: '管理员密码' },
33 }, 50 },
34 ], 51 ],
35 - dialogType: '',  
36 - }  
37 - },  
38 - computed: {  
39 - dialogProps() {  
40 - return { width: this.dialogType === 'dialog-form' ? '500px' : '400px' };  
41 } 52 }
42 }, 53 },
43 - methods: {  
44 - async searchAPI(param) {  
45 - return this.$axios.get(`/dataDictionary/page?current=1&size=10`)  
46 - .then((response) => {  
47 - const { result = [], totalCount = 0 } = response || {};  
48 - return { result, totalCount };  
49 - }).catch(() => {  
50 - return {};  
51 - });  
52 - },  
53 - async getAPI(param) {  
54 - return this.$axios.get(`/dataDictionary/queryById?id=${param.id}`)  
55 - .then((response) => {  
56 - const { result = {} } = response || {};  
57 - return result;  
58 - }).catch(() => {  
59 - return {};  
60 - });  
61 - },  
62 - async newAPI(param) {  
63 - return this.$axios.post('/dataDictionary/add', param)  
64 - .then((response) => {  
65 - const { success = false } = response || {};  
66 - return success;  
67 - }).catch(() => {  
68 - return false;  
69 - });  
70 - },  
71 - async editAPI(param) {  
72 - return this.$axios.post('/dataDictionary/modify', param)  
73 - .then((response) => {  
74 - const { success = false } = response || {};  
75 - return success;  
76 - }).catch(() => {  
77 - return false;  
78 - });  
79 - },  
80 - async deleteAPI(param) {  
81 - return this.$axios.post('/dataDictionary/delete', param)  
82 - .then((response) => {  
83 - const { success = false } = response || {};  
84 - return success;  
85 - }).catch(() => {  
86 - return false;  
87 - });  
88 - },  
89 - handleDialogChange(type) {  
90 - this.dialogType = type;  
91 - }  
92 - }  
93 } 54 }
94 </script> 55 </script>
95 \ No newline at end of file 56 \ No newline at end of file
packages/form/index.vue
@@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
17 </style> 17 </style>
18 18
19 <template> 19 <template>
20 - <el-form class="eagle-form" ref="form" :model="model" v-bind="{ size: 'small', 'label-width': '90px', ...formProps }"> 20 + <el-form class="eagle-form" ref="form" :model="model" v-bind="{ size: 'small', 'label-width': '100px', ...formProps }">
21 <el-row :gutter="15"> 21 <el-row :gutter="15">
22 <template v-for="(data, index) in listOption.dataList"> 22 <template v-for="(data, index) in listOption.dataList">
23 <template v-if="listOption.isGroup"> 23 <template v-if="listOption.isGroup">
packages/scheme/index.vue
@@ -307,8 +307,8 @@ export default { @@ -307,8 +307,8 @@ export default {
307 this.tableLoading = true; 307 this.tableLoading = true;
308 _$http.get(`${this.option.url.trim('/')}/${this.option.searchMethod || 'page'}?${stringify(param)}`) 308 _$http.get(`${this.option.url.trim('/')}/${this.option.searchMethod || 'page'}?${stringify(param)}`)
309 .then((response) => { 309 .then((response) => {
310 - const { result = [], totalCount = 0 } = response || {};  
311 - this.tableData = result; 310 + const { result: { list = [], totalCount = 0 } = {} } = response || {};
  311 + this.tableData = list;
312 this.totalCount = totalCount; 312 this.totalCount = totalCount;
313 }) 313 })
314 .finally(() => { 314 .finally(() => {
@@ -456,8 +456,8 @@ export default { @@ -456,8 +456,8 @@ export default {
456 const postData = param; 456 const postData = param;
457 _$http.post(`${this.option.url.trim('/')}/${this.option.newMethod || 'delete'}`, postData) 457 _$http.post(`${this.option.url.trim('/')}/${this.option.newMethod || 'delete'}`, postData)
458 .then(response => { 458 .then(response => {
459 - const { success = false } = response || {};  
460 - if (success) { 459 + const { code } = response || {};
  460 + if (`${code}` === '0') {
461 this.hideDialog(); 461 this.hideDialog();
462 this.handleSearch(); 462 this.handleSearch();
463 if (this.$message) { this.$message({ message: '删除成功', type: 'success' }); } 463 if (this.$message) { this.$message({ message: '删除成功', type: 'success' }); }
@@ -523,8 +523,8 @@ export default { @@ -523,8 +523,8 @@ export default {
523 delete postData[formPrimaryKey || primaryKey]; 523 delete postData[formPrimaryKey || primaryKey];
524 _$http.post(`${this.option.url.trim('/')}/${this.option.newMethod || 'add'}`, postData) 524 _$http.post(`${this.option.url.trim('/')}/${this.option.newMethod || 'add'}`, postData)
525 .then(response => { 525 .then(response => {
526 - const { success = false } = response || {};  
527 - if (success) { 526 + const { code } = response || {};
  527 + if (`${code}` === '0') {
528 this.hideDialog(); 528 this.hideDialog();
529 this.handleSearch(); 529 this.handleSearch();
530 if (this.$message) { this.$message({ message: '提交成功', type: 'success' }); } 530 if (this.$message) { this.$message({ message: '提交成功', type: 'success' }); }
@@ -557,8 +557,8 @@ export default { @@ -557,8 +557,8 @@ export default {
557 this.dialogLoading = true; 557 this.dialogLoading = true;
558 _$http.post(`${this.option.url.trim('/')}/${this.option.editMethod || 'update'}`, param) 558 _$http.post(`${this.option.url.trim('/')}/${this.option.editMethod || 'update'}`, param)
559 .then(response => { 559 .then(response => {
560 - const { success = false } = response || {};  
561 - if (success) { 560 + const { code } = response || {};
  561 + if (`${code}` === '0') {
562 this.hideDialog(); 562 this.hideDialog();
563 this.handleSearch(); 563 this.handleSearch();
564 if (this.$message) { this.$message({ message: '编辑成功', type: 'success' }); } 564 if (this.$message) { this.$message({ message: '编辑成功', type: 'success' }); }
packages/search/index.vue
@@ -60,7 +60,7 @@ export default { @@ -60,7 +60,7 @@ export default {
60 default() { 60 default() {
61 return { 61 return {
62 size: 'small', 62 size: 'small',
63 - 'label-width': '70px' 63 + 'label-width': '90px'
64 } 64 }
65 } 65 }
66 }, 66 },