ui-process-h5 0.1.40 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/build/configure/README.md +83 -42
  2. package/build/configure/package.json +3 -2
  3. package/package.json +5 -2
  4. package/src/App.vue +87 -16
  5. package/src/assets/js/auth.js +36 -12
  6. package/src/assets/js/request.js +80 -71
  7. package/src/assets/js/utils.js +2 -1
  8. package/src/assets/status/check.png +0 -0
  9. package/src/assets/status/del.png +0 -0
  10. package/src/main.js +14 -12
  11. package/src/packages/attchUpload/index.js +19 -16
  12. package/src/packages/attchUpload/index.scss +10 -3
  13. package/src/packages/downSelect/index.js +25 -7
  14. package/src/packages/downSelect/index.scss +4 -0
  15. package/src/packages/downSelect/index.vue +6 -3
  16. package/src/packages/popup/index.js +17 -5
  17. package/src/packages/popup/index.scss +0 -1
  18. package/src/packages/popup/index.vue +1 -0
  19. package/src/packages/preview/index.vue +1 -1
  20. package/src/packages/previewImage/index.js +125 -2
  21. package/src/packages/previewImage/index.scss +19 -2
  22. package/src/packages/previewImage/index.vue +25 -4
  23. package/src/packages/process/index.js +299 -55
  24. package/src/packages/process/index.scss +12 -1
  25. package/src/packages/process/index.vue +114 -40
  26. package/src/packages/process/operation/backNode.vue +117 -25
  27. package/src/packages/process/operation/cancel.vue +133 -14
  28. package/src/packages/process/operation/ccTask.vue +46 -34
  29. package/src/packages/process/operation/complete.vue +729 -91
  30. package/src/packages/process/operation/counterSign.vue +130 -25
  31. package/src/packages/process/operation/delegateTask.vue +130 -23
  32. package/src/packages/process/operation/msgList.vue +174 -0
  33. package/src/packages/process/operation/restart.vue +15 -4
  34. package/src/packages/submitPopup/index.js +407 -59
  35. package/src/packages/submitPopup/index.scss +51 -46
  36. package/src/packages/submitPopup/index.vue +21 -5
  37. package/src/packages/tab/index.js +34 -5
  38. package/src/packages/tab/index.scss +2 -1
  39. package/src/packages/tab/index.vue +7 -7
  40. package/src/packages/tip/index.js +8 -2
  41. package/src/packages/tip/index.scss +39 -0
  42. package/src/packages/tip/index.vue +1 -1
  43. package/src/packages/viewAttchList/index.js +16 -14
  44. package/vite.config.ts +101 -72
  45. package/ui-process-h5/README.md +0 -171
  46. package/ui-process-h5/package.json +0 -27
  47. package/ui-process-h5/scripts/postinstall.mjs +0 -14
  48. package/ui-process-h5/scripts/switch-cli.mjs +0 -4
  49. package/ui-process-h5/scripts/utils.mjs +0 -60
  50. package/ui-process-h5/v2/style.css +0 -1
  51. package/ui-process-h5/v2/ui-process-h5.js +0 -13467
  52. package/ui-process-h5/v2/ui-process-h5.umd.cjs +0 -67
  53. package/ui-process-h5/v2.7/style.css +0 -1
  54. package/ui-process-h5/v2.7/ui-process-h5.js +0 -12844
  55. package/ui-process-h5/v2.7/ui-process-h5.umd.cjs +0 -67
  56. package/ui-process-h5/v3/style.css +0 -1
  57. package/ui-process-h5/v3/ui-process-h5.js +0 -10336
  58. package/ui-process-h5/v3/ui-process-h5.umd.cjs +0 -55
@@ -15,43 +15,43 @@
15
15
  color: #1389ff;
16
16
  }
17
17
 
18
- .person-views {
19
- .views-items {
20
- width: 100%;
21
- height: 48px;
22
- display: flex;
23
- justify-content: center;
24
- align-items: center;
25
- font-size: 15px;
26
- display: flex;
27
- justify-content: space-between;
28
- align-items: center;
29
- padding: 0 20px;
30
- box-sizing: border-box;
18
+ .person-views .views-items {
19
+ width: 100%;
20
+ height: 48px;
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ font-size: 15px;
25
+ display: flex;
26
+ justify-content: space-between;
27
+ align-items: center;
28
+ padding: 0 20px;
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ .person-views .views-items-set {
33
+ width: 50%;
34
+ display: flex;
35
+ flex-basis: fit-content;
36
+ align-items: center;
37
+ }
31
38
 
32
- &-set {
33
- width: 50%;
34
- display: flex;
35
- flex-basis: fit-content;
36
- align-items: center;
37
- &-btn {
38
- color: #1389ff;
39
- margin-left: 10px;
40
- min-width: 30px;
41
- }
42
- }
39
+ .person-views .views-items-set-btn {
40
+ color: #1389ff;
41
+ margin-left: 10px;
42
+ min-width: 30px;
43
+ }
43
44
 
44
- &-name {
45
- width: 50%;
46
- &--re {
47
- color: #ee0000;
48
- }
49
- }
50
- }
45
+ .person-views .views-items-name {
46
+ width: 50%;
47
+ }
51
48
 
52
- &-white{
53
- text-align: center;
54
- }
49
+ .person-views .views-items-name--re {
50
+ color: #ee0000;
51
+ }
52
+
53
+ .person-views-white {
54
+ text-align: center;
55
55
  }
56
56
 
57
57
  .person-btn {
@@ -67,17 +67,22 @@
67
67
  position: fixed;
68
68
  bottom: 0;
69
69
  width: 100%;
70
+ }
71
+
72
+ .person-btn .top-button {
73
+ width: 100%;
74
+ border-radius: 20px;
75
+ height: 36px;
76
+ background-color: #3c9cff;
77
+ color: #fff;
78
+ font-size: 14px;
79
+ justify-content: center;
80
+ display: flex;
81
+ align-items: center;
82
+ margin: 0 5px;
83
+ }
70
84
 
71
- .top-button {
72
- width: 100%;
73
- border-radius: 20px;
74
- height: 36px;
75
- background-color: #3c9cff;
76
- color: #fff;
77
- font-size: 14px;
78
- justify-content: center;
79
- display: flex;
80
- align-items: center;
81
- margin: 0 5px;
82
- }
85
+ ::v-deep .departPerson-main {
86
+ width: 100% !important;
87
+ height: 100% !important;
83
88
  }
@@ -9,19 +9,25 @@
9
9
  titleText="送审"
10
10
  isDrawer
11
11
  :isIndex="99"
12
+ :className="`sumbmitPopup-index sumbmitPopup-index-sumbit`"
12
13
  >
13
14
  <TopDownSelect
14
15
  :option="option"
15
16
  @change="handleChange"
17
+ :defaultValue="selectDefaultValue"
16
18
  ></TopDownSelect>
17
- <div class="viewTrack" @click="taskurlshow = true">查看流程图</div>
19
+ <div
20
+ class="viewTrack"
21
+ v-if="checkedItem.id"
22
+ @click="taskurlshow = true"
23
+ >
24
+ 查看流程图
25
+ </div>
18
26
  <div class="person-views" v-if="firstPerson && firstPerson.length">
19
27
  <div class="views-items" v-for="(v, i) in firstPerson">
20
28
  <div class="views-items-name">
21
29
  {{ v.name }}
22
- <span class="views-items-name--re"
23
- >*</span
24
- >
30
+ <span class="views-items-name--re">*</span>
25
31
  </div>
26
32
  <div class="views-items-set">
27
33
  <div v-if="partNode[v.id] && partNode[v.id].length">
@@ -38,10 +44,19 @@
38
44
  >...等{{ partNode[v.id].length }}人</span
39
45
  >
40
46
  </div>
41
- <div v-else></div>
47
+ <div v-else-if="v.routeTxt && v.routeTxt.userNames">
48
+ {{ v.routeTxt.userNames }}
49
+ </div>
50
+ <div
51
+ v-if="
52
+ v.humanPerformerName == '固定账户' ||
53
+ v.humanPerformerName == '与流程申请人相关'
54
+ "
55
+ ></div>
42
56
  <div
43
57
  class="views-items-set-btn"
44
58
  @click="handleOpenPerson(v)"
59
+ v-else
45
60
  >
46
61
  设置
47
62
  </div>
@@ -108,6 +123,7 @@
108
123
  :isIndex="199"
109
124
  >
110
125
  <departPerson
126
+ :isTitle="false"
111
127
  :visible.sync="visiblePerson"
112
128
  v-bind="entity"
113
129
  @callback="handleCallback"
@@ -65,13 +65,13 @@ export default defineComponent({
65
65
  label: "流程图",
66
66
  key: "b",
67
67
  type: "default",
68
- slot: "tab2",
68
+ slot: "b",
69
69
  },
70
70
  {
71
71
  label: "审批记录",
72
72
  key: "c",
73
73
  type: "default",
74
- slot: "tab3",
74
+ slot: "c",
75
75
  },
76
76
  ],
77
77
  // 弹窗操作
@@ -86,13 +86,13 @@ export default defineComponent({
86
86
  label: "流程图",
87
87
  key: "b",
88
88
  type: "default",
89
- slot: "tab2",
89
+ slot: "b",
90
90
  },
91
91
  {
92
92
  label: "审批记录",
93
93
  key: "c",
94
94
  type: "default",
95
- slot: "tab3",
95
+ slot: "c",
96
96
  },
97
97
  ],
98
98
  // 绑定tab块
@@ -102,6 +102,7 @@ export default defineComponent({
102
102
  visible: false,
103
103
  inList: [],
104
104
  visibleTack: false,
105
+ trackListss: [],
105
106
  };
106
107
  },
107
108
  watch: {
@@ -123,7 +124,7 @@ export default defineComponent({
123
124
  });
124
125
  }
125
126
  this.active = this.isTapList[0].key;
126
- console.log("isTapList", this.isTapList);
127
+ // console.log("isTapList", this.isTapList);
127
128
  }
128
129
  },
129
130
  immediate: true,
@@ -144,7 +145,26 @@ export default defineComponent({
144
145
  track: {
145
146
  handler(val, preVal) {
146
147
  if (val) {
148
+ console.log("流程图:::", val);
147
149
  this.trackUrl = val;
150
+ if (window.location.protocol == "https:") {
151
+ this.trackUrl = this.trackUrl.replace(
152
+ "http://59.53.91.230:8088/",
153
+ "https://kq.ddzg.cn:8093/"
154
+ );
155
+ this.trackUrl = this.trackUrl.replace(
156
+ "http://59.53.91.231:8088/",
157
+ "https://qt.ddzg.cn:2119/"
158
+ );
159
+ this.trackUrl = this.trackUrl.replace(
160
+ "http://121.40.143.183:80/",
161
+ "https://www.ddzg.cn:2119/"
162
+ );
163
+ this.trackUrl = this.trackUrl.replace(
164
+ "http://121.40.143.183/",
165
+ "https://www.ddzg.cn:2119/"
166
+ );
167
+ }
148
168
  }
149
169
  },
150
170
  immediate: true,
@@ -160,6 +180,15 @@ export default defineComponent({
160
180
  immediate: true,
161
181
  deep: true,
162
182
  },
183
+ trackList: {
184
+ handler(val, preVal) {
185
+ if (val) {
186
+ this.trackListss = val;
187
+ }
188
+ },
189
+ immediate: true,
190
+ deep: true,
191
+ },
163
192
  },
164
193
 
165
194
  mounted() {
@@ -49,7 +49,7 @@
49
49
  align-items: center;
50
50
  }
51
51
 
52
- .tops-tab-header-items:last-child {
52
+ .tops-tab-header-items:nth-last-child(2) {
53
53
  padding-right: 0;
54
54
  margin-right: 0;
55
55
  }
@@ -74,6 +74,7 @@
74
74
  }
75
75
  .tops-tab-body {
76
76
  height: calc(100% - 45px);
77
+ overflow-y: auto;
77
78
  }
78
79
 
79
80
  .seal-list__item {
@@ -25,7 +25,7 @@
25
25
  v-if="item.key === 'a' && item.type === 'default'"
26
26
  name="default"
27
27
  ></slot>
28
- <slot
28
+ <div style="height:100%;"
29
29
  v-if="item.key === 'b' && item.type === 'default'"
30
30
  :name="item.slot"
31
31
  >
@@ -50,10 +50,9 @@
50
50
  <div v-else class="textnone">
51
51
  暂无流程图
52
52
  </div>
53
- </slot>
54
- <slot
53
+ </div>
54
+ <div style="height:100%;"
55
55
  v-if="item.key === 'c' && item.type === 'default'"
56
- :name="item.slot"
57
56
  >
58
57
  <template v-if="taskCommentList.length > 0">
59
58
  <div
@@ -96,7 +95,7 @@
96
95
  </div>
97
96
  </template>
98
97
  <div v-else class="textnone">暂无数据</div>
99
- </slot>
98
+ </div>
100
99
  <slot v-if="item.type == 'slot'" :name="item.slot"></slot>
101
100
  </div>
102
101
  </div>
@@ -106,6 +105,7 @@
106
105
  ref="TopPopup"
107
106
  titleText="附件列表"
108
107
  isDrawer
108
+ :isIndex="5"
109
109
  >
110
110
  <ViewAttchList :inList="inList"></ViewAttchList>
111
111
  </TopPopup>
@@ -117,9 +117,9 @@
117
117
  isDrawer
118
118
  width="60vw"
119
119
  >
120
- <template v-if="trackList && trackList.length">
120
+ <template v-if="trackListss && trackListss.length">
121
121
  <div
122
- v-for="(item, index) in trackList"
122
+ v-for="(item, index) in trackListss"
123
123
  :key="item.id"
124
124
  class="seal-list__item"
125
125
  >
@@ -4,11 +4,13 @@ import loading from "@/assets/status/loading.png";
4
4
  import success from "@/assets/status/success.png";
5
5
 
6
6
  export default defineComponent({
7
- name:"TopTips",
7
+ name: "TopTips",
8
8
  props: {
9
9
  text: { default: "", type: String }, // tips文本展示
10
10
  type: { default: "default", type: String }, // tips 类型 (success, error, loading)
11
11
  statusTips: { default: false, type: Boolean }, // 开启状态展示
12
+ domNode: { default: "", type: String },
13
+ visible: { default: false, type: Boolean },
12
14
  },
13
15
  data() {
14
16
  return {
@@ -46,7 +48,11 @@ export default defineComponent({
46
48
  },
47
49
  mounted() {
48
50
  this.$nextTick(() => {
49
- const body = document.querySelector("body");
51
+ const body = document.getElementsByClassName("process-warp")[0]
52
+ ? document.getElementsByClassName("process-warp")[0]
53
+ : document
54
+ .getElementsByClassName("sumbmitPopup-index-sumbit")[0]
55
+ .getElementsByClassName("top-popup-drawer")[0];
50
56
  if (body.append) {
51
57
  body.append(this.$el);
52
58
  } else {
@@ -8,6 +8,12 @@
8
8
  text-align: center;
9
9
  max-width: 80%;
10
10
  transition: all 0.3s ease;
11
+ visibility: hidden;
12
+ opacity: 0;
13
+ }
14
+
15
+ .top-tipss-animal {
16
+ animation: shows 1.5s ease;
11
17
  }
12
18
 
13
19
  .top-tipss-mask {
@@ -80,3 +86,36 @@
80
86
  transform: rotate(360deg);
81
87
  }
82
88
  }
89
+
90
+ .fade-enter,
91
+ .fade-leave-to {
92
+ visibility: hidden;
93
+ opacity: 0;
94
+ }
95
+ .fade-enter-active,
96
+ .fade-leave-active {
97
+ transition: opacity 2s;
98
+ }
99
+
100
+ @keyframes shows {
101
+ 0% {
102
+ visibility: hidden;
103
+ opacity: 0;
104
+ }
105
+ 25% {
106
+ visibility: hidden;
107
+ opacity: 0.5;
108
+ }
109
+ 50% {
110
+ visibility: visible;
111
+ opacity: 1;
112
+ }
113
+ 75% {
114
+ visibility: hidden;
115
+ opacity: 0.5;
116
+ }
117
+ 100% {
118
+ visibility: hidden;
119
+ opacity: 0.5;
120
+ }
121
+ }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div v-if="show">
3
3
  <div
4
4
  v-if="!statusTips"
5
5
  class="top-tipss"
@@ -1,5 +1,5 @@
1
1
  import { defineComponent } from "vue-demi";
2
- // import dsBridge from "dsbridge";
2
+ import dsBridge from "dsbridge";
3
3
 
4
4
  import PreView from "../preview/index.vue";
5
5
  import TopPopup from "../popup/index.vue";
@@ -112,20 +112,22 @@ export default defineComponent({
112
112
  }
113
113
  },
114
114
  loadFile(val) {
115
- console.log("loadFile", val);
116
- if (val.url) {
117
- if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
118
- window.open("CnSellersApp://"); //ios app协议
119
- window.setTimeout(function () {
120
- window.location.href = val.url;
121
- }, 2000);
122
- }
123
- if (navigator.userAgent.match(/android/i)) {
124
- window.open("sellingworldapp://"); //android app协议
125
- window.setTimeout(function () {
126
- window.location.href = val.url; // 下载地址
127
- }, 2000);
115
+ // console.log("loadFile", val);
116
+
117
+ if (dsBridge.hasNativeMethod("vueUpLoadFile")) {
118
+ let res = dsBridge.call("vueUpLoadFile", val.url);
119
+ } else {
120
+ if (
121
+ "undefined" != typeof nativeMethod &&
122
+ nativeMethod?.vueUpLoadFile
123
+ ) {
124
+ nativeMethod.vueUpLoadFile(val.url);
125
+ return false;
128
126
  }
127
+ const a = document.createElement("a");
128
+ a.download = val.url?.match(/([^\/]+)$/g)[0];
129
+ a.href = val.url;
130
+ a.click();
129
131
  }
130
132
  },
131
133
  },
package/vite.config.ts CHANGED
@@ -1,78 +1,107 @@
1
- import { defineConfig } from 'vite'
2
- import { createVuePlugin } from 'vite-plugin-vue2'
3
- import * as compiler from '@vue/compiler-sfc'
4
- import vue3 from '@vitejs/plugin-vue'
5
- import path from 'path'
6
- import { getLibDir } from './build/scripts/utils.mjs'
7
- import { isVue2, version } from 'vue-demi'
8
- import { baseConfig } from './src/assets/js/utils.js'
9
- import copy from 'rollup-plugin-copy'
10
- import relaxedUnit from 'postcss-relaxed-unit'
11
- console.log({ version })
1
+ import { defineConfig } from "vite";
2
+ import { createVuePlugin } from "vite-plugin-vue2";
3
+ import * as compiler from "@vue/compiler-sfc";
4
+ import vue3 from "@vitejs/plugin-vue";
5
+ import path from "path";
6
+ import { getLibDir } from "./build/scripts/utils.mjs";
7
+ import { isVue2, version } from "vue-demi";
8
+ import { baseConfig } from "./src/assets/js/utils.js";
9
+ import copy from "rollup-plugin-copy";
10
+ import relaxedUnit from "postcss-relaxed-unit";
11
+ console.log("version", { version });
12
12
  const resolve = (str) => {
13
- return path.resolve(__dirname, str)
14
- }
15
- let isVueCode = 1
16
- if (version.startsWith('2.7.')) isVueCode = 2
17
- else if (version.startsWith('2.')) isVueCode = 1
18
- else isVueCode = 3
13
+ return path.resolve(__dirname, str);
14
+ };
15
+ let isVueCode = 1;
16
+ if (version.startsWith("2.7.")) isVueCode = 2;
17
+ else if (version.startsWith("2.")) isVueCode = 1;
18
+ else isVueCode = 3;
19
19
 
20
20
  // https://vitejs.dev/config/
21
21
  export default defineConfig({
22
- resolve: {
23
- alias: {
24
- '@': resolve('src'),
25
- vue: isVueCode === 1 ? path.resolve('./node_modules/vue2')
26
- : isVueCode === 2 ? path.resolve('./node_modules/vue2.7')
27
- : path.resolve('./node_modules/vue3'),
28
- '@vue/composition-api': resolve('./node_modules/@vue/composition-api')
29
- }
30
- },
31
- build: {
32
- lib: {
33
- entry: resolve('./src/packages/index.js'),
34
- name: 'ui-process-h5',
35
- fileName: 'ui-process-h5'
22
+ resolve: {
23
+ alias: {
24
+ "@": resolve("src"),
25
+ vue:
26
+ isVueCode === 1
27
+ ? path.resolve("./node_modules/vue2")
28
+ : isVueCode === 2
29
+ ? path.resolve("./node_modules/vue2.7")
30
+ : path.resolve("./node_modules/vue3"),
31
+ "@vue/composition-api": resolve(
32
+ "./node_modules/@vue/composition-api"
33
+ ),
34
+ "checked-pick-app":
35
+ isVueCode === 1
36
+ ? path.resolve(
37
+ "./node_modules/checked-pick-app/v2/checked-pick-app.umd.cjs"
38
+ )
39
+ : isVueCode === 2
40
+ ? path.resolve(
41
+ "./node_modules/checked-pick-app/v2.7/checked-pick-app.umd.cjs"
42
+ )
43
+ : path.resolve(
44
+ "./node_modules/checked-pick-app/v3/checked-pick-app.umd.cjs"
45
+ ),
46
+ "checked-pick-app-style":
47
+ isVueCode === 1
48
+ ? path.resolve(
49
+ "./node_modules/checked-pick-app/v2/style.css"
50
+ )
51
+ : isVueCode === 2
52
+ ? path.resolve(
53
+ "./node_modules/checked-pick-app/v2.7/style.css"
54
+ )
55
+ : path.resolve(
56
+ "./node_modules/checked-pick-app/v3/style.css"
57
+ ),
58
+ "dsbridge":path.resolve("./node_modules/dsbridge"),
59
+ },
36
60
  },
37
- cssTarget: 'chrome61',
38
- rollupOptions: {
39
- // external: ['vue-demi', 'vue'],
40
- external: ['vue'],
41
- output: {
42
- dir: getLibDir(version),
43
- globals: {
44
- vue: 'Vue',
45
- // 'vue-demi': 'VueDemi'
46
- }
47
- }
48
- }
49
- },
50
- optimizeDeps: {
51
- // exclude: ['vue-demi']
52
- },
53
- plugins: [
54
- isVue2 ? createVuePlugin() : vue3({ compiler: compiler }),
55
- copy({
56
- targets: [
57
- { src: './build/configure/*', dest: './ui-process-h5' },
58
- { src: './build/scripts/*', dest: './ui-process-h5/scripts' },
59
- ]
60
- })
61
- ],
62
- css: {
63
- postcss: { // 配置自定义组件插件
64
- plugins: [
65
- relaxedUnit({ rules: { rpx: "div(2).unit(px)" } }),
66
- ]
67
- }
68
- },
69
- server: {
70
- proxy: {
71
- [baseConfig.apiUrl]: {
72
- target: process.env.domain || `http://59.53.91.231:2100`,
73
- changeOrigin: true,
74
- //rewrite: (path) => path.replace(/^\/api/, ""),
75
- },
61
+ build: {
62
+ lib: {
63
+ entry: resolve("./src/packages/index.js"),
64
+ name: "ui-process-h5",
65
+ fileName: "ui-process-h5",
66
+ },
67
+ cssTarget: "chrome61",
68
+ rollupOptions: {
69
+ // external: ['vue-demi', 'vue'],
70
+ external: ["vue"],
71
+ output: {
72
+ dir: getLibDir(version),
73
+ globals: {
74
+ vue: "Vue",
75
+ // 'vue-demi': 'VueDemi'
76
+ },
77
+ },
78
+ },
76
79
  },
77
- },
78
- })
80
+ optimizeDeps: {
81
+ // exclude: ['vue-demi']
82
+ },
83
+ plugins: [
84
+ isVue2 ? createVuePlugin() : vue3({ compiler: compiler }),
85
+ copy({
86
+ targets: [
87
+ { src: "./build/configure/*", dest: "./ui-process-h5" },
88
+ { src: "./build/scripts/*", dest: "./ui-process-h5/scripts" },
89
+ ],
90
+ }),
91
+ ],
92
+ css: {
93
+ postcss: {
94
+ // 配置自定义组件插件
95
+ plugins: [relaxedUnit({ rules: { rpx: "div(2).unit(px)" } })],
96
+ },
97
+ },
98
+ server: {
99
+ proxy: {
100
+ [baseConfig.apiUrl]: {
101
+ target: process.env.domain || `http://59.53.91.231:2100`,
102
+ changeOrigin: true,
103
+ //rewrite: (path) => path.replace(/^\/api/, ""),
104
+ },
105
+ },
106
+ },
107
+ });